zhenzhen-minimax-speech-2.8-fal
MiniMax Speech 2.8
- audio
- audio_url
- response
Most TTS nodes give you a voice and a speed knob. Comfly_minimax_speech_2_8_fal ("zhenzhen-minimax-speech-2.8-fal") gives you an emotion dropdown - happy, sad, angry, fearful, surprised, neutral - on top of MiniMax's Speech 2.8 model, and that's exactly the feature that makes it worth reaching for. If your pipeline is "generate a voiceover that doesn't sound like a robot reading a manual," this is a much shorter path than layering a local TTS and trying to coax emotion out of it with punctuation.
It's a FAL-class node in the T8mars/Comfyui-zhenzhen pack, the "Comfly" API-wrapper family that calls the author's paid reseller service (贞贞的AI工坊, ai.t8star.org, with a cheaper China site at api.seedance.nz). "FAL" here means the author's proxy of FAL's queue: submit your text to the /fal endpoint with your key as a Bearer token, poll until it's done, download the result, and get it back as an AUDIO tensor. Billing is pre-deduct - credits are held up front and settle after the run.
The inputs that matter
prompt- required, the text to speak. It ships with a friendly "Hello world" default so you can test instantly.model_quality-turbo(default) orhd. Turbo is fast and fine for drafts; hd is the one you actually ship.voice_id- defaults to "Wise_Woman"; there's a real catalog behind this on MiniMax's side.speed,vol,pitch- the usual shaping trio.emotion- the standout.noneis default; flip tohappyorangryand the delivery changes.language_boost-autoor one of the listed languages; helps non-English text render properly.sample_rate,bitrate,format- mp3/wav/flac and the engineering knobs; defaults are fine.output_format-url(default) orhex, for how you want the audio delivered.poll_interval/max_poll_attempts- default 6s × 600 = a one-hour timeout ceiling.skip_error- fail soft for batch runs.
Outputs
audio- the result as anAUDIOtensor. Preview or save and you're done.audio_url- the hosted file as a string.response- the raw API payload for debugging.
Installing it
Whole pack, no models:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen
# restart ComfyUI
Or ComfyUI Manager → "Comfyui-zhenzhen". Then paste a key from the author's site into the api_key field - the FAL nodes take it directly, no settings node needed.
The honest part
Speech 2.8 is a genuinely good multilingual TTS, and the emotion control is what separates it from the pack's own lowprice TTS node (which covers the same model family without the FAL queue). Two caveats. First, it's a reseller proxy: your text crosses a third-party server, so don't feed it anything you need private. Second, per-call pricing - if you're generating narration by the hour, the credits meter up and a local TTS (the open ecosystem has real contenders) wins on cost. For a few dozen polished lines with actual emotional range, though, this node is hard to beat for effort-to-result ratio.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Hello world! Welcome to MiniMax speech. | — |
| model_qualityopt | COMBO | turbo | 2 options: turbo, hd |
| api_keyopt | STRING | — | |
| voice_idopt | STRING | Wise_Woman | — |
| speedopt | FLOAT | 1.000.5–2 | — |
| volopt | FLOAT | 1.000–10 | — |
| pitchopt | INT | 0-12–12 | — |
| emotionopt | COMBO | none | 8 options: none, happy, sad, angry, fearful, disgusted, +2 |
| english_normalizationopt | BOOLEAN | false | — |
| sample_rateopt | COMBO | 32000 | 6 options: 8000, 16000, 22050, 24000, 32000, 44100 |
| bitrateopt | COMBO | 128000 | 4 options: 32000, 64000, 128000, 256000 |
| formatopt | COMBO | mp3 | 3 options: mp3, wav, flac |
| language_boostopt | COMBO | auto | 14 options: auto, English, Chinese, Chinese,Yue, Japanese, Korean, +8 |
| output_formatopt | COMBO | url | 2 options: url, hex |
| 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 | — |