File size: 2,525 Bytes
70d2ad3
b317881
ddea3f6
b317881
 
818dd70
b317881
 
 
86e28e5
818dd70
 
86e28e5
b317881
ddea3f6
70d2ad3
 
ddea3f6
b317881
 
 
 
 
 
 
 
 
 
 
 
ddea3f6
b317881
 
 
ddea3f6
b317881
 
6dae53a
ddea3f6
6dae53a
 
 
 
 
 
 
 
 
 
 
 
 
 
b317881
 
ddea3f6
70d2ad3
 
 
6dae53a
ddea3f6
d970ece
 
 
ddea3f6
6dae53a
 
 
 
 
 
 
 
 
 
b317881
ddea3f6
d970ece
 
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
FROM continuumio/miniconda3:24.7.1-0


ENV DEBIAN_FRONTEND=noninteractive \
    PYTHONUNBUFFERED=1 \
    PYTHONFAULTHANDLER=1 \
    PIP_NO_CACHE_DIR=1 \
    is_half=False \
    is_share=False \
    HF_HOME=/data/.cache/huggingface \
    GRADIO_SERVER_NAME=0.0.0.0 \
    GRADIO_SERVER_PORT=7860 \
    TERM=xterm


SHELL ["/bin/bash", "-lc"]


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


WORKDIR /app
RUN git clone --depth 1 https://github.com/RVC-Boss/GPT-SoVITS.git .


RUN python - <<'PY'
from pathlib import Path


replacements = {
    'webui_port_main = 9874': 'webui_port_main = 7860',
    's1v3.ckpt': 's1v3-ru.ckpt',
    's2Gv2ProPlus.pth': 's2Gv2ProPlus-rus.pth',
    'phoneme_vocab_size: 732': 'phoneme_vocab_size: 753',
    'phoneme_vocab_size = 732': 'phoneme_vocab_size = 753',
}
for path in [Path('config.py'), *Path('GPT_SoVITS/configs').glob('*.yaml')]:
    if not path.exists():
        continue
    text = path.read_text()
    for old, new in replacements.items():
        text = text.replace(old, new)
    path.write_text(text)
PY


RUN conda create -y -n GPTSoVits python=3.10 && conda clean -afy
RUN source /opt/conda/etc/profile.d/conda.sh && \
    conda activate GPTSoVits && \
    bash install.sh --device CPU --source HF && \
    pip install --no-cache-dir epitran \
      "fastapi[standard]==0.115.2" \
      "starlette==0.40.0" \
      "gradio==4.44.1"


RUN mkdir -p GPT_SoVITS/pretrained_models/v2Pro GPT_weights_v2ProPlus SoVITS_weights_v2ProPlus && \
    curl -L --retry 5 -o GPT_SoVITS/pretrained_models/s1v3-ru.ckpt \
      https://huggingface.co/fuckSelf/GPT-SoVITS-Russian/resolve/main/s1v3-ru.ckpt && \
    curl -L --retry 5 -o GPT_SoVITS/pretrained_models/v2Pro/s2Gv2ProPlus-rus.pth \
      https://huggingface.co/fuckSelf/GPT-SoVITS-Russian/resolve/main/s2Gv2ProPlus-rus.pth && \
    curl -L --retry 5 -o GPT_weights_v2ProPlus/ru-base-e20.ckpt \
      https://huggingface.co/fuckSelf/GPT-SoVITS-Russian/resolve/main/ru-base-e20.ckpt && \
    curl -L --retry 5 -o SoVITS_weights_v2ProPlus/ru-base_e10_s123570.pth \
      https://huggingface.co/fuckSelf/GPT-SoVITS-Russian/resolve/main/ru-base_e10_s123570.pth


EXPOSE 7860
CMD ["bash", "-lc", "source /opt/conda/etc/profile.d/conda.sh && conda activate GPTSoVits && cd /app && echo '=== GPT-SoVITS startup on 7860 ===' && python -u webui.py"]