evals-chatterbox / Dockerfile
bezzam's picture
bezzam HF Staff
Update Dockerfile
d938a0e verified
Raw
History Blame Contribute Delete
1.86 kB
# 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"]