Spaces:
Running
Running
File size: 3,869 Bytes
587c188 |
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 81 82 83 84 |
import os
import requests # 平台预装
from tqdm import tqdm # 平台预装
def create_directory(path):
if not os.path.exists(path):
os.makedirs(path)
def download_file(url, filepath):
response = requests.get(url, stream=True)
total_size = int(response.headers.get('content-length', 0))
with open(filepath, 'wb') as file, tqdm(
desc=filepath,
total=total_size,
unit='iB',
unit_scale=True,
unit_divisor=1024,
) as progress_bar:
for data in response.iter_content(chunk_size=1024):
size = file.write(data)
progress_bar.update(size)
def verify_file(filepath):
if not os.path.exists(filepath):
return False
if filepath.endswith(('.bin', '.pth', '.ckpt', '.safetensors')):
if os.path.getsize(filepath) < 1000000: # Less than 1 MB
return False
elif filepath.endswith('.json'):
try:
with open(filepath, 'r') as f:
f.read()
except:
return False
return True
def download_and_verify(url, filepath):
max_attempts = 3
for attempt in range(max_attempts):
try:
if not verify_file(filepath):
print(f"Downloading {filepath}...")
download_file(url, filepath)
if verify_file(filepath):
print(f"File {filepath} successfully downloaded and verified.")
return True
else:
print(f"File {filepath} failed verification. Attempt {attempt + 1} of {max_attempts}.")
except Exception as e:
print(f"Error downloading {filepath}: {str(e)}. Attempt {attempt + 1} of {max_attempts}.")
print(f"Failed to download file {filepath} after {max_attempts} attempts.")
return False
def download():
base_dir = "ckpt_models"
create_directory(base_dir)
files = {
"base/vae/config.json": "https://huggingface.co/daswer123/FollowYourEmoji_BaseModelPack/resolve/main/vae/config.json?download=true",
"base/vae/diffusion_pytorch_model.bin": "https://huggingface.co/daswer123/FollowYourEmoji_BaseModelPack/resolve/main/vae/diffusion_pytorch_model.bin?download=true",
"base/vae/diffusion_pytorch_model.safetensors": "https://huggingface.co/daswer123/FollowYourEmoji_BaseModelPack/resolve/main/vae/diffusion_pytorch_model.safetensors?download=true",
"base/unet/config.json": "https://huggingface.co/daswer123/FollowYourEmoji_BaseModelPack/resolve/main/unet/config.json?download=true",
"base/unet/diffusion_pytorch_model.bin": "https://huggingface.co/daswer123/FollowYourEmoji_BaseModelPack/resolve/main/unet/diffusion_pytorch_model.bin?download=true",
"base/image_encoder/config.json": "https://huggingface.co/daswer123/FollowYourEmoji_BaseModelPack/resolve/main/image_encoder/config.json?download=true",
"base/image_encoder/pytorch_model.bin": "https://huggingface.co/daswer123/FollowYourEmoji_BaseModelPack/resolve/main/image_encoder/pytorch_model.bin?download=true",
"base/animatediff/mm_sd_v15_v2.ckpt": "https://huggingface.co/daswer123/FollowYourEmoji_BaseModelPack/resolve/main/animatediff/mm_sd_v15_v2.ckpt?download=true",
"ckpts/lmk_guider.pth": "https://huggingface.co/YueMafighting/FollowYourEmoji/resolve/main/ckpts/lmk_guider.pth?download=true",
"ckpts/referencenet.pth": "https://huggingface.co/YueMafighting/FollowYourEmoji/resolve/main/ckpts/referencenet.pth?download=true",
"ckpts/unet.pth": "https://huggingface.co/YueMafighting/FollowYourEmoji/resolve/main/ckpts/unet.pth?download=true"
}
for file_path, url in files.items():
full_path = os.path.join(base_dir, file_path)
create_directory(os.path.dirname(full_path))
download_and_verify(url, full_path)
if __name__ == "__main__":
download()
|