FROM nvidia/cuda:12.8.1-cudnn-runtime-ubuntu22.04

ARG SEED_VC_COMMIT=51383efd921027683c89e5348211d93ff12ac2a8
ENV DEBIAN_FRONTEND=noninteractive \
    PIP_DISABLE_PIP_VERSION_CHECK=1 \
    HF_HOME=/models/huggingface \
    PYTHONUNBUFFERED=1

RUN apt-get update && apt-get install -y --no-install-recommends \
      build-essential ca-certificates curl ffmpeg git libsndfile1 python3 python3-dev python3-pip \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app
RUN git clone https://github.com/Plachtaa/seed-vc.git . \
    && git checkout "$SEED_VC_COMMIT" \
    && sed -i '/^torch\($\|[= <>=]\)/d;/^torchvision\($\|[= <>=]\)/d;/^torchaudio\($\|[= <>=]\)/d' requirements.txt \
    && python3 -m pip install --no-cache-dir \
       torch==2.7.1 torchvision==0.22.1 torchaudio==2.7.1 \
       --index-url https://download.pytorch.org/whl/cu128 \
    && python3 -m pip install --no-cache-dir -r requirements.txt \
    && sed -i 's/demo\.launch()/demo.launch(server_name="0.0.0.0", server_port=7860)/' app.py \
    && sed -i '/if args.enable_v1:/a\        print("Loading V1 models...", flush=True)\n        from seed_vc_wrapper import SeedVCWrapper\n        vc_wrapper_v1 = SeedVCWrapper()\n        print("V1 models ready.", flush=True)' app.py

EXPOSE 7860
CMD ["python3", "app.py", "--enable-v1"]
