Dreamspire's picture
custom_nodes
f2dbf59
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