Nodes/ComfyUI-VoxCPM/VoxCPM Controllable Cloning
ComfyUI Node

VoxCPM Controllable Cloning

Clone a voice from a short clip, then steer the performance

By starsFriday·Created 5 months ago·Updated 5 months ago· 8
VoxCPM Controllable Cloning
  • model
  • reference_audio
  • audio
text这是带风格控制的克隆语音演示。
style_instruction
cfg_value2.0
inference_timesteps10
max_len4096
normalizefalse
denoisefalse

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_len up if audio cuts off; denoise for 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.

Categoryaudio/VoxCPM

Inputs (9)

NameTypeDefaultDescription
modelVOXCPM_MODEL
reference_audioAUDIO
textSTRING这是带风格控制的克隆语音演示。
style_instructionSTRING
cfg_valueFLOAT2.00–10
inference_timestepsINT101–100
max_lenINT409664–65536
normalizeBOOLEANfalse
denoiseBOOLEANfalse

Outputs (1)

NameTypeDescription
audioAUDIO