CoolFace
Apppublic

Surunrun/SoulX-Singer

sourceHugging Faceupdated 7mo agoView on Hugging Face
0likes
ensure_models.py46 linesDownload Raw Back to root
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_SVS / "model-svc.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() or not (MODEL_DIR_SVS / "model-svc.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