Initial commit: FaceFusion REST API
FastAPI wrapper around FaceFusion v3.5.3 submodule with: - Sync and async (job-based) processing endpoints - FaceFusion bridge with manual key registration and Lock-serialized processing - Multi-target Dockerfile (CPU + CUDA GPU) - Docker Compose configs for dev, prod-cpu, and prod-gpu - Gitea CI/CD workflow with dual image builds - All 11 FaceFusion processors supported via options API Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
38
app/config.py
Normal file
38
app/config.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import json
|
||||
from typing import List
|
||||
|
||||
from pydantic_settings import BaseSettings
|
||||
|
||||
|
||||
class Settings(BaseSettings):
|
||||
model_config = {'env_prefix': 'FF_'}
|
||||
|
||||
# Paths
|
||||
upload_dir: str = '/data/uploads'
|
||||
output_dir: str = '/data/outputs'
|
||||
models_dir: str = '/data/models'
|
||||
temp_dir: str = '/data/temp'
|
||||
jobs_dir: str = '/data/jobs'
|
||||
|
||||
# FaceFusion defaults
|
||||
execution_providers: str = '["cpu"]'
|
||||
execution_thread_count: int = 4
|
||||
video_memory_strategy: str = 'moderate'
|
||||
face_detector_model: str = 'yolo_face'
|
||||
download_providers: str = '["github", "huggingface"]'
|
||||
download_scope: str = 'lite'
|
||||
log_level: str = 'info'
|
||||
|
||||
# Limits
|
||||
max_upload_size_mb: int = 500
|
||||
sync_timeout_seconds: int = 120
|
||||
auto_cleanup_hours: int = 24
|
||||
|
||||
def get_execution_providers(self) -> List[str]:
|
||||
return json.loads(self.execution_providers)
|
||||
|
||||
def get_download_providers(self) -> List[str]:
|
||||
return json.loads(self.download_providers)
|
||||
|
||||
|
||||
settings = Settings()
|
||||
Reference in New Issue
Block a user