Nodes/ComfyUI_FL-CosyVoice3/FL CosyVoice3 Speaker Clone
ComfyUI Node

FL CosyVoice3 Speaker Clone

The Speaker Clone Node

By filliptm·Created 8 months ago·Updated 8 days ago· 146
FL CosyVoice3 Speaker Clone
  • model
  • audio
â—„textHello, this is my cloned voice speaking.â–º
◄speaker_preset▾►
â—„speed1.00â–º
â—„seed42â–º
â—„text_frontendtrueâ–º

This is the node you use once you've met the pack's Save Speaker node and decided you never want to dig up a reference audio file again. Speaker Clone synthesizes speech in a voice that's been saved as a preset - you pick the voice from a dropdown instead of feeding in audio. No waveform, no reference clip, no re-extraction. Type your text, choose your speaker, generate.

It's the zero-shot cloning node minus the "zero-shot" hassle. The regular Zero-Shot Clone needs a reference clip on every run; Speaker Clone pulls the pre-computed speaker features straight from a .pt file on disk. That makes it the node you'd wire into a repeatable pipeline - a character whose lines you generate over and over, a batch of scripts for the same narrator, or any workflow where the voice is fixed and only the text changes. Because the preset is just the saved features, using it is "exactly the same as using that speaker's reference audio for voice clone, same process, same result" - the README's words, and they're accurate.

How it works

On the input side, the node scans ComfyUI/models/cosyvoice/speaker/ for .pt files and exposes them as the speaker_preset dropdown (showing [none] when the directory is empty). At generation time it loads the chosen file, injects the speaker embeddings into the model's frontend, and calls inference_zero_shot via zero_shot_spk_id - the same synthesis path the audio-based clone uses, just fed from disk instead of a live clip. If the dropdown shows [none], it raises a clear error telling you to run Save Speaker first.

There are real guardrails here, and they're the ones that bite people. A preset saved under CosyVoice3 cannot be used with CosyVoice2 and vice versa - the dropdown doesn't know what model made each file, so a mismatch fails at inference. And official CosyVoice spk2info.pt presets (like the bundled ones in CosyVoice-300M-SFT) are not supported at all; the README points you to download the sample audios and re-save them as presets instead.

The inputs that matter

  • model - the COSYVOICE_MODEL output of the Model Loader, and it must match the model your preset was saved with.
  • text - the line to speak in the preset's voice.
  • speaker_preset - the dropdown of saved voices.
  • speed - 0.5×–2.0×, default 1.0.
  • seed (optional) - default 42, -1 for random.
  • text_frontend (optional) - text normalization, on by default; disable for CMU phonemes or special tags like <slow>.

The single output is audio, ready for preview or save.

Installing it

Part of the FL CosyVoice3 pack - install once, all nodes included. ComfyUI Manager: search "FL CosyVoice3", or:

cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_FL-CosyVoice3.git
cd ComfyUI_FL-CosyVoice3
pip install -r requirements.txt

Restart ComfyUI. Expect a heavier-than-usual install (transformers, onnxruntime, openai-whisper) and a ~2GB model download into ComfyUI/models/cosyvoice/ on first load.

Common gotchas

  • [none] in the dropdown - no presets found. Run Save Speaker once on your reference audio, then restart (the dropdown scans on node creation).
  • Preset errors after switching models - model-version lock again. Re-save the preset with the model you're currently using.
  • Missing the text_frontend toggle - leave it on unless you know you need phonemes; off is for special-tag territory.
  • The dropdown needs a refresh - presets you add while ComfyUI is running won't show up until the node re-creates.

Speaker Clone is the "production" version of voice cloning in this pack. Once your voices are saved, this is the node that makes generating in that voice as easy as picking a name.

Category🔊FL CosyVoice3/Synthesis

Inputs (6)

NameTypeDefaultDescription
modelCOSYVOICE_MODEL—
textSTRINGHello, this is my cloned voice speaking.—
speaker_presetCOMBO1 options: [none]
speedFLOAT1.000.5–2—
seedoptINT42-1–2147483647—
text_frontendoptBOOLEANtrue—

Outputs (1)

NameTypeDescription
audioAUDIO—