from pathlib import Path from pydantic import Field from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): app_host: str = Field(default="0.0.0.0", alias="APP_HOST") app_port: int = Field(default=8000, alias="APP_PORT") output_dir: Path = Field(default=Path("./outputs"), alias="OUTPUT_DIR") runtime_dir: Path = Field(default=Path("./runtime"), alias="RUNTIME_DIR") sqlite_path: Path = Field(default=Path("./runtime/tasks.db"), alias="SQLITE_PATH") ltx_model_dir: Path = Field(default=Path("./models/ltx"), alias="LTX_MODEL_DIR") hunyuan_model_dir: Path = Field(default=Path("./models/hunyuan"), alias="HUNYUAN_MODEL_DIR") default_width: int = Field(default=832, alias="DEFAULT_WIDTH") default_height: int = Field(default=480, alias="DEFAULT_HEIGHT") default_fps: int = Field(default=16, alias="DEFAULT_FPS") default_duration: int = Field(default=5, alias="DEFAULT_DURATION") default_steps_preview: int = Field(default=8, alias="DEFAULT_STEPS_PREVIEW") default_steps_refine: int = Field(default=12, alias="DEFAULT_STEPS_REFINE") log_level: str = Field(default="INFO", alias="LOG_LEVEL") model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore") settings = Settings()