import os from pathlib import Path, PurePosixPath from huggingface_hub import hf_hub_download def prepare_base_model(): print(f'Preparing base stable-diffusion-v1-5 weights...') local_dir = "./pretrained_weights/stable-diffusion-v1-5" os.makedirs(local_dir, exist_ok=True) for hub_file in ["unet/config.json", "unet/diffusion_pytorch_model.bin"]: path = Path(hub_file) saved_path = local_dir / path if os.path.exists(saved_path): continue hf_hub_download( repo_id="runwayml/stable-diffusion-v1-5", subfolder=PurePosixPath(path.parent), filename=PurePosixPath(path.name), local_dir=local_dir, ) def prepare_image_encoder(): print(f"Preparing image encoder weights...") local_dir = "./pretrained_weights" os.makedirs(local_dir, exist_ok=True) for hub_file in ["image_encoder/config.json", "image_encoder/pytorch_model.bin"]: path = Path(hub_file) saved_path = local_dir / path if os.path.exists(saved_path): continue hf_hub_download( repo_id="lambdalabs/sd-image-variations-diffusers", subfolder=PurePosixPath(path.parent), filename=PurePosixPath(path.name), local_dir=local_dir, ) def prepare_dwpose(): print(f"Preparing DWPose weights...") local_dir = "./pretrained_weights/DWPose" os.makedirs(local_dir, exist_ok=True) for hub_file in [ "dw-ll_ucoco_384.onnx", "yolox_l.onnx", ]: path = Path(hub_file) saved_path = local_dir / path if os.path.exists(saved_path): continue hf_hub_download( repo_id="yzd-v/DWPose", subfolder=PurePosixPath(path.parent), filename=PurePosixPath(path.name), local_dir=local_dir, ) def prepare_vae(): print(f"Preparing vae weights...") local_dir = "./pretrained_weights/sd-vae-ft-mse" os.makedirs(local_dir, exist_ok=True) for hub_file in [ "config.json", "diffusion_pytorch_model.bin", ]: path = Path(hub_file) saved_path = local_dir / path if os.path.exists(saved_path): continue hf_hub_download( repo_id="stabilityai/sd-vae-ft-mse", subfolder=PurePosixPath(path.parent), filename=PurePosixPath(path.name), local_dir=local_dir, ) def prepare_anyone(): print(f"Preparing AnimateAnyone weights...") local_dir = "./pretrained_weights" os.makedirs(local_dir, exist_ok=True) for hub_file in [ "denoising_unet.pth", "motion_module.pth", "pose_guider.pth", "reference_unet.pth", ]: path = Path(hub_file) saved_path = local_dir / path if os.path.exists(saved_path): continue hf_hub_download( repo_id="patrolli/AnimateAnyone", subfolder=PurePosixPath(path.parent), filename=PurePosixPath(path.name), local_dir=local_dir, ) if __name__ == '__main__': prepare_base_model() prepare_image_encoder() prepare_dwpose() prepare_vae() prepare_anyone()