Files
esh-pfi-infrastructure/stacks/fish-s2/.env.example
T
vh 131d746c92 voxtral + kyutai-tts: fix wrong image tag / wrong endpoint paths; fish-s2: env-selectable model variant
Three fixes from the second-wave deploy attempts:

* voxtral: vllm/vllm-omni doesn't publish a `latest` tag — pull
  failed with "manifest unknown". Pinned VOXTRAL_VLLM_TAG to v0.18.0
  (released 2026-03-29, the day after the Voxtral 4B TTS release —
  first cut with Voxtral support).

* kyutai-tts: NillPointer wrapper exposes ONLY /health (root) and
  POST /v1/audio/speech. No /v1/models, no /v1/audio/voices —
  those return 404. Verified by /openapi.json against the live
  container. Compose healthcheck + playbook wait + verify steps
  all repointed at the actual paths. POST /v1/audio/speech is now
  smoke-tested with a RIFF WAV assertion (same pattern as fish-s2).

* fish-s2: added FISH_S2_MODEL env var so the model variant is
  swappable via .env without rebuilding. Both s2-pro (default) and
  s1-mini are pre-pulled into the bind-mount; LLAMA_CHECKPOINT_PATH
  + DECODER_CHECKPOINT_PATH now use ${FISH_S2_MODEL:-s2-pro}.
  s1-mini was originally gated on fishaudio's HF org (401), but
  niobures/OpenAudio-S1 mirrors the same files openly — pulled
  from there via a one-shot snapshot_download.
2026-04-27 23:54:59 -07:00

60 lines
3.0 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Fish Audio S2-Pro stack tunables. Copy to `.env` on irv-ml1 before
# deploying.
# ── build pin ────────────────────────────────────────────────────────
# SHA of fishaudio/fish-speech to build from. Bump + rebuild when you
# want upstream wrapper updates. Use the FULL 40-char SHA — docker
# buildx's git source resolver doesn't accept short hashes.
FISH_S2_SHA=main
# Local image tag — bump when you change build context to force a
# fresh layer build.
FISH_S2_TAG=v1
# ── network ──────────────────────────────────────────────────────────
# Host port (container listens on 8080 internally; we map to 8195
# externally to fit alongside the rest of the irv-ml1 TTS slate).
# Port reservations on irv-ml1: 8188 ComfyUI, 8190 CosyVoice, 8191
# Qwen3-TTS, 8192 IndexTTS-2, 8193 Kokoro, 8194 VibeVoice, 8196
# Chatterbox, 8765 Parakeet ASR.
FISH_S2_PORT=8195
FISH_S2_BIND=0.0.0.0
# ── runtime / GPU ────────────────────────────────────────────────────
# GPU pinning. "0" = RTX 3090 (24 GB), "1" = RTX A6000 (48 GB), "all"
# = both visible. Fish S2-Pro consumes ~17 GB during inference (4B
# model + KV cache), so the A6000 is the right home with comfortable
# headroom. The 3090's 24 GB CAN fit it but leaves ~5 GB for KV which
# is tight for long contexts.
FISH_S2_GPU_DEVICES=1
# torch.compile on first inference of each shape adds ~60 s warmup but
# unlocks ~10× speedup per upstream. Worth it for sustained use; flip
# to 0 to disable if you hit a torch.compile bug on a future
# checkpoint.
FISH_S2_COMPILE=1
# Model variant. Both checkpoints are pre-pulled by the deploy
# playbook into /worktank/fish-s2/checkpoints/. Swap by editing this
# value + `docker compose up -d --force-recreate` (no rebuild needed).
# s2-pro — 4B-class, highest quality, ~7-8 s TTFB on a long phrase
# s1-mini — lighter, ~3-5× smaller model.pth, expected ~2-3 s TTFB
# fishaudio/s1-mini on HF is gated, but niobures/OpenAudio-S1 mirrors
# the same files openly — playbook pulls from there.
FISH_S2_MODEL=s2-pro
# ── persistent storage on the host ───────────────────────────────────
# Model checkpoints — Fish auto-downloads s2-pro on first run (~9 GB
# at BF16) and caches under here. Persistent across container
# recreates so we don't re-pull.
FISH_S2_CHECKPOINT_DIR=/worktank/fish-s2/checkpoints
# Reference audio for voice cloning. Drop clean ~5-15 s clips here
# (WAV / FLAC / MP3); the wrapper scans on request. One clean clip
# per voice; name them descriptively.
FISH_S2_REFERENCE_DIR=/worktank/fish-s2/references
# HF cache — persistent across container recreates to skip the model
# re-pull. Worth ~9 GB on disk.
FISH_S2_CACHE_DIR=/worktank/fish-s2/hf_cache