Spaces:
Running
on
Zero
Running
on
Zero
| import os | |
| import argparse | |
| import logging | |
| import time | |
| from huggingface_hub import snapshot_download | |
| # Setup logging | |
| logging.basicConfig( | |
| format="%(asctime)s - %(levelname)s - %(message)s", | |
| level=logging.INFO | |
| ) | |
| def timed_download(repo_id: str, local_dir: str, allow_patterns: list): | |
| """Download files from HF repo and log time + destination.""" | |
| logging.info(f"Starting download from {repo_id} into {local_dir}") | |
| start_time = time.time() | |
| snapshot_download( | |
| repo_id=repo_id, | |
| local_dir=local_dir, | |
| local_dir_use_symlinks=False, | |
| allow_patterns=allow_patterns, | |
| ) | |
| elapsed = time.time() - start_time | |
| logging.info( | |
| f"✅ Finished downloading {repo_id} " | |
| f"in {elapsed:.2f} seconds. Files saved at: {local_dir}" | |
| ) | |
| def main(output_dir: str): | |
| # Wan2.2 | |
| wan_dir = os.path.join(output_dir, "Wan2.2-TI2V-5B") | |
| timed_download( | |
| repo_id="Wan-AI/Wan2.2-TI2V-5B", | |
| local_dir=wan_dir, | |
| allow_patterns=[ | |
| "google/*", | |
| "models_t5_umt5-xxl-enc-bf16.pth", | |
| "Wan2.2_VAE.pth" | |
| ] | |
| ) | |
| # MMAudio | |
| mm_audio_dir = os.path.join(output_dir, "MMAudio") | |
| timed_download( | |
| repo_id="hkchengrex/MMAudio", | |
| local_dir=mm_audio_dir, | |
| allow_patterns=[ | |
| "ext_weights/best_netG.pt", | |
| "ext_weights/v1-16.pth" | |
| ] | |
| ) | |
| ovi_dir = os.path.join(output_dir, "Ovi") | |
| timed_download( | |
| repo_id="chetwinlow1/Ovi", | |
| local_dir=ovi_dir, | |
| allow_patterns=[ | |
| "model.safetensors" | |
| ] | |
| ) | |
| if __name__ == "__main__": | |
| parser = argparse.ArgumentParser(description="Download models from Hugging Face") | |
| parser.add_argument( | |
| "--output-dir", | |
| type=str, | |
| default="./ckpts", | |
| help="Base directory to save downloaded models" | |
| ) | |
| args = parser.parse_args() | |
| main(args.output_dir) |