File size: 2,635 Bytes
60c56d7
 
 
 
 
 
 
 
 
 
 
 
 
2999873
60c56d7
 
 
 
 
f79a7fe
df14637
 
 
5e6062c
 
8d0a1ae
 
 
 
 
8f6f449
 
 
 
 
 
 
 
 
 
 
 
5e6062c
 
 
 
ae9bbd0
 
f79a7fe
ae9bbd0
60c56d7
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
"""
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"
    )
    
    # 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")
    
    class Config:
        env_file = ".env"
        case_sensitive = False

settings = Settings()