from __future__ import annotations from pydantic import BaseModel from typing import Optional # 文生图 class T2IRequest(BaseModel): prompt: str negative: Optional[str] = "" width: Optional[int] = 768 height: Optional[int] = 768 scale: Optional[float] = None steps: Optional[int] = None sampler: Optional[str] = None noise_schedule: Optional[str] = None seed: Optional[int] = -1 variety: Optional[bool] = False decrisp: Optional[bool] = False cfg_rescale: Optional[float] = None # 图生图 class I2IRequest(BaseModel): positive: str negative: Optional[str] = "" image_base64: str width: Optional[int] = None height: Optional[int] = None scale: Optional[float] = None steps: Optional[int] = None sampler: Optional[str] = None noise_schedule: Optional[str] = None strength: Optional[float] = 0.5 noise: Optional[float] = 0.0 seed: Optional[int] = -1 variety: Optional[bool] = False decrisp: Optional[bool] = False cfg_rescale: Optional[float] = None # 局部重绘 class InpaintRequest(BaseModel): positive: str negative: Optional[str] = "" image_base64: str mask_base64: str add_original_image: bool = False width: Optional[int] = None height: Optional[int] = None scale: Optional[float] = None steps: Optional[int] = None sampler: Optional[str] = None noise_schedule: Optional[str] = None strength: Optional[float] = 0.5 noise: Optional[float] = 0.0 seed: Optional[int] = -1 variety: Optional[bool] = False decrisp: Optional[bool] = False cfg_rescale: Optional[float] = None # 配置更新 class ConfigUpdate(BaseModel): key: Optional[str] = None model: Optional[str] = None sampler: Optional[str] = None steps: Optional[int] = None scale: Optional[float] = None cfg_rescale: Optional[float] = None noise_schedule: Optional[str] = None uc_preset: Optional[int] = None quality_toggle: Optional[bool] = None legacy_uc: Optional[bool] = None port: Optional[int] = None save_output: Optional[bool] = None output_dir: Optional[str] = None # 新增:颜色配置(背景方案) color_scheme: Optional[str] = None # auto | bamboo | custom custom_primary: Optional[str] = None # 自定义背景主色(如 #7ba23f) # 新增:提示音配置 sound_enabled: Optional[bool] = None sound_url: Optional[str] = None