from datetime import datetime from pydantic import BaseModel class Prompt(BaseModel): id: int prompt: str created_at: datetime user_id: int class Config: from_attributes = True class UserBase(BaseModel): pass class UserCreate(UserBase): username: str password: str class UserUpdate(UserBase): user_id: int is_active: bool = True is_superuser: bool = False class User(UserBase): user_id: int username: str is_active: bool is_superuser: bool created_at: datetime updated_at: datetime prompts: list[Prompt] = [] class Config: from_attributes = True class Generate(BaseModel): seed: int | None = None negative_prompt : str = "ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, bad anatomy, watermark, signature, cut off, low contrast, underexposed, overexposed, bad art, beginner, amateur, distorted face" medium: str | None = "" style: str | None = "" artist: str | None = "" website: str | None = "" resolution: str | None = "" additional_details: str | None = "" color: str | None = "" lightning: str | None = "" class TextImage(Generate): prompt: str num_inference_steps: int = 4 guidance_scale: float = 2.0 class ImageImage(Generate): prompt: str image: str num_inference_steps: int = 20 guidance_scale: float = 7.5 image_guidance_scale: float = 1.5 class BackgroundRemoval(BaseModel): image: str class ImageVariations(Generate): image: str num_samples: int = 4 num_inference_steps: int = 50 prompt: str | None = "" scale: float = 0.5 guidance_scale: float = 7.5