tts-dgx-spark-faster-qwen3-tts/docker/docker-compose.portainer-0.6b.yml
mARTin-B78 575cebc454 feat: share voices across 1.7B and 0.6B via per-model embeddings (v6.14.0)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 05:04:04 +02:00

162 lines
5.4 KiB
YAML

# ─────────────────────────────────────────────────────────────────────────────
# Qwen3-TTS GPU Stack
#
# Ports:
# 8020 -> Voice clone, OpenAI-compatible /v1/audio/speech
# 8021 -> VoiceDesign model for prompt-designed voices
# 8022 -> CustomVoice model
# 8023 -> Low-latency streaming voice clone endpoint
#
# Container Name RAM Usage GPU VRAM Usage
# faster-qwen3-tts-voiceclone ~2.72 GiB 5327 MiB (~5.2 GiB)
# faster-qwen3-tts-customvoice ~2.88 GiB 4683 MiB (~4.6 GiB)
# faster-qwen3-tts-voicedesign ~2.90 GiB 4747 MiB (~4.6 GiB)
# faster-qwen3-tts-streaming ~2.54 GiB 5659 MiB (~5.5 GiB)
#
# Voice files:
# The voice clone and streaming services scan active voices from:
# home/sparky/Media/_Sounds/TTS_Voices/active_voices
#
# Portainer note:
# Set HF_TOKEN in the stack environment if the models ever need Hugging Face access.
# ─────────────────────────────────────────────────────────────────────────────
services:
# Standard voice cloning backend used by TTS Voice Creator and other OpenAI-compatible clients.
faster-qwen3-tts-voiceclone:
image: martinb78/faster-qwen3-tts-dgx-spark:latest
container_name: tts-faster-qwen3-tts-voiceclone
restart: unless-stopped
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
- HF_TOKEN=${HF_TOKEN}
- EMBED_TAG=1.7b
ports:
- "8020:8000"
volumes:
- /home/sparky/LLMs/vllm/Alibaba/Qwen3-TTS-12Hz-1.7B-Base:/models/Qwen3-TTS:ro
- /home/sparky/Docker/tts-dgx-spark-faster-qwen3-tts/config:/config:rw
- /home/sparky/Media/_Sounds/TTS_Voices/active_voices:/voices:rw
command: >
/bin/bash -c "
python3 /config/generate_voices.py &&
python3 /config/run_server.py
--model /models/Qwen3-TTS
--voices /config/voices.json
--port 8000
--max-seq-len 4096
"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
networks:
- dgx_net
# VoiceDesign backend: creates speech from a descriptive voice prompt instead of a reference clip.
faster-qwen3-tts-voicedesign:
image: martinb78/faster-qwen3-tts-dgx-spark:latest
container_name: tts-faster-qwen3-tts-voicedesign
restart: unless-stopped
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
- HF_TOKEN=${HF_TOKEN}
ports:
- "8021:8000"
volumes:
- /home/sparky/LLMs/vllm/Alibaba/Qwen3-TTS-12Hz-1.7B-VoiceDesign:/models/Qwen3-TTS-VoiceDesign:ro
- /home/sparky/Docker/tts-dgx-spark-faster-qwen3-tts/config:/config:rw
command: >
/bin/bash -c "
python3 /config/run_voicedesign_server.py
--model /models/Qwen3-TTS-VoiceDesign
--voices /config/voicedesign_voices.json
--port 8000
--max-seq-len 2048
"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
networks:
- dgx_net
# CustomVoice backend: keeps the separate CustomVoice model available on port 8022.
faster-qwen3-tts-customvoice:
image: martinb78/faster-qwen3-tts-dgx-spark:latest
container_name: tts-faster-qwen3-tts-customvoice
restart: unless-stopped
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
- HF_TOKEN=${HF_TOKEN}
ports:
- "8022:8000"
volumes:
- /home/sparky/LLMs/vllm/Alibaba/Qwen3-TTS-12Hz-1.7B-CustomVoice:/models/Qwen3-TTS-CustomVoice:ro
- /home/sparky/Docker/tts-dgx-spark-faster-qwen3-tts/config:/config:rw
command: >
/bin/bash -c "
python3 /config/run_customvoice_server.py
--model /models/Qwen3-TTS-CustomVoice
--voices /config/customvoice_voices.json
--port 8000
--max-seq-len 2048
"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
networks:
- dgx_net
# Streaming voice clone backend: same active voices as 8020, but streams WAV chunks while generating.
faster-qwen3-tts-streaming:
image: martinb78/faster-qwen3-tts-dgx-spark:latest-streaming
container_name: tts-faster-qwen3-tts-streaming
restart: unless-stopped
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
- HF_TOKEN=${HF_TOKEN}
- EMBED_TAG=0.6b
ports:
- "8023:8000"
volumes:
- /home/sparky/LLMs/vllm/Alibaba/Qwen3-TTS-12Hz-0.6B-Base:/models/Qwen3-TTS:ro
- /home/sparky/Docker/tts-dgx-spark-faster-qwen3-tts/config:/config:rw
- /home/sparky/Media/_Sounds/TTS_Voices/active_voices:/voices:rw
command: >
/bin/bash -c "
python3 /config/generate_voices.py &&
python3 /config/run_server.py
--model /models/Qwen3-TTS
--voices /config/voices.json
--port 8000
--max-seq-len 2048
"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
networks:
- dgx_net
networks:
dgx_net:
external: true