Files
esh-pfi-infrastructure/stacks/qwen3-tts/.env.example
T
vh b805075bdf stacks: parakeet healthcheck (curl→wget); qwen3-tts variant labels
- parakeet/compose.yaml: healthcheck was using curl which isn't in the
  image (only wget is, via apt). 2,190 failing checks — switched to
  `wget -q -O /dev/null`, container went healthy on recreate.
- qwen3-tts/.env.example: variant annotation was reversed. The upstream
  wrapper's runtime error is unambiguous: voice cloning requires the
  -Base variant, not -CustomVoice. Corrected the comment block and
  flipped the default to Qwen/Qwen3-TTS-12Hz-1.7B-Base.
- qwen3-tts/README.md: 0.6B switch snippet now suffixes -Base too,
  since plain `Qwen/Qwen3-TTS-12Hz-0.6B` isn't published on HF.
2026-04-24 21:56:57 -07:00

61 lines
3.1 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.
# Qwen3-TTS stack tunables. Copy to `.env` on irv-ml1 before deploying.
# ── build pin ────────────────────────────────────────────────────────
# SHA of groxaxo/Qwen3-TTS-Openai-Fastapi to build from. Bump + rebuild
# when you want upstream wrapper updates.
QWEN3_TTS_SHA=10323ce778c48a75dbda93d0a4891983fb371f58
# Local image tag — bump when you change build context to force a
# fresh layer build. v2 = first GPU build (target=production); v1
# was the accidental CPU-only image (last stage of upstream's
# multi-stage Dockerfile).
QWEN3_TTS_TAG=v2
# ── network ──────────────────────────────────────────────────────────
# Host port (container listens on 8880 internally).
QWEN3_TTS_PORT=8191
# 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.
QWEN3_TTS_BIND=0.0.0.0
# ── runtime ──────────────────────────────────────────────────────────
# Inference backend. `official` = default upstream; `optimized` =
# faster but slightly less robust; `vllm_omni` = vLLM-backed (needs
# more VRAM); `pytorch` = bare pytorch path.
QWEN3_TTS_BACKEND=official
# Model variant. Upstream publishes four checkpoints on HF:
# Qwen/Qwen3-TTS-12Hz-1.7B-Base — flagship, supports voice cloning
# Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice — flagship, preset voices only
# Qwen/Qwen3-TTS-12Hz-0.6B-Base — lightweight, supports voice cloning
# Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice — lightweight, preset voices only
# 1.7B = ~68 GB VRAM bfloat16, best quality. 0.6B = ~23 GB.
# `voice="clone:<name>"` only works with the -Base variants — that's
# what the upstream wrapper enforces. Earlier versions of this file
# had the variant labels reversed; corrected 2026-04-24.
QWEN3_TTS_MODEL=Qwen/Qwen3-TTS-12Hz-1.7B-Base
# Warm the model on container start so the first synthesis request
# doesn't pay the load latency. Adds ~30 s to startup. Recommended.
QWEN3_TTS_WARMUP=true
# Concurrency cap on synthesis requests. Single GPU + 1.7B model →
# leave at 1 unless you're load-testing.
QWEN3_TTS_MAX_CONCURRENT=1
# Mount the gradio voice-studio UI at /voice-studio for browser-side
# voice cloning. Set "false" to disable for headless deployments.
QWEN3_TTS_VOICE_STUDIO=true
# ── persistent storage on the host ───────────────────────────────────
# HuggingFace cache (model weights, ~5 GB after first run). Bind-mounted
# so model state survives container recreate. Excluded from restic
# (regenerable from HF Hub).
QWEN3_TTS_CACHE_DIR=/worktank/qwen3-tts/cache
# Cloned voice profiles (meta.json + reference.wav per voice). Precious
# — cloned voices need the original reference audio to recreate.
# Included in restic.
QWEN3_TTS_VOICES_DIR=/worktank/qwen3-tts/voices