aiqtech/SoulX-Singer
0
1"""Download pretrained models from Hugging Face Hub if not already present."""2import sys3from pathlib import Path4 5ROOT = Path(__file__).resolve().parent6PRETRAINED_DIR = ROOT / "pretrained_models"7MODEL_DIR_SVS = PRETRAINED_DIR / "SoulX-Singer"8MODEL_DIR_PREPROCESS = PRETRAINED_DIR / "SoulX-Singer-Preprocess"9 10 11def ensure_pretrained_models():12 """Download SoulX-Singer and Preprocess models from Hugging Face Hub if not present."""13 if (MODEL_DIR_SVS / "model.pt").exists() and MODEL_DIR_PREPROCESS.exists():14 print("Pretrained models already present, skipping download.", flush=True)15 return16 17 try:18 from huggingface_hub import snapshot_download19 except ImportError:20 print(21 "huggingface_hub not installed. Install with: pip install huggingface_hub",22 file=sys.stderr,23 flush=True,24 )25 raise26 27 PRETRAINED_DIR.mkdir(parents=True, exist_ok=True)28 29 if not (MODEL_DIR_SVS / "model.pt").exists():30 print("Downloading SoulX-Singer model...", flush=True)31 snapshot_download(32 repo_id="Soul-AILab/SoulX-Singer",33 local_dir=str(MODEL_DIR_SVS),34 local_dir_use_symlinks=False,35 )36 print("SoulX-Singer model ready.", flush=True)37 38 if not MODEL_DIR_PREPROCESS.exists():39 print("Downloading SoulX-Singer-Preprocess models...", flush=True)40 snapshot_download(41 repo_id="Soul-AILab/SoulX-Singer-Preprocess",42 local_dir=str(MODEL_DIR_PREPROCESS),43 local_dir_use_symlinks=False,44 )45 print("SoulX-Singer-Preprocess models ready.", flush=True)46 