34 lines
1.6 KiB
Python
34 lines
1.6 KiB
Python
from pydantic import BaseModel, Field
|
|
from typing import Optional, List, Dict, Any
|
|
|
|
# AI生成相关模型
|
|
class AIGenerationRequest(BaseModel):
|
|
prompt: str = Field(..., description="生成图片的提示词")
|
|
negative_prompt: Optional[str] = Field(None, description="反向提示词")
|
|
size: str = Field("1024*1024", description="图片尺寸")
|
|
n: int = Field(1, description="生成数量", ge=1, le=4)
|
|
model: str = Field("wan2.6-t2i", description="使用的模型")
|
|
|
|
class AITemplateGenerationRequest(BaseModel):
|
|
template_id: str = Field(..., description="提示词模板ID")
|
|
params: Dict[str, str] = Field(default_factory=dict, description="提示词参数")
|
|
negative_prompt: Optional[str] = Field(None, description="反向提示词")
|
|
size: str = Field("1024*1024", description="图片尺寸")
|
|
n: int = Field(1, description="生成数量", ge=1, le=4)
|
|
model: str = Field("wan2.6-t2i", description="使用的模型")
|
|
|
|
class AITaskResponse(BaseModel):
|
|
task_id: Optional[str] = Field(None, description="任务ID (异步任务时存在)")
|
|
request_id: Optional[str] = Field(None, description="请求ID")
|
|
status: Optional[str] = Field(None, description="任务状态")
|
|
results: Optional[List[Dict[str, Any]]] = Field(None, description="同步生成的直接结果")
|
|
# results结构: [{"url": "/media/xxx.png", "origin_url": "https://..."}]
|
|
|
|
class AITaskResult(BaseModel):
|
|
task_id: str
|
|
status: str
|
|
code: Optional[str] = None
|
|
message: Optional[str] = None
|
|
output: Optional[Dict[str, Any]] = None
|
|
usage: Optional[Dict[str, Any]] = None
|