""" Configuration settings for the application """ import os from pydantic_settings import BaseSettings class Settings(BaseSettings): """Application settings""" # Firebase settings ENABLE_APP_CHECK: bool = os.getenv("ENABLE_APP_CHECK", "true").lower() == "true" FIREBASE_CREDENTIALS_PATH: str = os.getenv( "FIREBASE_CREDENTIALS_PATH", "/data/firebase-adminsdk.json" ) FIREBASE_API_KEY: str = os.getenv("FIREBASE_API_KEY", "") # API settings BASE_URL: str = os.getenv("BASE_URL", "http://localhost:8000") # Model / inference settings # Note: MODEL_ID must point to a FastAI model (.pkl file), not PyTorch (.pt file) # To find FastAI-compatible colorization models, search Hugging Face for models with .pkl files # Example: Look for models tagged with "fastai" and "colorization" MODEL_ID: str = os.getenv("MODEL_ID", "Hammad712/GAN-Colorization-Model") MODEL_BACKEND: str = os.getenv("MODEL_BACKEND", "fastai") BASE_MODEL_ID: str = os.getenv("BASE_MODEL_ID", "stabilityai/stable-diffusion-xl-base-1.0") LIGHTNING_REPO: str = os.getenv("LIGHTNING_REPO", "ByteDance/SDXL-Lightning") LIGHTNING_WEIGHTS: str = os.getenv("LIGHTNING_WEIGHTS", "sdxl_lightning_8step_unet.safetensors") CAPTION_MODEL_ID: str = os.getenv("CAPTION_MODEL_ID", "Salesforce/blip-image-captioning-base") NUM_INFERENCE_STEPS: int = int(os.getenv("NUM_INFERENCE_STEPS", "20")) POSITIVE_PROMPT: str = os.getenv( "POSITIVE_PROMPT", "high quality color photo, vibrant natural colors, detailed lighting" ) NEGATIVE_PROMPT: str = os.getenv( "NEGATIVE_PROMPT", "low quality, monochrome, black and white, desaturated, blurry, grainy" ) GUIDANCE_SCALE: float = float(os.getenv("GUIDANCE_SCALE", "1.0")) CONTROLNET_SCALE: float = float(os.getenv("CONTROLNET_SCALE", "1.0")) CAPTION_PREFIX: str = os.getenv("CAPTION_PREFIX", "a photography of") COLORIZE_SEED: int = int(os.getenv("COLORIZE_SEED", "123")) FASTAI_OUTPUT_CAPTION: str = os.getenv( "FASTAI_OUTPUT_CAPTION", "Colorized using GAN-Colorization-Model" ) INFERENCE_PROVIDER: str = os.getenv("INFERENCE_PROVIDER", "fal-ai") INFERENCE_MODEL: str = os.getenv("INFERENCE_MODEL", "black-forest-labs/FLUX.1-Kontext-dev") INFERENCE_TIMEOUT: int = int(os.getenv("INFERENCE_TIMEOUT", "180")) HF_TOKEN: str = os.getenv("HF_TOKEN", "") # Storage settings UPLOAD_DIR: str = os.getenv("UPLOAD_DIR", "uploads") RESULT_DIR: str = os.getenv("RESULT_DIR", "results") # MongoDB settings # MONGODB_URI should be set in Hugging Face Space secrets MONGODB_URI: str = os.getenv("MONGODB_URI", "") MONGODB_DB_NAME: str = os.getenv("MONGODB_DB_NAME", "colorization_db") MONGODB_ADMIN: str = os.getenv("MONGODB_ADMIN", "") MONGODB_ADMIN_DB_NAME: str = os.getenv("MONGODB_ADMIN_DB_NAME", "adminPanel") DEFAULT_CATEGORY_COLORIZATION: str = os.getenv("DEFAULT_CATEGORY_COLORIZATION", "") DEFAULT_CATEGORY_FALLBACK: str = os.getenv("DEFAULT_CATEGORY_FALLBACK", "69368fcd2e46bd68ae1889b2") class Config: env_file = ".env" case_sensitive = False settings = Settings()