# ADO2 Higgsfield Shorts server — 이 파일을 .env 로 복사해 채우세요 (.env 는 gitignore됨)

# --- OpenAI API (spec_builder, 필수) ---
OPENAI_API_KEY=
OPENAI_MODEL=gpt-4o

# --- HTTP ---
PORT=10001
# CORS 허용 출처. 콤마구분. 운영 시 실제 도메인으로 제한 (예: https://ado2short.o2osolution.ai)
CORS_ORIGINS=*

# --- 비동기 작업 큐 ---
# 동시에 실제 생성을 돌릴 작업 수. 초과 요청은 큐에서 대기(status=queued).
# Higgsfield/Remotion이 무겁고 외부 단가가 있으므로 보수적으로 둔다.
MAX_CONCURRENT_JOBS=2
# 완료/실패한 작업 상태를 메모리에 보관할 시간(초). 지나면 폴링 시 청소.
JOB_RETENTION_SECONDS=3600

# --- 비디오 생성 백엔드 선택 ---
# fal        : fal.ai Seedance 2.0 reference-to-video (멀티이미지 9장 + 9:16 세로). 멀티이미지엔 이쪽 권장.
# higgsfield : Higgsfield(dop/seedance v1/kling). 단일 이미지만.
VIDEO_BACKEND=higgsfield

# --- fal.ai (Seedance 2.0, VIDEO_BACKEND=fal 일 때) ---
# 키 발급: https://fal.ai → API Keys. 형식은 keyid:secret.
FAL_KEY=
FAL_MODEL_ID=bytedance/seedance-2.0/reference-to-video
FAL_MAX_IMAGES=9          # Seedance 2.0 멀티이미지 최대 9장
FAL_ASPECT_RATIO=9:16     # auto/16:9/9:16/4:3/3:4/1:1/21:9
FAL_RESOLUTION=720p       # 480p/720p/1080p
FAL_DURATION=8            # "auto" 또는 4~15(초)

# --- Higgsfield (공통, VIDEO_BACKEND=higgsfield 일 때) ---
# 백엔드: cli(디바이스 로그인) | api(공식 SDK). 컨테이너에서는 api 권장.
HIGGSFIELD_BACKEND=cli
HIGGSFIELD_ASPECT_RATIO=9:16
HIGGSFIELD_DURATION=8
HIGGSFIELD_WAIT_TIMEOUT=15m

# --- Higgsfield: CLI 백엔드 ---
# 인증: `higgsfield auth login` (~/.higgsfield, 컨테이너에선 별도 주입 필요)
HIGGSFIELD_MODEL=marketing_studio_video
HIGGSFIELD_MODE=tv_spot
HIGGSFIELD_GENERATE_AUDIO=true

# --- Higgsfield: API 백엔드 (공식 higgsfield-client SDK) ---
# 키 발급: https://cloud.higgsfield.ai → API 섹션. 형식은 key:secret.
HIGGSFIELD_API_KEY=
HIGGSFIELD_API_SECRET=
# (또는 SDK 네이티브 변수로 직접 줘도 됨: HF_KEY="key:secret")
#
# 비디오 application 선택 (platform.higgsfield.ai 실측):
#  · DoP      : APP=/v1/image2video/dop, VARIANT=dop-turbo|dop-lite|dop-preview
#               input_images(복수). aspect_ratio 파라미터 무시 → 입력 이미지 비율 따라감(세로 보장 X).
#  · Seedance : APP=/v1/image2video/seedance, VARIANT=seedance_pro|seedance_lite
#               input_image(단수, 1장). aspect_ratio 9:16 네이티브 지원(세로 보장 O), duration 3~12.
# 세로 9:16 숏폼에는 Seedance 권장.
HIGGSFIELD_API_APP=/v1/image2video/seedance
HIGGSFIELD_API_VARIANT=seedance_pro
# Seedance/DoP image2video 모두 입력 이미지 1장만 사용.
HIGGSFIELD_API_MAX_IMAGES=1

# --- Remotion ---
REMOTION_FPS=30
REMOTION_COMPOSITION=MumumShort

# --- Paths (Docker에서 오버라이드. 비우면 레포 기본 경로 사용) ---
# WEBAPP_DIR=
# OUTPUTS_DIR=
# UPLOADS_DIR=

# --- Azure Blob Storage (완성 영상 업로드 + 갤러리 조회) ---
# 비워두면 로컬 파일시스템 fallback.
# BASE_URL: 컨테이너 내 가상 폴더 경로. 끝에 / 포함.
#   예) https://account.blob.core.windows.net/container/prefix/
# SAS_TOKEN: 컨테이너 범위 SAS. 필수 권한: sp=racwdl (읽기·추가·생성·쓰기·삭제·목록).
AZURE_BLOB_BASE_URL=
AZURE_BLOB_SAS_TOKEN=
