# Zonos-v0.1 stack tunables. Copy to `.env` on irv-ml1 before deploying.

# ── build pin ────────────────────────────────────────────────────────
# SHA of Zyphra/Zonos. Use the FULL 40-char SHA — docker buildx's git
# source resolver doesn't accept short hashes. `main` works but is NOT
# reproducible; pin a SHA before you rely on this. Latest commits:
#   https://github.com/Zyphra/Zonos/commits/main
ZONOS_SHA=main

# Local image tag — bump when you change build context to force a
# fresh layer build.
ZONOS_TAG=v1

# ── network ──────────────────────────────────────────────────────────
# Host port. Container's Gradio listens on 7860 internally.
# Reserved on irv-ml1: 8188 ComfyUI, 8190 CosyVoice, 8191 Qwen3-TTS,
# 8192 IndexTTS-2, 8193 Kokoro, 8194 VibeVoice, 8195 Fish-S2,
# 8196 Chatterbox, 8197 Voxtral, 8198 Kyutai, 8200 Dia, 8765 Parakeet.
# 8199 picked here for the Gradio eval UI.
ZONOS_PORT=8199

# Host port for the OpenAI-ish REST adapter (zonos-api service) that
# asset-engine routes to. Container listens on 8000 internally. 8203
# (8200 Dia2-2B, 8201 csm, 8202 Dia2-1B were taken on irv-ml1).
ZONOS_API_PORT=8203

# Bind address. 0.0.0.0 exposes on all interfaces (incl. WG tunnel
# interface 10.100.79.3); 127.0.0.1 restricts to local-only.
ZONOS_BIND=0.0.0.0

# ── runtime / GPU ────────────────────────────────────────────────────
# Devices visible inside the container. "0" pins to the RTX 3090
# (24 GB) — plenty for Zonos (~6 GB). Both the 3090 and the A6000 are
# Ampere, so either satisfies the hybrid variant's "3000-series or
# newer" requirement; "1" selects the A6000.
ZONOS_GPU_DEVICES=0

# Model variant is chosen in the Gradio UI / SDK, not via env:
#   Zyphra/Zonos-v0.1-transformer  — default, ~3.6 GB, no special kernels
#   Zyphra/Zonos-v0.1-hybrid       — Mamba-SSM hybrid; needs Ampere+ and
#                                    extra build deps (mamba-ssm,
#                                    causal-conv1d) baked by the image
# Start with the transformer variant unless you specifically want hybrid.

# ── persistent storage on the host ───────────────────────────────────
# HuggingFace cache — Zonos weights land here on first start.
# Bind-mounted so they survive container recreate. Excluded from restic
# (regenerable from HF).
ZONOS_CACHE_DIR=/worktank/zonos/cache

# Reference voice clips for zero-shot cloning (mounted read-only into the
# adapter at /app/voices). Drop 10–30s clean WAVs here; the catalog's
# `voice` field selects one by filename. Empty/absent → default voice.
ZONOS_VOICES_DIR=/worktank/zonos/voices

# Model the adapter loads at startup. Only the transformer variant is
# available in the current image (mamba-ssm absent → no hybrid).
ZONOS_MODEL=Zyphra/Zonos-v0.1-transformer
