69 lines
2.2 KiB
Python
69 lines
2.2 KiB
Python
"""
|
|
Configuration settings for the inpainting server
|
|
"""
|
|
import os
|
|
import platform
|
|
from typing import Dict, Any
|
|
from pydantic_settings import BaseSettings
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
# System detection
|
|
IS_JETSON: bool = platform.machine() == "aarch64" and "tegra" in platform.uname().release.lower()
|
|
IS_X86: bool = platform.machine() in ["x86_64", "amd64"]
|
|
|
|
# Server settings
|
|
HOST: str = "0.0.0.0"
|
|
PORT: int = 8008
|
|
WORKERS: int = 1
|
|
|
|
# GPU settings
|
|
CUDA_DEVICE: int = 0
|
|
FP16_ENABLED: bool = True
|
|
|
|
# Jetson specific settings
|
|
JETSON_MODE: bool = IS_JETSON
|
|
JETSON_POWER_MODE: str = "MAXN" # MAXN, 5W, 10W, 15W
|
|
JETSON_FAN_CONTROL: bool = True
|
|
JETSON_TEMP_THRESHOLD: int = 75 # Celsius
|
|
|
|
# Session pool settings
|
|
SIMPLE_LAMA_SESSIONS: int = 2 if IS_JETSON else 4
|
|
MIGAN_SESSIONS: int = 2 if IS_JETSON else 4
|
|
REMBG_SESSIONS: int = 1 if IS_JETSON else 2
|
|
|
|
# Worker settings (Jetson은 더 적은 워커 사용)
|
|
MAX_WORKERS: int = 4 if IS_JETSON else 12
|
|
MIN_WORKERS: int = 1 if IS_JETSON else 4
|
|
WORKER_TIMEOUT: int = 300 # 5 minutes
|
|
|
|
# VRAM management (Jetson은 더 보수적인 설정)
|
|
VRAM_THRESHOLD_HIGH: float = 0.7 if IS_JETSON else 0.85 # 70% for Jetson, 85% for x86
|
|
VRAM_THRESHOLD_LOW: float = 0.3 if IS_JETSON else 0.25 # 30% for Jetson, 25% for x86
|
|
VRAM_CHECK_INTERVAL: int = 20 if IS_JETSON else 20 # More frequent for both
|
|
|
|
# Model paths
|
|
SIMPLE_LAMA_MODEL_PATH: str = "models/simple-lama"
|
|
MIGAN_MODEL_PATH: str = "models/migan"
|
|
REMBG_MODEL_PATH: str = "models/rembg"
|
|
|
|
# Upload settings
|
|
MAX_FILE_SIZE: int = 25 * 1024 * 1024 if IS_JETSON else 100 * 1024 * 1024 # 25MB for Jetson, 100MB for x86
|
|
MAX_IMAGE_SIZE: int = 2048 if IS_JETSON else 8192 # Maximum image dimension for Jetson, 8K for x86
|
|
ALLOWED_EXTENSIONS: set = {".jpg", ".jpeg", ".png", ".bmp", ".tiff"}
|
|
|
|
# Monitoring
|
|
ENABLE_MONITORING: bool = True
|
|
MONITORING_PORT: int = 8888
|
|
|
|
# Jetson performance settings
|
|
JETSON_GPU_FREQ: int = 1200 # MHz
|
|
JETSON_CPU_FREQ: int = 1900 # MHz
|
|
JETSON_MEMORY_FREQ: int = 1600 # MHz
|
|
|
|
class Config:
|
|
env_file = ".env"
|
|
|
|
|
|
settings = Settings()
|