| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| ARG ROCM_VERSION=7.2.3 |
| ARG BASE_IMAGE=rocm/pytorch:rocm${ROCM_VERSION}_ubuntu24.04_py3.12_pytorch_release_2.9.1 |
|
|
| FROM ${BASE_IMAGE} AS app-base |
|
|
| ENV DEBIAN_FRONTEND=noninteractive \ |
| PYTHONDONTWRITEBYTECODE=1 \ |
| PYTHONUNBUFFERED=1 \ |
| ROCBLAS_USE_HIPBLASLT=0 |
|
|
| RUN apt-get update \ |
| && apt-get install -y --no-install-recommends \ |
| git ffmpeg libsox-dev build-essential cmake \ |
| libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 \ |
| && apt-get clean \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| WORKDIR /app |
|
|
| COPY . /app |
|
|
| |
| |
| |
| RUN pip install --no-cache-dir --upgrade pip setuptools wheel \ |
| && pip install --no-cache-dir \ |
| numpy "transformers<=4.57.3" datasets lightning pytorch_lightning \ |
| hydra-core natsort einops librosa rich "gradio>5.0.0" wandb grpcio kui \ |
| uvicorn loguru loralib pyrootutils resampy "einx[torch]==0.2.2" zstandard \ |
| pydub "modelscope==1.17.1" "opencc-python-reimplemented==0.1.7" \ |
| silero-vad ormsgpack tiktoken "pydantic==2.9.2" cachetools \ |
| descript-audio-codec safetensors soundfile vector_quantize_pytorch \ |
| && pip install --no-cache-dir --no-build-isolation pyaudio \ |
| && pip install --no-cache-dir --no-deps -e . \ |
| |
| |
| && pip install --no-cache-dir --no-deps --upgrade "protobuf>=4.25,<6.0" |
|
|
| EXPOSE 7860 8080 |
|
|
| |
| |
| ENV COMPILE=1 |
|
|
| |
| |
| |
| FROM app-base AS webui |
|
|
| ARG GRADIO_SERVER_NAME="0.0.0.0" |
| ARG GRADIO_SERVER_PORT=7860 |
| ENV GRADIO_SERVER_NAME=${GRADIO_SERVER_NAME} \ |
| GRADIO_SERVER_PORT=${GRADIO_SERVER_PORT} |
|
|
| RUN printf '%s\n' \ |
| '#!/bin/bash' \ |
| 'set -e' \ |
| 'ARGS=()' \ |
| 'if [ "${COMPILE:-0}" = "1" ] || [ "${COMPILE:-}" = "true" ]; then ARGS+=(--compile); fi' \ |
| 'exec python tools/run_webui.py \' \ |
| ' --llama-checkpoint-path checkpoints/s2-pro \' \ |
| ' --decoder-checkpoint-path checkpoints/s2-pro/codec.pth \' \ |
| ' --decoder-config-name modded_dac_vq "${ARGS[@]}"' \ |
| > /app/start_webui.sh && chmod +x /app/start_webui.sh |
| |
| ENTRYPOINT ["/app/start_webui.sh"] |
| |
| ############################################################## |
| # API Server |
| ############################################################## |
| FROM app-base AS server |
| |
| ARG API_SERVER_NAME="0.0.0.0" |
| ARG API_SERVER_PORT=8080 |
| ENV API_SERVER_NAME=${API_SERVER_NAME} \ |
| API_SERVER_PORT=${API_SERVER_PORT} |
| |
| RUN printf '%s\n' \ |
| '#!/bin/bash' \ |
| 'set -e' \ |
| 'ARGS=()' \ |
| 'if [ "${COMPILE:-0}" = "1" ] || [ "${COMPILE:-}" = "true" ]; then ARGS+=(--compile); fi' \ |
| 'exec python tools/api_server.py \' \ |
| ' --listen 0.0.0.0:8080 \' \ |
| ' --llama-checkpoint-path checkpoints/s2-pro \' \ |
| ' --decoder-checkpoint-path checkpoints/s2-pro/codec.pth \' \ |
| ' --decoder-config-name modded_dac_vq "${ARGS[@]}"' \ |
| > /app/start_server.sh && chmod +x /app/start_server.sh |
|
|
| ENTRYPOINT ["/app/start_server.sh"] |
|
|