zhenzhen-seed-speech-tts-v2-fal
21 voices, one node, no GPU
- audio
- audio_url
- response
ByteDance's Seed Speech TTS has become a favorite for "give me a clean, natural voice without ElevenLabs prices," and this node is the pack's door to its V2 model via the fal queue. Comfly_seed_speech_tts_v2_fal takes your text and returns a real ComfyUI AUDIO tensor you can drop straight into a video track or a save node - with 21 built-in voices, sample-rate control, and a voice_instruction field for nudging delivery. If you've been generating silent videos and want narration without renting a GPU or signing up for yet another TTS subscription, this is the node.
Like every FAL node here, the token goes in the node's own api_key field and traffic runs through zhenzhen's proxy (https://ai.t8star.org/fal in front of queue.fal.run). Submit to the fal-ai/bytedance/seed-speech/tts/v2 endpoint, poll, download. It's pay-per-call and prepaid-credit style, like all the fal routes.
The inputs that matter
text- required, the thing to speak. Default is a test sentence.voice- 21 choices baked into the node, fromstokie_en(default) tomonkey_king_zh. The names are honest about their languages -bonnie_zh,sophie_en_zh,vienna_mixed_en_zhare all in there.output_format-mp3oropus.sample_rate- 8000 to 48000, 24000 default. 48k if you're mastering; 24k is fine for web.speed(0.5–2.0),volume,pitch(-12 to +12 semitones) - the usual trim controls.language-auto(default) or zh/en/ja/es-mx/id/pt-br/ko/it/de/fr. Auto is usually right, but locking it can help with proper names.voice_instruction- the hidden gem: a free-text style instruction like "speak softly and slowly, like a bedtime story." Left empty when not set.
Outputs: audio (the tensor), audio_url, and response. Standard polling knobs (poll_interval 6s, max_poll_attempts 600 ≈ 1h) and the usual skip_error escape hatch.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen
or ComfyUI Manager (search "Comfyui-zhenzhen"), restart. Paste a zhenzhen token (overseas https://ai.t8star.org) into api_key. No models, no VRAM - the pack's audio dependencies are minimal and Manager handles them.
Common issues
- Silent or empty audio output -
skip_erroris probably on and swallowing a failure. Off while debugging. - Voice sounds off for the language - pick a voice that matches your
language; forcingautowith a clearly bilingual voice can give odd prosody. - TTS is slow to come back - the queue can back up; that's what the polling knobs are for, not a bug in the node.
It's not cloning, and it's not trying to be - this is "good natural TTS voices, metered by the character," the kind of thing the audio-generation side of the ecosystem keeps going back to the cloud for. Cheap, easy, and wired into your graph.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | Hello, this is a short text to speech test. | — |
| api_keyopt | STRING | — | |
| voiceopt | COMBO | stokie_en | 21 options: stokie_en, vivi_mixed_en_zh_ja_es_id, mindy_en_es_id_pt_zh, dacey_en, tim_en, kian_en_zh, +15 |
| output_formatopt | COMBO | mp3 | 2 options: mp3, opus |
| sample_rateopt | COMBO | 24000 | 7 options: 8000, 16000, 22050, 24000, 32000, 44100, +1 |
| speedopt | FLOAT | 1.000.5–2 | — |
| volumeopt | FLOAT | 1.000–2 | — |
| pitchopt | INT | 0-12–12 | — |
| languageopt | COMBO | auto | 11 options: auto, zh, en, ja, es-mx, id, +5 |
| voice_instructionopt | STRING | — | |
| poll_intervalopt | INT | 61–60 | — |
| max_poll_attemptsopt | INT | 60010–3600 | Default 600*6s = 3600s timeout. |
| skip_erroropt | BOOLEAN | false | — |
| seedopt | INT | 00–18446744073709550000 | Execution seed for ComfyUI cache control. Fixed reuses the cached result; randomize/increment/decrement requests a new run. This compatibility seed is not sent to APIs that do not expose a native seed parameter. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| audio_url | STRING | — |
| response | STRING | — |