| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- """
- 图片生成数据传输对象定义
- 定义图片生成API请求和响应的数据结构
- """
- from datetime import datetime
- from typing import List, Optional
- from decimal import Decimal
- from pydantic import BaseModel, ConfigDict, Field
- class TextToImageRequest(BaseModel):
- """文生图请求"""
- prompt: str = Field(..., min_length=1, description="文本提示词")
- model: str = Field(default="wanx2.1-t2i-turbo", description="模型名称")
- n: int = Field(default=1, ge=1, le=4, description="生成图片数量")
- size: str = Field(default="1024*1024", description="图片尺寸")
- negative_prompt: Optional[str] = Field(default=None, description="负面提示词")
- prompt_extend: bool = Field(default=True, description="是否开启提示词智能改写(wan2.6)")
- watermark: bool = Field(default=False, description="是否添加水印")
- seed: Optional[int] = Field(default=None, description="随机数种子")
- class TextToImageResponse(BaseModel):
- """文生图响应"""
- success: bool
- images: List[str] = Field(default_factory=list, description="OSS图片URL列表")
- bill: Decimal = Field(default=Decimal("0"), description="费用")
- record_id: int = Field(default=0, description="记录ID")
- error: Optional[str] = Field(default=None, description="错误信息")
- class ImageToImageRequest(BaseModel):
- """图生图请求"""
- prompt: str = Field(..., min_length=1, description="文本提示词")
- model: str = Field(default="wanx2.1-imageedit", description="模型名称")
- n: int = Field(default=1, ge=1, le=4, description="生成图片数量")
- size: str = Field(default="1024*1024", description="图片尺寸")
- class ImageToImageResponse(BaseModel):
- """图生图响应"""
- success: bool
- images: List[str] = Field(default_factory=list, description="OSS图片URL列表")
- bill: Decimal = Field(default=Decimal("0"), description="费用")
- record_id: int = Field(default=0, description="记录ID")
- error: Optional[str] = Field(default=None, description="错误信息")
- class ImageModelInfo(BaseModel):
- """图片模型信息"""
- model_id: str = Field(..., description="模型ID")
- model_name: str = Field(..., description="模型名称")
- description: str = Field(default="", description="模型描述")
- price_per_image: Decimal = Field(..., description="每张图片价格")
- supported_sizes: List[str] = Field(default_factory=list, description="支持的尺寸")
- class ImageHistoryItem(BaseModel):
- """历史记录项"""
- id: int
- model_name: str
- input_type: str
- input_data: str
- image_count: int
- output_images: List[str]
- bill: Decimal
- created_at: datetime
- model_config = ConfigDict(from_attributes=True)
- class ImageHistoryResponse(BaseModel):
- """历史记录响应"""
- items: List[ImageHistoryItem]
- total: int
- page: int
- page_size: int
|