| |
| FROM python:3.12-slim |
| ENV NVIDIA_VISIBLE_DEVICES all |
| ENV NVIDIA_DRIVER_CAPABILITIES utility,compute |
| ENV DEBIAN_FRONTEND noninteractive |
| ENV NUMBA_CACHE_DIR .cache/numba |
| ENV HF_HOME .cache/huggingface |
| ENV LOGGING_DIRECTORY logs |
| ENV GPT_MODEL_PATH models/milchchan-e15.ckpt |
| ENV SOVITS_MODEL_PATH models/milchchan_e8_s136.pth |
| |
| ENV LLAMACPP_REPO_ID mlabonne/gemma-3-27b-it-abliterated-GGUF |
| ENV LLAMACPP_FILENAME gemma-3-27b-it-abliterated.q5_k_m.gguf |
| |
| |
| RUN apt-get update && apt-get -y install --no-install-recommends curl build-essential libsndfile1 mecab libmecab-dev mecab-ipadic-utf8 && apt-get clean && rm -rf /var/lib/apt/lists/* |
| WORKDIR /app |
| RUN python -m venv /app/.venv |
| ENV PATH="/app/.venv/bin:$PATH" |
| RUN mkdir -p data/ja |
| RUN curl -L "https://drive.usercontent.google.com/download?id=1jaVZgQ_8g6Fp72l9U-zl2e9IyFZb1Wx7&confirm=xxx" -o data/ja/prompt.txt |
| RUN curl -L "https://drive.usercontent.google.com/download?id=1fAMVrrIWCBM-QdKVf-em_GJWYtL0pIjE&confirm=xxx" -o data/ja/prompt.wav |
| RUN curl -L "https://drive.usercontent.google.com/download?id=1XuORHMxtkq7kJAYGCGQUr5Vrt4A3Vc3v&confirm=xxx" -o data/ja/input.txt |
| RUN mkdir models |
| RUN curl -L https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/gsv-v2final-pretrained/s1bert25hz-5kh-longer-epoch%3D12-step%3D369668.ckpt -o models/s1bert25hz-5kh-longer-epoch=12-step=369668.ckpt |
| |
| RUN curl -L https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/gsv-v2final-pretrained/s2G2333k.pth -o models/s2G2333k.pth |
| RUN curl -L "https://drive.usercontent.google.com/download?id=1u8CgF7l9NA5S_s1E25mhAFdBit8ErAup&confirm=xxx" -o models/milchchan-e15.ckpt |
| RUN curl -L "https://drive.usercontent.google.com/download?id=1fRgLy2iQrrD53XbMDqMsB6ZsGMBATjco&confirm=xxx" -o models/milchchan_e8_s136.pth |
| RUN mkdir models/chinese-hubert-base |
| RUN curl -L https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/chinese-hubert-base/config.json -o models/chinese-hubert-base/config.json |
| RUN curl -L https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/chinese-hubert-base/preprocessor_config.json -o models/chinese-hubert-base/preprocessor_config.json |
| RUN curl -L https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/chinese-hubert-base/pytorch_model.bin -o models/chinese-hubert-base/pytorch_model.bin |
| RUN mkdir models/chinese-roberta-wwm-ext-large |
| RUN curl -L https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/chinese-roberta-wwm-ext-large/config.json -o models/chinese-roberta-wwm-ext-large/config.json |
| RUN curl -L https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/chinese-roberta-wwm-ext-large/pytorch_model.bin -o models/chinese-roberta-wwm-ext-large/pytorch_model.bin |
| RUN curl -L https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/chinese-roberta-wwm-ext-large/tokenizer.json -o models/chinese-roberta-wwm-ext-large/tokenizer.json |
| |
| |
| COPY ./requirements.txt . |
| RUN pip3 install --upgrade pip && pip3 install setuptools && pip3 install --no-cache-dir -r requirements.txt |
| COPY ./GPT_SoVITS ./GPT_SoVITS |
| RUN mkdir -p GPT_SoVITS/text/ja_userdic |
| RUN curl -L "https://drive.usercontent.google.com/download?id=10eI96nOZ5-gJweoNjMpIzDcI-OAXoSK7&confirm=xxx" > GPT_SoVITS/text/ja_userdic/user.dict |
| RUN curl -L "https://drive.usercontent.google.com/download?id=1j7AVeE2SaEJyPy_bBXcZqyCvuyNCnjjB&confirm=xxx" > GPT_SoVITS/text/ja_userdic/userdict.csv |
| RUN curl -L "https://drive.usercontent.google.com/download?id=1PTdeIaam9h10h0Zgtp8m7s27YsVT6ckE&confirm=xxx" > GPT_SoVITS/text/ja_userdic/userdict.md5 |
| RUN mkdir -p .cache/numba |
| RUN mkdir -p .cache/huggingface |
| RUN mkdir logs |
| RUN chmod -R 777 .venv/lib/python3.12/site-packages/pyopenjtalk |
| RUN chmod -R 777 .cache |
| RUN chmod 777 logs |
| COPY ./tts.py . |
| COPY ./main.py . |
| EXPOSE 7860 |
| CMD ["gunicorn", "main:app", "-b", "0.0.0.0:7860", "-w", "1", "-k", "uvicorn.workers.UvicornWorker"] |