# 인페인팅 서버 환경 설정 예시
# 실제 사용 시 .env 파일로 복사하여 사용하세요

# ===== 하드웨어/플랫폼 자동 감지 =====
# 아래 값은 자동 감지로 채워지며, 수동 강제하려면 true/false 지정
IS_JETSON=auto               # auto | true | false
IS_X86=auto                  # auto | true | false
GPU_DEVICE=0                 # 사용할 GPU 인덱스

# ===== 프레임워크 정책 (충돌 방지 핵심) =====
# TORCH_GPU_ONLY: Torch만 GPU 사용, TF/ONNX는 CPU
# ORT_GPU: ONNXRuntime GPU 사용(필요 시, TF는 CPU)
# TF_GPU_ONLY: TensorFlow만 GPU (권장하지 않음: 토치와 섞이면 충돌↑)
FRAMEWORK_POLICY=TORCH_GPU_ONLY   # TORCH_GPU_ONLY | ORT_GPU | TF_GPU_ONLY

# 개별 토글(정책과 충돌 나면 부트에서 자동 보정)
TF_ENABLED=false
ORT_ENABLED=true
FP16_ENABLED=true

# 서버 설정
HOST=0.0.0.0
PORT=8008
WORKERS=1                    # GPU 서버는 프로세스 1개 권장, 내부 비동기로 동시처리

# GPU 설정
CUDA_DEVICE=0
FP16_ENABLED=true

# Jetson 전용 설정
JETSON_MODE=false  # 자동 감지됨
JETSON_POWER_MODE=MAXN  # MAXN, 5W, 10W, 15W
JETSON_FAN_CONTROL=true
JETSON_TEMP_THRESHOLD=75  # Celsius
JETSON_GPU_FREQ=1200  # MHz
JETSON_CPU_FREQ=1900  # MHz
JETSON_MEMORY_FREQ=1600  # MHz

# 세션 풀 설정 (시스템별 자동 조정)
SIMPLE_LAMA_SESSIONS=3
MIGAN_SESSIONS=3
REMBG_SESSIONS=1

# 워커 설정 (Jetson은 더 적은 워커 사용)
MAX_WORKERS=12  # Jetson: 4, x86: 8
MIN_WORKERS=6  # Jetson: 1, x86: 2
WORKER_TIMEOUT=300

# VRAM 관리 (Jetson은 더 보수적인 설정)
VRAM_THRESHOLD_HIGH=0.8  # Jetson: 70%, x86: 80%
VRAM_THRESHOLD_LOW=0.3   # Jetson: 30%, x86: 40%
VRAM_CHECK_INTERVAL=30    # Jetson: 20초, x86: 30초

# 모델 경로
SIMPLE_LAMA_MODEL_PATH=app/models/onnx/lama_fp32.onnx
MIGAN_MODEL_PATH=app/models/onnx/migan_pipeline_v2.onnx
REMBG_MODEL_PATH=app/models/onnx/BriaRMBG1.4_model_fp16.onnx

# 모델별 세션
SIMPLE_LAMA_MIN_SESSIONS=1
SIMPLE_LAMA_MAX_SESSIONS=2
MIGAN_MIN_SESSIONS=1
MIGAN_MAX_SESSIONS=2
REMBG_MIN_SESSIONS=1
REMBG_MAX_SESSIONS=2

# 업로드 설정 (Jetson은 더 작은 파일 크기)
MAX_FILE_SIZE=26214400  # Jetson: 25MB, x86: 50MB
ALLOWED_EXTENSIONS=.jpg,.jpeg,.png,.bmp,.tiff,.webp
# ALLOWED_EXTENSIONS=[".jpg",".jpeg",".png",".bmp",".tiff",".webp"]

# 모니터링
ENABLE_MONITORING=true
MONITORING_PORT=8080

# Jetson 최적화 설정
JETSON_OPTIMIZE_ON_STARTUP=true
JETSON_AUTO_FAN_CONTROL=true
JETSON_POWER_SAVING=false

# ===== TensorRT/ONNX EP =====
TENSORRT_ENABLED=false      # 실제 TensorRT 엔진/EP를 쓸 때만 true
ORT_PROVIDERS=CUDAExecutionProvider,CPUExecutionProvider
# Jetson에서 onnxruntime-gpu 특수 빌드 사용 시: TensorrtExecutionProvider,CUDAExecutionProvider,CPUExecutionProvider

# ===== 로깅 =====
LOG_LEVEL=INFO
LOG_DIR=logs

# ===== GEMMA 설정 =====
GEMMA_N_GPU_LAYERS=20
GEMMA_N_THREADS=8
GEMMA_N_BATCH=512
# GEMMA_GGUF_PATH=app/models/gemma/gemma-3n-E2B-it-Q4_K_M.gguf
GEMMA_GGUF_PATH=app/models/gemma/gemma-3-4b-it-q4_k_m.gguf