|
2 | 2 |
|
3 | 3 | import requests |
4 | 4 |
|
| 5 | +from tqdm import tqdm |
| 6 | + |
5 | 7 | PREDICTORS = "https://huggingface.co/Politrees/RVC_resources/resolve/main/predictors/" |
6 | 8 | EMBEDDERS = "https://huggingface.co/Politrees/RVC_resources/resolve/main/embedders/pytorch/" |
7 | 9 |
|
|
14 | 16 |
|
15 | 17 |
|
16 | 18 | 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): |
18 | 21 | print(f"{model_name} уже существует. Пропускаем установку.") |
19 | 22 | return |
20 | 23 |
|
21 | 24 | r = requests.get(f"{link}{model_name}", stream=True) |
22 | 25 | 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: |
24 | 37 | for chunk in r.iter_content(chunk_size=8192): |
25 | 38 | f.write(chunk) |
| 39 | + bar.update(len(chunk)) |
26 | 40 |
|
27 | 41 |
|
28 | | -if __name__ == "__main__": |
| 42 | +def check_and_install_models(): |
29 | 43 | try: |
30 | 44 | predictors_names = ["rmvpe.pt", "fcpe.pt"] |
31 | 45 | for model in predictors_names: |
32 | | - print(f"Установка {model}...") |
| 46 | + print(f"Проверка {model}...") |
33 | 47 | dl_model(PREDICTORS, model, PREDICTORS_DIR) |
34 | 48 |
|
35 | 49 | embedder_names = ["hubert_base.pt"] |
36 | 50 | for model in embedder_names: |
37 | | - print(f"Установка {model}...") |
| 51 | + print(f"Проверка {model}...") |
38 | 52 | dl_model(EMBEDDERS, model, EMBEDDERS_DIR) |
39 | 53 |
|
40 | | - print("Все модели успешно установлены!") |
| 54 | + print("Все модели успешно установлены или уже существуют!") |
41 | 55 | except requests.exceptions.RequestException as e: |
42 | 56 | print(f"Произошла ошибка при загрузке модели: {e}") |
43 | 57 | except Exception as e: |
|
0 commit comments