Load VoxCPM Model
The node every VoxCPM workflow starts with (and the two toggles that trip people up)
- model
This is the boring node that makes everything else in ComfyUI-VoxCPM possible, so get it right once and you never think about it again. It loads OpenBMB's VoxCPM2 voice model into memory and hands a single VOXCPM_MODEL object to any of the five generation nodes in this pack. No model object, no audio - every VoxCPM workflow starts here by design.
The whole thing is a wrapper around the official VoxCPM2 inference code, which the pack bundles inside the plugin directory. You don't need a separate checkout of the upstream repo; the only external asset is the model itself, sitting in your ComfyUI models folder. That's a real simplification, and worth appreciating before you hit the dependency list below.
The inputs that matter
- model_name - a dropdown of model folders it found on disk. Default is
VoxCPM2, which resolves toComfyUI/models/VoxCPM2. It also scans the legacymodels/VoxCPMpath, so old layouts keep working. - load_denoiser - off by default. Flip it on only if you plan to use the
denoiseoption on a generation node with noisy reference audio. It pulls a speech-enhancement model (ZipEnhancer, from ModelScope) - an extra download and dependency you don't need for plain text-to-speech. - optimize - off by default. This enables
torch.compileplus a warmup pass, which speeds up repeated inference. Leave it off for your first run; it's a known source of startup slowness and version-specific pain, and it's not worth debugging alongside your first install.
One subtlety in the source: the model is cached per combination of (model_name, load_denoiser, optimize). Flip any of the toggles and it tears down the old model and reloads - so if your second run suddenly stalls for a minute, that's a deliberate reload, not a hang.
Installing it (and its model)
Install the pack via ComfyUI Manager (search "ComfyUI-VoxCPM") or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/starsFriday/ComfyUI-VoxCPM.git
pip install -r ComfyUI/custom_nodes/ComfyUI-VoxCPM/requirements.txt
That requirements file is heavy - torch, torchaudio, transformers, librosa, funasr, modelscope, wetext and friends. The README wants Python 3.10–3.13, torch ≥ 2.5, CUDA ≥ 12. This is the usual "audio bolted onto ComfyUI" tax the ecosystem is known for; if you already run other audio packs, expect dependency roulette.
Then download the model, which is the part people forget:
huggingface-cli download openbmb/VoxCPM2 --local-dir ./models/VoxCPM2
Run that from your ComfyUI root. It should contain at least config.json, model.safetensors, tokenizer.json, tokenizer_config.json, special_tokens_map.json, and audiovae.pth.
Troubleshooting
- Empty dropdown / "Cannot find model" - the model folder is missing or incomplete. Check
models/VoxCPM2actually hasconfig.jsonplus a weights file. - Import error for
voxcpm- the bundled source usually handles this, but if you see it, your install of the Python deps broke somewhere. Re-run the requirements install. normalizeorload_denoiserfails - you're missing optional deps the README names explicitly:wetext,inflect,regex,modelscope.
Start simple: model loaded with both toggles off, one TTS node attached, confirm audio comes out. Turn on optimize and load_denoiser only when the plain path already works. Nothing in this node is magic, and the less magic on the table the easier the debugging.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | VoxCPM2 | 1 options: VoxCPM2 |
| load_denoiser | BOOLEAN | false | — |
| optimize | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | VOXCPM_MODEL | — |