import os import os.path as osp import requests import shutil from huggingface_hub import snapshot_download, HfApi # from diffusers.pipelines.stable_diffusion.convert_from_ckpt import download_from_original_stable_diffusion_ckpt from facexlib.utils import load_file_from_url from facexlib.detection import init_detection_model def hf_download_dir(repo_id, dirname): api = HfApi() space_list = api.list_repo_files(repo_id=repo_id) target_list = [target for target in space_list if target.startswith(dirname) ] print(target_list) for filename in target_list: print(f'downloading {filename}') api.hf_hub_download( repo_id=repo_id, filename=filename, local_dir='.', local_dir_use_symlinks=True, ) MODEL_DIR='./MODELS' os.makedirs(MODEL_DIR, exist_ok=True) def prepare_sadtalker_models(): snapshot_download(repo_id='vinthony/SadTalker', local_dir=osp.join(MODEL_DIR, 'SadTalker'), local_dir_use_symlinks=True) load_file_from_url( url='https://github.com/xinntao/facexlib/releases/download/v0.1.0/alignment_WFLW_4HG.pth', model_dir='facexlib/weights', progress=True, file_name=None, save_dir=osp.join(MODEL_DIR, 'gfpgan/weights',)) init_detection_model('retinaface_resnet50', half=False,device='cpu', model_rootpath=osp.join(MODEL_DIR, 'gfpgan/weights',)) def prepare_face_generator_models(): # from all source repo # snapshot_download(repo_id="georgefen/Face-Landmark-ControlNet", local_dir=osp.join(MODEL_DIR, "Face-Landmark-ControlNet"), allow_patterns=["models_for_diffusers/*"], local_dir_use_symlinks=True) # snapshot_download(repo_id="runwayml/stable-diffusion-v1-5", local_dir=osp.join(MODEL_DIR, "stable-diffusion-v1-5"), allow_patterns=["*.bin", '*.json', '*.txt'], ignore_patterns=['safety_checker'],local_dir_use_symlinks=True) # snapshot_download(repo_id="xiaolxl/GuoFeng3", local_dir=osp.join(MODEL_DIR, "GuoFeng3"), allow_patterns=["*.bin", '*.json', '*.txt'], ignore_patterns=['safety_checker*'],local_dir_use_symlinks=True) # snapshot_download(repo_id="simhuangxi/MoXin", local_dir=osp.join(MODEL_DIR, "MoXin"),local_dir_use_symlinks=True) # snapshot_download(repo_id="diffusers/controlnet-canny-sdxl-1.0", local_dir=osp.join(MODEL_DIR, "controlnet-canny-sdxl-1.0"), ignore_patterns=['*.bin'], local_dir_use_symlinks=True) # snapshot_download(repo_id="stablediffusionapi/anything-v5", local_dir=osp.join(MODEL_DIR, "anything-v5"), ignore_patterns=['*.bin'], local_dir_use_symlinks=True) # snapshot_download( # repo_id="ermu2001/ChatAnything", # local_dir='.', # local_dir_use_symlinks=True, # ) hf_download_dir('ermu2001/ChatAnything', 'MODELS') if __name__ == "__main__": prepare_sadtalker_models() prepare_face_generator_models()