"""Configuration and constants for Reality Divergence app.""" import os try: # Load HF_TOKEN (and any other vars) from a local .env file if present. from dotenv import load_dotenv load_dotenv() except ImportError: pass # App metadata APP_NAME = "Reality Divergence" TAGLINE = "Explore the lives and worlds you didn't live." VERSION = "1.0.0" # Model configuration # Hugging Face access token. Set it in a .env file (HF_TOKEN=hf_xxx) or as an # environment variable. Get one at https://huggingface.co/settings/tokens HF_TOKEN = os.getenv("HF_TOKEN") or os.getenv("HUGGINGFACEHUB_API_TOKEN") # Text model served through the HF Inference API (chat_completion). # Qwen2.5-7B-Instruct: open weights, well under the 32B hackathon cap, reliably # available on the Inference API. Override via the MODEL_NAME_TEXT env var. MODEL_NAME_TEXT = os.getenv("MODEL_NAME_TEXT", "Qwen/Qwen2.5-7B-Instruct") # Image models served through the HF Inference API (text_to_image). MODEL_NAME_IMAGE = os.getenv("MODEL_NAME_IMAGE", "black-forest-labs/FLUX.1-schnell") FALLBACK_IMAGE_MODEL = "stabilityai/stable-diffusion-xl-base-1.0" # Inference settings TIMEOUT_INFERENCE = 60 # seconds TIMEOUT_IMAGE = 45 # seconds MAX_TOKENS_TEXT = 512 MAX_TOKENS_MIRROR = 150 TEMPERATURE_ANALYSIS = 0.1 TEMPERATURE_NARRATIVE = 0.7 TEMPERATURE_IMAGE = 0.8 # Safety settings MIN_STORY_LENGTH = 100 MAX_STORY_LENGTH = 5000 RATE_LIMIT_ELSEWHERE = 5 # requests per minute RATE_LIMIT_REALITY = 20 # UI/UX THEME_BG_DARK = "#050816" THEME_BG_MID = "#08111F" THEME_BG_LIGHT = "#130A24" THEME_ACCENT_BLUE = "#38BDF8" THEME_ACCENT_PURPLE = "#8B5CF6" THEME_TEXT_PRIMARY = "#F8FAFC" THEME_TEXT_SECONDARY = "#94A3B8" # Feature flags ENABLE_NARRATION = False # VoxCPM2 optional ENABLE_IMAGE_GEN = True ENABLE_ARTIFACTS = True ENABLE_SHARE_CARD = True # Paths ASSETS_PATH = "assets" SVG_HOME = f"{ASSETS_PATH}/reality-divergence-home.svg" SVG_DASHBOARD = f"{ASSETS_PATH}/reality-divergence-dashboard.svg"