Nodes/Comfyui-zhenzhen/zhenzhen-zonos2-fal
ComfyUI Node

zhenzhen-zonos2-fal

Clone a voice from a few seconds of audio, no local stack

By T8mars·Created about a year ago·Updated 2 days ago· 740
zhenzhen-zonos2-fal
  • reference_audio
  • audio
  • audio_url
  • response
text"Fal" is the fastest solution for your audio generation.
reference_audio_url
api_key
languageen_us
accurate_modetrue
clean_speaker_backgroundfalse
temperature1.15
top_p0.00
min_p0.18
top_k106
max_tokens0
seed0
audio_wayupload
poll_interval6
max_poll_attempts600
skip_errorfalse

The hosted way to do zero-shot voice cloning

Zonos is one of the open-weight TTS models that actually holds up - a zero-shot voice cloner where a few seconds of reference audio is enough to clone a speaker, at 44kHz, with real expressiveness (audio-generation.md). The catch is that running it locally means pulling down a transformer stack and a decent GPU. This node skips all of that: it calls Zonos v2 through fal's hosted endpoint, so the only things on your machine are the node and the script you're reading aloud.

And yes, "FAL" in the category means exactly the fal you think - the pay-per-call inference platform (fal.json). Metered credits, empty balance = no generation. The zhenzhen pack routes the request through its own server, but the key is yours.

The one thing you must get right: a fal API key

This node does not use the shared zhenzhen Seedance settings node, and it does not use a zhenzhen key. The api_key field takes your direct fal key - the one from your fal dashboard. Leave it empty and the node fails with "API key not provided." Every other input is optional, which tells you how important the reference audio is by comparison.

What to feed it

  • text - what the voice says. The default is fal's own promo line; replace it.
  • reference_audio - a ComfyUI AUDIO clip of the voice you want to clone. This is the heart of the node: Zonos is zero-shot, so a short clean sample (5–30 seconds, ideally no music) defines the speaker.
  • reference_audio_url - same thing as a URL, when audio_way is set to audio_url instead of upload.
  • language - en_us by default, with en_gb, fr_fr, de, es, it, pt_br, ja, cmn, ko on offer. Match it to the text, not the reference clip.
  • accurate_mode - on by default; a quality/throughput trade-off on fal's side.
  • temperature / top_p / min_p / top_k / max_tokens - sampling dials. Leave them alone until you're chasing a specific delivery; temperature 1.15 and min_p 0.18 are sensible defaults.
  • seed - 0 to 65535; 0 means random, and unlike the video nodes this one is sent to the API. Fix a seed to reproduce a take.
  • poll_interval / max_poll_attempts - how hard the node waits. Defaults are 6s × 600 = a 3600s timeout; plenty.

Outputs

Three: audio (a real ComfyUI AUDIO object - waveform + sample rate - so it wires straight into an audio player or a video's audio track), audio_url (the hosted file), and response (fal's JSON). With skip_error on, failures return a blank audio clip instead of stopping the graph.

Install and notes

Same pack, same install:

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen

then restart and let requirements install (torchaudio does the audio decoding, so don't strip requirements). Two practical notes: voice cloning works best when the reference is clean - background noise and music bleed straight into the clone, which is what clean_speaker_background exists to help with. And this is a cloud call, so your reference clip and text leave the machine; keep that in mind if you're cloning something private.

Categoryzhenzhen/FAL

Inputs (17)

NameTypeDefaultDescription
textSTRING"Fal" is the fastest solution for your audio generation.
reference_audiooptAUDIO
reference_audio_urloptSTRING
api_keyoptSTRING
languageoptCOMBOen_us10 options: en_us, en_gb, fr_fr, de, es, it, +4
accurate_modeoptBOOLEANtrue
clean_speaker_backgroundoptBOOLEANfalse
temperatureoptFLOAT1.150–2
top_poptFLOAT0.000–1
min_poptFLOAT0.180–1
top_koptINT1060–1024
max_tokensoptINT00–61440 = server default.
seedoptINT00–655350 = random seed. FAL seed max is 65535.
audio_wayoptCOMBOupload2 options: upload, audio_url
poll_intervaloptINT61–60
max_poll_attemptsoptINT60010–3600Default 600*6s = 3600s timeout.
skip_erroroptBOOLEANfalse

Outputs (3)

NameTypeDescription
audioAUDIO
audio_urlSTRING
responseSTRING