Spaces:
Sleeping
Sleeping
| import os | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| DEFAULT_PINECONE_KEY = os.getenv("DEFAULT_PINECONE_KEY", "") | |
| DEFAULT_CLOUDINARY_URL = os.getenv("DEFAULT_CLOUDINARY_URL", "") | |
| IDX_FACES = os.getenv("IDX_FACES", "enterprise-faces") | |
| IDX_OBJECTS = os.getenv("IDX_OBJECTS", "enterprise-objects") | |
| MAX_CONCURRENT_INFERENCES = int(os.getenv("MAX_CONCURRENT_INFERENCES", "1")) | |
| MAX_FILES_PER_UPLOAD = int(os.getenv("MAX_FILES_PER_UPLOAD", "50")) | |
| INFERENCE_CACHE_SIZE = int(os.getenv("INFERENCE_CACHE_SIZE", "128")) | |
| SUPABASE_URL = os.getenv("SUPABASE_URL", "") | |
| SUPABASE_SERVICE_KEY = os.getenv("SUPABASE_SERVICE_KEY", "") | |
| MAX_IMAGE_SIZE = int(os.getenv("MAX_IMAGE_SIZE", "1024")) | |
| MAX_CROPS = int(os.getenv("MAX_CROPS", "10")) | |
| YOLO_PERSON_CLASS_ID = 0 | |
| YOLO_MIN_CROP_PX = int(os.getenv("YOLO_MIN_CROP_PX", "50")) | |
| YOLO_CONF_THRESHOLD = float(os.getenv("YOLO_CONF_THRESHOLD", "0.25")) | |
| DET_SIZE_PRIMARY = (640, 640) | |
| DET_SCALES = [(1280, 1280), (960, 960), (640, 640)] | |
| IOU_DEDUP_THRESHOLD = float(os.getenv("IOU_DEDUP_THRESHOLD", "0.4")) | |
| MIN_FACE_SIZE = int(os.getenv("MIN_FACE_SIZE", "30")) | |
| MAX_FACES_PER_IMAGE = int(os.getenv("MAX_FACES_PER_IMAGE", "20")) | |
| FACE_QUALITY_GATE = float(os.getenv("FACE_QUALITY_GATE", "0.5")) | |
| FACE_QUALITY_GATE_UPLOAD = float(os.getenv("FACE_QUALITY_GATE_UPLOAD", "0.5")) | |
| FACE_QUALITY_GATE_SEARCH = float(os.getenv("FACE_QUALITY_GATE_SEARCH", "0.35")) | |
| FACE_DIM = 512 | |
| ADAFACE_DIM = 512 | |
| FUSED_FACE_DIM = 1024 | |
| FACE_CROP_THUMB_SIZE = int(os.getenv("FACE_CROP_THUMB_SIZE", "112")) | |
| FACE_CROP_QUALITY = int(os.getenv("FACE_CROP_QUALITY", "85")) | |
| FACE_CROP_PADDING = float(os.getenv("FACE_CROP_PADDING", "0.2")) | |
| ADAFACE_CROP_PADDING = float(os.getenv("ADAFACE_CROP_PADDING", "0.1")) | |
| ENABLE_ADAFACE = int(os.getenv("ENABLE_ADAFACE", "1")) | |
| HF_TOKEN = os.getenv("HF_TOKEN", "") | |
| # Face matching — threshold moved from db_client.py to be env-tunable | |
| FACE_MATCH_THRESHOLD = float(os.getenv("FACE_MATCH_THRESHOLD", "0.35")) | |
| FACE_SCORE_THRESHOLD = float(os.getenv("FACE_SCORE_THRESHOLD", "0.50")) | |
| FACE_SCORE_K = float(os.getenv("FACE_SCORE_K", "18.0")) | |
| # Multi-scale early exit — skip smaller scales once MAX_FACES_PER_IMAGE found | |
| FAST_DETECT = bool(int(os.getenv("FAST_DETECT", "1"))) | |
| # Redis cache (Upstash) | |
| REDIS_URL = os.getenv("REDIS_URL", "") | |
| REDIS_TTL_INFERENCE = int(os.getenv("REDIS_TTL_INFERENCE", "3600")) | |
| REDIS_TTL_SEARCH = int(os.getenv("REDIS_TTL_SEARCH", "300")) | |
| REDIS_TTL_CATEGORIES = int(os.getenv("REDIS_TTL_CATEGORIES", "120")) | |
| # Distributed HF Spaces | |
| FACE_SPACE_URL = os.getenv("FACE_SPACE_URL", "") | |
| OBJECT_SPACE_URL = os.getenv("OBJECT_SPACE_URL", "") |