tts-dgx-spark-faster-qwen3-tts/Dockerfile
mARTin-B78 79909a6fb8 build: pin PyTorch stack to GB10-validated versions
A fresh build pulled torch 2.14.0 from the cu130 index, which has not
been validated with CUDA graph capture on SM121. Pin torch 2.12.1,
torchvision 0.27.1 and torchaudio 2.11.0 (the versions in the running
images) and document the v6.11 image tags.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-21 20:21:07 +02:00

54 lines
2.1 KiB
Docker

# Faster-Qwen3-TTS for NVIDIA DGX Spark (GB10 / SM 121 / ARM64 / CUDA 13)
#
# Builds an OpenAI-compatible TTS server with CUDA graph acceleration.
# Clones upstream faster-qwen3-tts at build time and applies DGX Spark fixes.
FROM nvidia/cuda:13.0.2-base-ubuntu24.04
ENV DEBIAN_FRONTEND=noninteractive
# Install Python 3.12 and required audio/build tools
RUN apt-get update && \
apt-get install -y python3.12 python3.12-venv python3-pip python3.12-dev \
ffmpeg git curl sox libsox-fmt-all && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Clone the upstream faster-qwen3-tts library, pinned to a known-good commit.
# Upstream >= v0.4.0 moved to Transformers 5 (qwen-tts-hf), which conflicts with
# qwen-asr (pins transformers==4.57.6) and breaks model loading. Accepts a
# commit SHA, tag or branch.
ARG FASTER_QWEN3_TTS_REF=7cdef7e40195108b51a808f2ce5c7d5f3e235a79
RUN git clone https://github.com/andimarafioti/faster-qwen3-tts.git /app && \
cd /app && git checkout --detach ${FASTER_QWEN3_TTS_REF}
# Apply DGX Spark patches (non_streaming_mode=True, per-voice temperature/top_k/top_p)
COPY patches/openai_server.patch /tmp/
RUN cd /app && git apply /tmp/openai_server.patch
# Create virtual environment (Ubuntu 24.04 enforces PEP 668)
ENV VIRTUAL_ENV=/opt/venv
RUN python3.12 -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
RUN pip install --upgrade pip
# Install ARM64 CUDA 13 wheels for PyTorch stack
# Pinned to the versions validated on GB10 (CUDA graphs on SM121).
RUN pip install --no-cache-dir torch==2.12.1 torchvision==0.27.1 torchaudio==2.11.0 \
--index-url https://download.pytorch.org/whl/cu130
# Install faster-qwen3-tts and server dependencies
# Keep the Transformers 4 stack: qwen-tts pins transformers==4.57.3, qwen-asr
# then moves it to 4.57.6 (same combination as the released images).
RUN pip install --no-cache-dir -e ".[demo]" "qwen-tts==0.1.1" "huggingface-hub<1.0"
RUN pip install --no-cache-dir pydub soundfile uvicorn fastapi "qwen-asr==0.0.6"
EXPOSE 8000
CMD ["python", "examples/openai_server.py", \
"--model", "/models/Qwen3-TTS", \
"--voices", "/config/voices.json", \
"--port", "8000"]