Skip to content

Commit ad6e60a

Browse files
committed
Автоматическая установка файлов при каждом запуске интерфейса
1 parent 36c4ab7 commit ad6e60a

6 files changed

Lines changed: 23 additions & 51 deletions

File tree

.github/workflows/test_cli.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ jobs:
3232
3333
- name: Install necessary models
3434
run: |
35-
python download_models.py
3635
python3 -m rvc.modules.model_manager "https://huggingface.co/Politrees/Victor_Tsoi/resolve/main/Victor_Tsoi.zip?download=true" "Tsoi"
3736
3837
- name: Set up test audio
@@ -67,7 +66,6 @@ jobs:
6766
6867
- name: Install necessary models
6968
run: |
70-
python download_models.py
7169
python3 -m rvc.modules.model_manager "https://huggingface.co/Politrees/Victor_Tsoi/resolve/main/Victor_Tsoi.zip?download=true" "Tsoi"
7270
7371
- name: Run tts script

app.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
from assets.logging_config import configure_logging
2+
from assets.model_installer import check_and_install_models
23

34
configure_logging(True, False, "WARNING")
5+
check_and_install_models()
46

57
import sys
68
from typing import Any
Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import requests
44

5+
from tqdm import tqdm
6+
57
PREDICTORS = "https://huggingface.co/Politrees/RVC_resources/resolve/main/predictors/"
68
EMBEDDERS = "https://huggingface.co/Politrees/RVC_resources/resolve/main/embedders/pytorch/"
79

@@ -14,30 +16,42 @@
1416

1517

1618
def dl_model(link, model_name, dir_name):
17-
if os.path.exists(os.path.join(dir_name, model_name)):
19+
file_path = os.path.join(dir_name, model_name)
20+
if os.path.exists(file_path):
1821
print(f"{model_name} уже существует. Пропускаем установку.")
1922
return
2023

2124
r = requests.get(f"{link}{model_name}", stream=True)
2225
r.raise_for_status()
23-
with open(os.path.join(dir_name, model_name), "wb") as f:
26+
27+
# Получаем общий размер файла
28+
total_size = int(r.headers.get('content-length', 0))
29+
# Используем tqdm для отображения прогресса
30+
with open(file_path, "wb") as f, tqdm(
31+
desc=f"Установка {model_name}...",
32+
total=total_size,
33+
unit='iB',
34+
unit_scale=True,
35+
unit_divisor=1024,
36+
) as bar:
2437
for chunk in r.iter_content(chunk_size=8192):
2538
f.write(chunk)
39+
bar.update(len(chunk))
2640

2741

28-
if __name__ == "__main__":
42+
def check_and_install_models():
2943
try:
3044
predictors_names = ["rmvpe.pt", "fcpe.pt"]
3145
for model in predictors_names:
32-
print(f"Установка {model}...")
46+
print(f"Проверка {model}...")
3347
dl_model(PREDICTORS, model, PREDICTORS_DIR)
3448

3549
embedder_names = ["hubert_base.pt"]
3650
for model in embedder_names:
37-
print(f"Установка {model}...")
51+
print(f"Проверка {model}...")
3852
dl_model(EMBEDDERS, model, EMBEDDERS_DIR)
3953

40-
print("Все модели успешно установлены!")
54+
print("Все модели успешно установлены или уже существуют!")
4155
except requests.exceptions.RequestException as e:
4256
print(f"Произошла ошибка при загрузке модели: {e}")
4357
except Exception as e:

requirements-311.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ einops
66
mega-x
77
gdown
88
wget
9+
tqdm
910

1011
# Библиотеки для работы с аудио и видео
1112
ffmpeg-python>=0.2.0

run-PolGen-installer.bat

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ call :install_miniconda
1616
call :create_conda_env
1717
call :install_dependencies
1818
call :download_ffmpeg
19-
call :installing_necessary_models
2019

2120
cls
2221
echo PolGen has been installed successfully!
@@ -94,28 +93,6 @@ echo ffmpeg and ffprobe downloaded successfully.
9493
echo.
9594
exit /b 0
9695

97-
:installing_necessary_models
98-
cls
99-
echo Checking for required models...
100-
set "hubert_base=%PRINCIPAL%\rvc\models\embedders\hubert_base.pt"
101-
set "fcpe=%PRINCIPAL%\rvc\models\predictors\fcpe.pt"
102-
set "rmvpe=%PRINCIPAL%\rvc\models\predictors\rmvpe.pt"
103-
104-
if exist "%hubert_base%" (
105-
if exist "%fcpe%" (
106-
if exist "%rmvpe%" (
107-
echo All required models are installed.
108-
)
109-
)
110-
) else (
111-
echo Required models were not found. Installing models...
112-
echo.
113-
env\python download_models.py
114-
if errorlevel 1 goto :download_error
115-
)
116-
echo.
117-
exit /b 0
118-
11996
:download_error
12097
echo.
12198
echo Download failed. Please check your internet connection and try again.

run-PolGen-installer.sh

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -108,30 +108,10 @@ install_ffmpeg_flatpak() {
108108
fi
109109
}
110110

111-
installing_necessary_models() {
112-
echo "Checking for required models..."
113-
HUBERT_BASE="$PRINCIPAL/rvc/models/embedders/hubert_base.pt"
114-
FCPE="$PRINCIPAL/rvc/models/predictors/fcpe.pt"
115-
RMVPE="$PRINCIPAL/rvc/models/predictors/rmvpe.pt"
116-
117-
if [ -f "$HUBERT_BASE" ] && [ -f "$FCPE" ] && [ -f "$RMVPE" ]; then
118-
echo "All required models are installed."
119-
else
120-
echo "Required models were not found. Installing models..."
121-
"$ENV_DIR/bin/python" download_models.py
122-
if [ $? -ne 0 ]; then
123-
echo "Model installation failed."
124-
exit 1
125-
fi
126-
fi
127-
echo
128-
}
129-
130111
install_miniconda
131112
create_conda_env
132113
install_dependencies
133114
install_ffmpeg
134-
installing_necessary_models
135115

136116
echo "PolGen has been installed successfully!"
137117
echo "To start PolGen, please run './PolGen.sh'."

0 commit comments

Comments
 (0)