From 2c9d52156528196d6f566c9982797aa5f25027d4 Mon Sep 17 00:00:00 2001 From: Ethanfel Date: Sat, 4 Apr 2026 16:46:20 +0200 Subject: [PATCH] fix: 44k generator HF paths use 44khz suffix (not 44k) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Actual filenames in jnwnlee/SelVA: generator_*_44khz_sup_5.pth. download_utils.py had the wrong names so those MD5s are unverified — set to None to skip MD5 check for 44k generators. All other files verified/unchanged. Co-Authored-By: Claude Sonnet 4.6 --- nodes/selva_model_loader.py | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/nodes/selva_model_loader.py b/nodes/selva_model_loader.py index 5167ad6..e2ea162 100644 --- a/nodes/selva_model_loader.py +++ b/nodes/selva_model_loader.py @@ -19,17 +19,19 @@ _PRISMAUDIO_DIR = Path(folder_paths.models_dir) / "prismaudio" _HF_REPO = "jnwnlee/SelVA" -# filename → (hf_repo_path, expected_md5) +# filename → (hf_repo_path, expected_md5 or None to skip check) +# Note: 44k generators are named 44khz in the HF repo; md5=None since the +# original download_utils had the wrong filenames so those md5s are unverified. _WEIGHTS = { - "video_enc_sup_5.pth": ("weights/video_enc_sup_5.pth", "ff09a6dc36148536ee4db97eba081d05"), - "generator_small_16k_sup_5.pth": ("weights/generator_small_16k_sup_5.pth", "1cb0f0deec52de37f67b1fd9965337d0"), - "generator_small_44k_sup_5.pth": ("weights/generator_small_44k_sup_5.pth", "d4df8569624093ac80af99b8b7434525"), - "generator_medium_44k_sup_5.pth":("weights/generator_medium_44k_sup_5.pth","e9157e62b4863ad306e89e8f3a587748"), - "generator_large_44k_sup_5.pth": ("weights/generator_large_44k_sup_5.pth", "ab3db08b124d3aaa53eb7a1f52f1fb3f"), - "v1-16.pth": ("ext_weights/v1-16.pth", "69f56803f59a549a1a507c93859fd4d7"), - "v1-44.pth": ("ext_weights/v1-44.pth", "fab020275fa44c6589820ce025191600"), - "best_netG.pt": ("ext_weights/best_netG.pt", "eeaf372a38a9c31c362120aba2dde292"), - "synchformer_state_dict.pth": ("ext_weights/synchformer_state_dict.pth","5b2f5594b0730f70e41e549b7c94390c"), + "video_enc_sup_5.pth": ("weights/video_enc_sup_5.pth", "ff09a6dc36148536ee4db97eba081d05"), + "generator_small_16k_sup_5.pth": ("weights/generator_small_16k_sup_5.pth", "1cb0f0deec52de37f67b1fd9965337d0"), + "generator_small_44k_sup_5.pth": ("weights/generator_small_44khz_sup_5.pth", None), + "generator_medium_44k_sup_5.pth":("weights/generator_medium_44khz_sup_5.pth", None), + "generator_large_44k_sup_5.pth": ("weights/generator_large_44khz_sup_5.pth", None), + "v1-16.pth": ("ext_weights/v1-16.pth", "69f56803f59a549a1a507c93859fd4d7"), + "v1-44.pth": ("ext_weights/v1-44.pth", "fab020275fa44c6589820ce025191600"), + "best_netG.pt": ("ext_weights/best_netG.pt", "eeaf372a38a9c31c362120aba2dde292"), + "synchformer_state_dict.pth": ("ext_weights/synchformer_state_dict.pth", "5b2f5594b0730f70e41e549b7c94390c"), } @@ -56,6 +58,8 @@ def _ensure(filename, subdir=None): repo_path, expected_md5 = entry if dest_path.exists(): + if expected_md5 is None: + return str(dest_path) actual = _md5(dest_path) if actual == expected_md5: return str(dest_path)