Spaces:
Sleeping
Sleeping
| # Chatterbox hard-pins torch==2.6.0 (cu124 wheels), so it gets its own image. | |
| FROM nvidia/cuda:12.4.1-runtime-ubuntu22.04 | |
| # Avoid interactive prompts during package installation | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| # Install Python and system dependencies. git is required at pip-install time because | |
| # chatterbox-tts pulls resemble-perth from a git URL; ffmpeg/libsndfile1 for audio I/O. | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| python3 \ | |
| python3-pip \ | |
| python3-dev \ | |
| git \ | |
| libsndfile1 \ | |
| ffmpeg \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Set Python alias | |
| RUN ln -sf /usr/bin/python3 /usr/bin/python | |
| ENV PIP_BREAK_SYSTEM_PACKAGES=1 | |
| WORKDIR /app | |
| # Install PyTorch first at Chatterbox's pinned version so its `torch==2.6.0` requirement is | |
| # already satisfied and pip does not try to pull a different (CPU) wheel. | |
| RUN pip install --no-cache-dir \ | |
| torch==2.6.0 \ | |
| torchaudio==2.6.0 \ | |
| --index-url https://download.pytorch.org/whl/cu124 | |
| # Chatterbox (brings transformers==5.2.0, diffusers, s3tokenizer, resemble-perth [git], etc.). | |
| RUN pip install --no-cache-dir chatterbox-tts | |
| # datasets + tqdm + soundfile for the eval loop (soundfile saves wavs AND decodes the | |
| # prompt_audio voice-clone reference column). datasets is pinned <4.0 on purpose: 4.0 switched | |
| # the Audio decoder to torchcodec, but chatterbox's torch==2.6 caps torchcodec at 0.2, which | |
| # predates the torchcodec.decoders.AudioDecoder that datasets 4.x imports. Staying on 3.x keeps | |
| # the soundfile backend and sidesteps the torchcodec/torch version bind entirely. | |
| RUN pip install --no-cache-dir "datasets<4.0" tqdm soundfile | |
| # Copy the full repository | |
| COPY . /app | |
| # Default entrypoint | |
| ENTRYPOINT ["bash"] | |
| # Keep-alive CMD so the Space runtime stays healthy; `docker run` overrides it. | |
| EXPOSE 7860 | |
| CMD ["-c", "python3 -m http.server 7860"] | |