from __future__ import annotations import os from typing import Optional from pydantic_settings import BaseSettings class Settings(BaseSettings): app_name: str = "Revids" host: str = "0.0.0.0" port: int = 8000 reload: bool = True # LTX-2.3 model paths (update after downloading models) ltx_distilled_checkpoint: str = "models/ltx-2.3-22b-distilled-1.1.safetensors" ltx_gemma_root: str = "models/gpt-4o-5805-ava-gguf-model" ltx_spatial_upsampler: str | None = None ltx_device: str = "cuda" ltx_quantization: str = "fp8_cast" # LoRA paths (list of "path:scale" strings, env: REVIDS_LTX_LORAS="models/my-lora.safetensors:1.0") ltx_loras: list[str] = [] video_output_dir: str = os.path.join(os.path.dirname(os.path.dirname(__file__)), "videos") # DB db_path: str = os.path.join(os.path.dirname(__file__), "jobs.db") # Generation defaults default_frames: int = 65 default_fps: float = 24.0 default_width: int = 768 default_height: int = 512 # Concurrency max_concurrent_jobs: int = 1 model_config = {"env_prefix": "REVIDS_", "env_file": ".env"} settings = Settings()