Nodes/VRGameDevGirl Video Enhancement Nodes/VRGDG VoxCPM2 Voice Clone / TTS
ComfyUI Node

VRGDG VoxCPM2 Voice Clone / TTS

Local Voice Cloning Inside ComfyUI, With a Modes Menu

By vrgamegirl19·Created about a year ago·Updated about 7 hours ago· 718
VRGDG VoxCPM2 Voice Clone / TTS
  • reference_audio
  • prompt_audio
  • audio
  • saved_audio_path
  • sample_rate
  • status
textHello from VoxCPM2.
modetext_to_speech
deviceauto
cfg_value2.0
inference_timesteps10
load_denoiserfalse
normalize_textfalse
retry_badcasetrue
retry_badcase_max_times3
retry_badcase_ratio_threshold6.0
min_len2
max_len4096
save_filename_prefixvoxcpm2
reference_audio_path
prompt_audio_path
prompt_text

VoxCPM is the open-weights speech model that's been quietly winning the "actually good local TTS" crowd, and VRGDG_VoxCPM2Generate wraps it for ComfyUI with a modes menu that covers everything from plain text-to-speech to serious voice cloning. It's part of the VRGameDevGirl pack, which means it's aimed at the music-video pipeline - clone a voice for your AI singer, generate narration, or just have a character say something new in an existing voice. No API key, no cloud, no per-character fee. It's all local.

The node loads the model with VoxCPM.from_pretrained(...) on first run, so your first generation is really a model download. Once it's cached, it's fast - the community's verdict on VoxCPM is "really fast, very accurate," and it handles far more than English.

The modes menu (this is the whole game)

  • text_to_speech - plain TTS, no voice reference. The text field is what it says.
  • voice_design - zero-shot styled speech guided by your wording alone. No reference clip needed, you steer the character through your prompt text.
  • prompt_continuation - continue speaking from a prompt clip; give it prompt_audio plus the exact prompt_text.
  • controllable_clone - the easiest real voice clone. Feed a clean 10–30 second single-speaker reference clip and it talks in that voice.
  • ultimate_clone - the strongest clone. Same idea, but you must also provide the exact transcript in prompt_text; matching the words closely matters.

The inputs that matter

  • text - what you want the model to say. For cloning modes this is the new target speech, not a transcript of the reference.
  • reference_audio / reference_audio_path - your speaker reference. Clean, single speaker, 10–30 seconds is the sweet spot the tooltip asks for.
  • prompt_text - required for prompt_continuation and ultimate_clone: the exact transcript of the prompt/reference clip.
  • cfg_value - CFG strength, default 2.0. Lower sounds looser, higher sounds more forced. 2.0 is a genuinely good start.
  • inference_timesteps - default 10. Higher is slightly better, notably slower.
  • max_len - if long text gets cut off, raise it. Costs VRAM and time.
  • retry_badcase - on by default; auto-reruns obviously bad generations up to retry_badcase_max_times (default 3). Slower but much more reliable.

Outputs: audio (the AUDIO tensor), saved_audio_path (a WAV written to ComfyUI/output/VRGDG_AudioFiles/, prefix from save_filename_prefix), sample_rate, and a status string.

Install

The pack install plus the VoxCPM dependency:

cd ComfyUI/custom_nodes
git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl
pip install -r requirements.txt   # includes voxcpm, transformers, torchaudio

Or search vrgamedev in ComfyUI Manager. First run downloads the model - give it time. device defaults to auto (CUDA if available), and the tooltip is blunt: CUDA is strongly recommended. This is not a CPU-friendly node.

Common issues

  • First run "hangs": model download. Watch the console.
  • Cloned voice doesn't sound right: the reference clip is the weak link. Hiss, room tone, or a second speaker wreck cloning - the load_denoiser option exists precisely to clean up noisy source clips before cloning.
  • Bad generations that don't retry: check retry_badcase is on and the threshold (retry_badcase_ratio_threshold) is at its default - don't touch that one unless you're tuning.
  • Accent bleeding / language quirks: community reports say it's a strong multi-language model but can carry an accent from your reference. That's a feature when you want it, a bug when you don't - use a neutral, clean reference.

One honest note: VoxCPM2's own ecosystem is young, so expect occasional rough edges, and the model card should be your second read after this page. But for fully local, genuinely good voice cloning with no API in the loop, this is one of the better nodes you can drop into a ComfyUI graph today.

CategoryVRGDG/Audio

Inputs (18)

NameTypeDefaultDescription
textSTRINGHello from VoxCPM2.What you want the model to say. For cloning modes, this is the new target speech, not the transcript of your reference clip.
modeCOMBOtext_to_speechChoose how VoxCPM2 should speak: - text_to_speech: regular TTS with no voice reference. - voice_design: zero-shot styled speech guided by your wording alone. - prompt_continuation: continue from a prompt clip using prompt_audio plus prompt_text. - controllable_clone: easiest voice clone. Provide a clean reference clip. - ultimate_clone: strongest cloning mode. Provide a reference clip and the exact transcript in prompt_text.
deviceCOMBOautoauto picks CUDA when available and falls back to CPU. CUDA is strongly recommended for VoxCPM2.
cfg_valueFLOAT2.00–20Classifier-free guidance strength. A good starting point is 2.0. Lower can sound looser; higher can sound more forced.
inference_timestepsINT101–200Number of inference steps. 10 is a solid default. Higher may improve quality slightly but is slower.
load_denoiserBOOLEANfalseOptional cleanup for noisy prompt or reference audio before cloning. Useful if your source clip has hiss, room noise, or light background noise.
normalize_textBOOLEANfalseNormalize text before generation. Can help with number/date expansion and cleaner pronunciation on some inputs.
retry_badcaseBOOLEANtrueRetry obviously bad generations automatically. This can improve reliability but may take longer.
retry_badcase_max_timesINT31–10Maximum retry attempts when retry_badcase is enabled.
retry_badcase_ratio_thresholdFLOAT6.01–20Bad-case threshold for retry logic. Leave this alone unless you are tuning generation behavior.
min_lenINT21–128Minimum generated audio token length. Usually safe to leave at the default.
max_lenINT409632–16384Maximum generated token length. Increase if long text is getting cut off. Higher values can use more VRAM and time.
save_filename_prefixSTRINGvoxcpm2Base name for the saved WAV file in ComfyUI/output/VRGDG_AudioFiles.
reference_audiooptAUDIOSpeaker reference for voice cloning. Use a clean single-speaker clip, ideally 10 to 30 seconds.
reference_audio_pathoptSTRINGSpeaker reference for voice cloning. Use a clean single-speaker clip, ideally 10 to 30 seconds.
prompt_audiooptAUDIOPrompt/continuation audio. Use this for prompt_continuation, or for ultimate_clone when you want the model to match a specific spoken example.
prompt_audio_pathoptSTRINGPrompt/continuation audio. Use this for prompt_continuation, or for ultimate_clone when you want the model to match a specific spoken example.
prompt_textoptSTRINGExact transcript of the prompt/reference clip. Required for prompt_continuation and ultimate_clone. Match the spoken words as closely as possible.

Outputs (4)

NameTypeDescription
audioAUDIO
saved_audio_pathSTRING
sample_rateINT
statusSTRING