Retrieval-based-Voice-Conversion-WebUI icon indicating copy to clipboard operation
Retrieval-based-Voice-Conversion-WebUI copied to clipboard

Stuck on "load model(s) from assets/hubert/hubert_base.pt"

Open yushentang opened this issue 7 months ago • 3 comments

As the issue shows, after processing the files and clicking the "Feature Extraction", it stops as it shows "load model(s) from assets/hubert/hubert_base.pt". ( I ensure that I have downloaded this model to the proper file path)

yushentang avatar May 12 '25 18:05 yushentang

I got the same issue with error message:

raise pickle.UnpicklingError(_get_wo_message(str(e))) from None
_pickle.UnpicklingError: Weights only load failed. This file can still be loaded, to do so you have two options, do those steps only if you trust the source of the checkpoint.
        (1) In PyTorch 2.6, we changed the default value of the `weights_only` argument in `torch.load` from `False` to `True`. Re-running `torch.load` with `weights_only` set to `False` will likely succeed, but it can result in arbitrary code execution. Do it only if you got the file from a trusted source.
        (2) Alternatively, to load with `weights_only=True` please check the recommended steps in the following error message.
        WeightsUnpickler error: Unsupported global: GLOBAL fairseq.data.dictionary.Dictionary was not an allowed global by default. Please use `torch.serialization.add_safe_globals([fairseq.data.dictionary.Dictionary])` or the `torch.serialization.safe_globals([fairseq.data.dictionary.Dictionary])` context manager to allowlist this global if you trust this class/function.

Fixed by adding torch.serialization.add_safe_globals([fairseq.data.dictionary.Dictionary]) before fairseq.checkpoint_utils.load_model_ensemble_and_task in infer/modules/train/extract_feature_print.py

Hope this helps.

Pr0gCat avatar May 15 '25 17:05 Pr0gCat

That works well! Or maybe installing torch<2.6 would be a solution as well?

yushentang avatar May 15 '25 18:05 yushentang

Just add code at .venv/lib/python<your-version>/site-packages/fairseq/checkpoint_utils.py Line near by 320, before bottom code:

with open(local_path, "rb") as f:
        state = torch.load(f, map_location=torch.device("cpu"))

add this:

add_safe_globals([fairseq.data.dictionary.Dictionary])

and add import at the top of file:

import fairseq.data.dictionary
from torch.serialization import add_safe_globals

lovemilk2333 avatar Nov 14 '25 09:11 lovemilk2333