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() |