VoxCPM Controllable Cloning
Clone a voice from a short clip, then steer the performance
- model
- reference_audio
- audio
This is the middle child of the VoxCPM cloning family, and it's the one you'll actually use most. You drop in a short recording of a speaker, and the node reproduces their timbre - then you push the delivery around with a plain-English style instruction. Same voice, different performance. That combination is what "controllable cloning" means here, and it covers most real jobs: you have a sample of someone but no transcript, and you want them to say something new in a specific mood.
The reference audio does the hard work. The pack feeds it to VoxCPM2 as a timbre reference (the upstream code calls it "structurally isolated via ref_audio tokens"), and style_instruction rides along as a parenthetical control prefix on the text - the same bracket-trick Voice Design uses, but stacked on top of a real voice instead of a description. That's the whole division of labor: reference = who, style = how.
Inputs that matter
- reference_audio - the voice you're cloning. Quality here decides everything. Single speaker, clean speech, low background noise, no heavy music, no overlapping voices. The README is strict about this for good reason - a short clean clip beats a long noisy one every time.
- text - what the speaker says.
- style_instruction - the steering wheel. Good ones:
slightly faster, cheerful tone,calm and steady narration,emotional, softer ending, slower pace, or粤语口吻,轻松一点,像朋友聊天. Leave it empty and you get neutral-ish cloning. - cfg_value (0–10, default 2) - how strongly the output follows the prompt/instruction. Push it up when the style isn't coming through.
- inference_timesteps, max_len, normalize, denoise - the pack's shared generation set.
max_lenup if audio cuts off;denoisefor cleaning the reference before generation.
Output is a single audio socket for preview or save.
When to pick this over the alternatives
- No transcript, want a real voice + style control → this node.
- No transcript, want style control less and similarity more → Controllable Cloning still works, but clean up the reference.
- You have the exact transcript of the reference → step up to Ultimate Cloning. It gets higher similarity because it doesn't have to guess what the clip says.
- You don't want anyone's real voice at all → Voice Design.
Setup and troubleshooting
Shared pack install: ComfyUI Manager (search "ComfyUI-VoxCPM") or git clone https://github.com/starsFriday/ComfyUI-VoxCPM.git into custom_nodes, pip install -r requirements.txt, and download openbmb/VoxCPM2 into models/VoxCPM2. Heavy deps, Python 3.10–3.13, CUDA ≥ 12.
The failure modes are predictable. Result sounds off or lifeless → swap in a cleaner, shorter reference; that fixes more problems than any knob. Reference is noisy → enable denoise here and load the model with load_denoiser enabled on the loader - the denoise flag on this node does nothing if the denoiser was never loaded. And don't expect an exact impersonation from a five-second, music-backed clip; the model can only clone what the reference actually contains.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model | VOXCPM_MODEL | — | |
| reference_audio | AUDIO | — | |
| text | STRING | 这是带风格控制的克隆语音演示。 | — |
| style_instruction | STRING | — | |
| cfg_value | FLOAT | 2.00–10 | — |
| inference_timesteps | INT | 101–100 | — |
| max_len | INT | 409664–65536 | — |
| normalize | BOOLEAN | false | — |
| denoise | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |