Nodes/ComfyUI_FL-CosyVoice3/FL CosyVoice3 Zero-Shot Clone
ComfyUI Node

FL CosyVoice3 Zero-Shot Clone

Clone a voice from ten seconds of audio — no fine-tuning, no API, no key

By filliptm·Created 8 months ago·Updated 8 days ago· 146
FL CosyVoice3 Zero-Shot Clone
  • model
  • reference_audio
  • audio
â—„textHello, this is my cloned voice speaking.â–º
â—„speed1.00â–º
â—„seed42â–º
â—„text_frontendtrueâ–º

The flagship node of this pack

This is the one most people install FL CosyVoice3 for. Give it a clip of someone speaking and a line of text, and it hands you back audio of that same voice saying your line. No training, no finetuning, no cloud account. That's what "zero-shot voice cloning" means: the model has never heard the target voice, and it doesn't need to - a short reference sample is enough to steer it.

It's the classic "make Zapp Brannigan read my shopping list" energy, but the legit uses are everywhere: narrating a video with a consistent character voice, keeping a recurring podcast voice across episodes, or generating clean speech to feed into a lip-sync pipeline. The author's own demo from the pack announcement is exactly this, one-shot cloning from a cartoon character.

How it actually works

CosyVoice's zero-shot mode needs to know what the reference clip says - the transcript is part of what conditions the clone. So the node saves your reference to a temp wav and runs it through Whisper (the base model, downloaded on first use) to transcribe it automatically. Then it calls inference_zero_shot with your text, the transcript as the prompt, and your audio as the voice sample, then concatenates whatever chunks come back.

For CosyVoice3 it also prepends the You are a helpful assistant.<|endofprompt|> prefix the model expects - you never see or type that, it just works. If Whisper fails or the clip is empty, the node silently drops into cross-lingual mode instead: you still get the right voice, just without the transcript conditioning, so fidelity loosens slightly. It rarely matters in practice.

The inputs that matter

  • reference_audio - the voice to clone. The node hard-stops at 30 seconds (it raises an error pointing you at Audio Crop), and the sweet spot is 3–10 seconds of clean, background-noise-free speech. Music behind the voice will bleed into the clone.
  • text - what you want said, in any of the pack's 9 supported languages.
  • speed - 0.5x to 2.0x. Leave at 1.0 to start.
  • seed - defaults to 42; set to -1 for variety. TTS models are famously seed-sensitive, and these nodes are no exception - rerun with a different seed when a take lands flat.
  • text_frontend - leave on. Turn it off only if you're feeding it CMU phonemes or special tags like <slow>.

The single output, audio, is a standard ComfyUI AUDIO dict. Wire it into PreviewAudio or SaveAudio to hear it, or into a video-sync node if you're doing talking-head work.

Install

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, then drop the Model Loader in and pick Fun-CosyVoice3-0.5B (it's the default). First run downloads the ~2GB model plus the Whisper base weights, so the console will sit there churning for a while. That's normal.

Where people get burned

  • Reference too long: the node tells you, with the exact 30-second limit. Trim with Audio Crop and move on.
  • Mumbled or multi-voice reference audio → Whisper transcribes garbage → clone drifts. Use one clean speaker.
  • Slow on CPU/Mac: it runs, but an 8GB+ NVIDIA GPU makes a huge difference. People who only try this once usually bail at the wait, not the quality.

Honest verdict: clone quality varies with the source voice - the community consensus is that some voices come out scarily close and others sound like the model shrugged. If you're chasing a specific result, bank on trying a few seeds and reference clips. That's normal for every TTS clone, not a flaw in this node.

Category🔊FL CosyVoice3/Synthesis

Inputs (6)

NameTypeDefaultDescription
modelCOSYVOICE_MODEL—
textSTRINGHello, this is my cloned voice speaking.—
reference_audioAUDIO—
speedFLOAT1.000.5–2—
seedoptINT42-1–2147483647—
text_frontendoptBOOLEANtrue—

Outputs (1)

NameTypeDescription
audioAUDIO—