RunningHub VoxCPM Load Model
The Load Model node
- model
This is the node you drop in first, before anything else in the pack, because every other VoxCPM node wants its model output on the left side. RunningHub VoxCPM Load Model loads OpenBMB's VoxCPM - a tokenizer-free TTS model that does context-aware speech generation and voice cloning - from a folder inside ComfyUI/models/voxcpm/, wraps it, and hands it to Generate Speech or the multi-speaker nodes. If you've used any model loader in ComfyUI, this behaves exactly like you expect: pick a model, get an object wire, done.
The pack is RunningHub's own (the China-based GPU cloud that also runs hosted ComfyUI), and it's Apache 2.0. The nice part of that arrangement: you don't need a RunningHub account or API key to use this locally. It's a plain local model loader wearing the platform's name.
The three inputs, and the one you'll actually touch
- model_name - a dropdown of every folder under
models/voxcpm/that contains aconfig.json. VoxCPM2 is put first if it's present. This is the input you set. - optimize - default off. Toggles
torch.compileon the loaded model. Sounds free, isn't: first run pays a long compile, and it only pays off on sustained multi-gen sessions. Leave it off unless you're batching a lot of clips. - lora_name - optional dropdown of LoRA files in
models/voxcpm/loras/(.safetensors,.ckpt, or.pth). This is how you load a voice LoRA you trained with the Train LoRA node. The loader reads the rank/alpha from the sidecarlora_config.jsonor from metadata embedded in the file, so you don't have to type a rank anywhere.
Output is a single model (VOXCPM_MODEL) wire.
Installing the pack and the model
The pack itself is a normal custom node:
cd ComfyUI/custom_nodes
git clone https://github.com/RH-RunningHub/ComfyUI_RH_VoxCPM.git
cd ComfyUI_RH_VoxCPM
pip install -r requirements.txt
Or search "ComfyUI_RH_VoxCPM" in ComfyUI Manager and install from there. Either way, restart ComfyUI. Then the actual work: this loader is useless until a model is on disk. Pick one and download it into the exact folder the dropdown scans:
hf download openbmb/VoxCPM2 --local-dir ComfyUI/models/voxcpm/VoxCPM2
VoxCPM2 (2B, ~4.6 GB) is the quality pick; VoxCPM1.5 (800M, ~1.9 GB) is the balance; VoxCPM-0.5B (640M, ~1.5 GB) is the lightweight. The dropdown only shows directories that have a config.json, so a partial download won't even appear - that's a feature, not a bug.
Where people get burned
The number one trap is the dependency list, not the model. requirements.txt pulls in voxcpm, funasr, librosa, wetext, and modelscope - and FunASR in particular is a known dependency-conflict magnet in the ComfyUI world. If the pack installs cleanly, great; if some other custom node starts throwing tokenizer or transformers errors afterward, that's the usual suspect. And don't be surprised that the dropdown shows "None" the first time you open the node - it lists directories at node-creation time, so refresh the frontend after dropping models in. There's also a deliberate fallback baked in: if you reference a LoRA name that isn't on your machine, it warns and loads without it rather than killing the workflow. Handy when you share workflows across setups, mildly confusing the first time it happens silently.
One more honest note: this is a heavy loader. VoxCPM2 plus FunASR resident in memory is not a 6 GB VRAM hobby. If you're on a smaller card, load VoxCPM1.5 and skip the LoRA.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | 1 options: None | |
| optimize | BOOLEAN | false | — |
| lora_nameopt | COMBO | 1 options: None |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | VOXCPM_MODEL | — |