RunningHub RVC Model Loader
The dropdown that starts every RVC voice swap
- rvc_model
RVC voice conversion in ComfyUI has a three-node shape: load a model, convert audio, save it. This node is step one. The RunningHub RVC Model Loader takes a .pth voice model from your ComfyUI/models/RVC folder and hands back an RVC_MODEL handle that the conversion node actually uses. No API calls, no key, no cloud login - the RunningHub name is just the platform this pack was built for, and everything runs inside your local ComfyUI.
The dropdown is populated by scanning models/RVC recursively for .pth files; the _assets subfolder is skipped, because that's where the base models live, not voice models. Pick one and the node loads the checkpoint through the RVC inference source bundled with the pack, wraps it in a handle, and caches it keyed by model, device, and precision. Re-run the same model on the same device and you skip the reload entirely - which matters more than it sounds like, because you'll queue the same conversion dozens of times while dialing in settings.
The inputs that matter
- model_name - a dropdown that auto-populates from
models/RVC. If you just dropped in a fresh model and it's not there, refresh the node; the list is scanned at load time. - device -
autois right 99% of the time (usescuda:0when present, CPU otherwise). - is_half - fp16 loading, on by default. It's auto-disabled on CPU, and the tooltip's advice to flip it off on older cards or when precision acts up is worth listening to.
The single output is rvc_model, and it has exactly one legal destination: the rvc_model input on the RunningHub RVC Voice Conversion node.
The catch: HuBERT
The whole pack shares one requirement that trips people up on first install: this loader refuses to load anything until HuBERT exists at models/RVC/_assets/hubert/hubert_base.pt. RVC can't extract the content features it converts from without that model. The error is explicit about the path, so follow it - drop the file in and restart ComfyUI. A nice hidden touch: the loader also auto-finds a same-stem .index file next to your .pth and stashes it on the handle, which is what lets the conversion node's retrieval work without you ever typing an index path. Keeping .pth and .index names matching makes that automatic match reliable.
Install
ComfyUI Manager users can search for ComfyUI_RH_RVC and let it handle the rest. The manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/RH-RunningHub/ComfyUI_RH_RVC
cd ComfyUI_RH_RVC
pip install -r requirements.txt
Then restart ComfyUI. The requirements list is the real RVC stack - fairseq, pyworld, torchcrepe, librosa, praat-parselmouth and friends - which is exactly why the pack warns to keep model binaries out of the repo and why dependency conflicts are the classic failure mode for RVC inside ComfyUI. The one file you need before this node will do anything:
cd ComfyUI/models/RVC
mkdir -p _assets/hubert
aria2c -x 16 -s 16 -k 1M -c -o _assets/hubert/hubert_base.pt \
https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/hubert_base.pt
Common issues
<no .pth model found in models/RVC>in the dropdown - that's the placeholder for "I found nothing." Put a.pth(not a zip) intomodels/RVC, refresh the node.- HuBERT not found error - the
_assets/hubert/hubert_base.ptpath doesn't exist or isn't named exactly that. - Odd artifacts on an older GPU - turn
is_halfoff and rerun. - Model loads but conversion sounds off - check that a matching
.indexis beside the.pth; without it you're converting with zero retrieval, and quality drops.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | RVC .pth 模型文件名。请将模型放在 ComfyUI 的 models/RVC 目录后刷新节点列表。 | |
| device | COMBO | auto | 推理设备。auto 会优先使用 cuda:0,没有 CUDA 时使用 CPU。 |
| is_half | BOOLEAN | true | 是否使用半精度加载模型。CPU 会自动禁用;老显卡或精度异常时可关闭。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| rvc_model | RVC_MODEL | 已加载并缓存的 RVC 模型句柄,连接到 Voice Conversion 节点使用。 |