from typing import Optional from pydantic import BaseModel, Field class MysticRequest(BaseModel): prompt: str = Field(..., min_length=1, max_length=4000) resolution: Optional[str] = Field(None, description='1k, 2k, or 4k') aspect_ratio: Optional[str] = Field(None, description='e.g. square_1_1, widescreen_16_9') model: Optional[str] = Field(None, description='realism, fluid, zen, flexible, super_real, editorial_portraits') seed: Optional[int] = Field(None, ge=1, le=4294967295) styling: Optional[dict] = None structure_reference: Optional[str] = Field(None, description='Base64 image for structure reference') style_reference: Optional[str] = Field(None, description='Base64 image for style reference') class FluxDevRequest(BaseModel): prompt: str = Field(..., min_length=1, max_length=4000) aspect_ratio: Optional[str] = Field(None, description='e.g. square_1_1, widescreen_16_9') styling: Optional[dict] = None seed: Optional[int] = Field(None, ge=1, le=4294967295) class FluxProRequest(BaseModel): prompt: str = Field(..., min_length=1, max_length=4000) aspect_ratio: Optional[str] = Field(None, description='e.g. square_1_1, widescreen_16_9') styling: Optional[dict] = None seed: Optional[int] = Field(None, ge=1, le=4294967295) class SeedreamRequest(BaseModel): prompt: str = Field(..., min_length=1, max_length=4000) aspect_ratio: Optional[str] = Field(None, description='e.g. square_1_1, widescreen_16_9') seed: Optional[int] = Field(None, ge=1, le=4294967295)