File size: 2,981 Bytes
16f5171 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | # syntax=docker/dockerfile:1.7
ARG CUDA_IMAGE=nvidia/cuda:13.0.2-cudnn-devel-ubuntu24.04
ARG UV_VERSION=0.12.3
FROM ghcr.io/astral-sh/uv:${UV_VERSION} AS uv-bin
FROM ${CUDA_IMAGE}
ARG FISH_SCALES_REVISION=a04c1b63b1a7a670840fb3e97a82c0dbe2a35ded
ENV DEBIAN_FRONTEND=noninteractive \
PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
VIRTUAL_ENV=/opt/venv \
PATH=/opt/venv/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
CUDA_HOME=/usr/local/cuda \
TORCH_CUDA_ARCH_LIST=12.0a \
FISH_NVFP4_ROOT=/model \
FISH_NVFP4_BUILD_ROOT=/data/torch-extensions \
PYTHONPATH=/model/runtime \
TTS_PYTHON=/opt/venv/bin/python \
TEMPORARILY_DISABLE_PROTOBUF_VERSION_CHECK=true
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt/lists,sharing=locked \
apt-get update && apt-get install -y --no-install-recommends \
build-essential ca-certificates cmake ffmpeg git git-lfs libsndfile1 \
ninja-build portaudio19-dev python3.12 python3.12-dev python3.12-venv && \
git lfs install --system
COPY --from=uv-bin /uv /uvx /usr/local/bin/
COPY runtime/torch-overrides.txt /opt/release/torch-overrides.txt
COPY requirements.txt /opt/release/requirements.txt
COPY vendor/fish-speech /opt/fish-speech
RUN uv venv /opt/venv --python python3.12 && \
uv pip install --python /opt/venv/bin/python \
"setuptools>=75" wheel ninja packaging \
"torch==2.11.0" "torchaudio==2.11.0" --torch-backend=cu130 && \
uv pip install --python /opt/venv/bin/python \
--overrides /opt/release/torch-overrides.txt --torch-backend=cu130 \
/opt/fish-speech -r /opt/release/requirements.txt
RUN git init /opt/fish-scales-ops && \
git -C /opt/fish-scales-ops remote add origin https://github.com/fishaudio/fish-scales-ops.git && \
git -C /opt/fish-scales-ops fetch --depth 1 origin "${FISH_SCALES_REVISION}" && \
git -C /opt/fish-scales-ops checkout --detach FETCH_HEAD && \
git -C /opt/fish-scales-ops submodule update --init --recursive --depth 1
RUN --mount=type=cache,target=/root/.cache/uv \
CUTLASS_DIR=/opt/fish-scales-ops/3rdparty/cutlass \
MAX_JOBS=2 TORCH_CUDA_ARCH_LIST=12.0a \
uv pip install --python /opt/venv/bin/python \
--no-build-isolation /opt/fish-scales-ops/python
RUN install -m 0644 /opt/fish-speech/.project-root \
/opt/venv/lib/python3.12/site-packages/.project-root && \
/opt/venv/bin/python -c \
"from pathlib import Path; import comfy_kitchen, fish_speech, torch, tools.server.model_manager; from fish_speech.models.dac.modded_dac import DAC; site_packages = Path('/opt/venv/lib/python3.12/site-packages'); assert (site_packages / 'fish_speech/configs/modded_dac_vq.yaml').is_file(); assert list((site_packages / 'fish_scales_ops').glob('_C*.so')); print(torch.__version__, torch.version.cuda)"
WORKDIR /data
EXPOSE 8080
ENTRYPOINT ["/bin/bash", "/model/launch.sh"]
|