Spaces:
Running
on
Zero
Running
on
Zero
| from pathlib import Path | |
| import requests | |
| from tqdm import tqdm | |
| def download_model(model_url, save_loc, model_name): | |
| if isinstance(save_loc, str): | |
| save_loc = Path(save_loc) | |
| save_loc.mkdir(parents=True, exist_ok=True) | |
| if not (save_loc / model_name).is_file(): | |
| print('fnodes: 模型不存在') | |
| print('fnodes: 正在下载模型') | |
| response = requests.get(model_url, stream=True) | |
| try: | |
| if response.status_code == 200: | |
| total_size = int(response.headers.get('content-length', 0)) | |
| block_size = 1024 # 1 Kibibyte | |
| with ( | |
| (save_loc / model_name).open('wb') as file, | |
| tqdm( | |
| desc='下载中', | |
| total=total_size, | |
| unit='iB', | |
| unit_scale=True, | |
| unit_divisor=1024, | |
| ) as bar, | |
| ): | |
| for data in response.iter_content(block_size): | |
| bar.update(len(data)) | |
| file.write(data) | |
| print('fnodes: 模型下载完成') | |
| except requests.exceptions.RequestException as err: | |
| print(f'fnodes: 模型下载失败: {err}') | |
| print(f'fnodes: 请从以下链接手动下载: {model_url}') | |
| print(f'fnodes: 并将其放置在 {save_loc}') | |
| return False | |
| except Exception as e: | |
| print(f'fnodes: 发生意外错误: {e}') | |
| return False | |
| return True | |