πΈ OVERTLI Pollinations Text to Speech
Script in, native AUDIO out
- audio
- script_text
If you've ever wanted a voiceover on your video without training a voice model or babysitting a separate TTS app, GZ_TextToSpeech is the node that closes the loop inside ComfyUI. It's the Overtli Studio Suite's speech route: text goes to Pollinations' audio API, and a spoken clip comes back as a native ComfyUI AUDIO output you can wire into a video or preview directly. Text-to-speech, no local model, no VRAM, no key needed on the free tier.
The genuinely clever part is what the node calls the script path. Its default model (openai-audio-large) is tagged for both TTS and music, and the node has a whole preset family - Voiceover Script, Character Voice, Podcast Intro, Dramatic Reading - that turn your rough text into a script first and then read that script. That's why the node has two outputs instead of one.
The inputs that matter
text- what you want spoken.mode_preset- off by default. Turn on something like Voiceover Script and the text gets rewritten into narration-friendly pacing before synthesis;format_script(optional) further shapes the output.model- audio-capable models from Pollinations' catalog, tagged[tts],[music]or both,[free]/[paid]. Defaults to a free one.voice- the character. OpenAI-style voices (nova,alloy,echo,fable,onyx,shimmer, plus newer ones likeverse,ballad,sage).novais the default and the safe pick.tts_style_preset- delivery styles (Natural Narration, Podcast Host, Broadcast Newsβ¦) layered on top of the raw voice.custom_instructions- free-form direction for the model.
There are no speed or format knobs on this node's schema - the sibling GZ_AdvancedTextEnhancer exposes audio_speed and audio_response_format if you need that granularity - so this one stays intentionally simple.
The outputs
audio- the native ComfyUI AUDIO output. Wire it to an audio-preview or combine it with your video track.script_text- the STRING that was actually spoken. This is the sleeper output: when a mode preset rewrote your text, you get the polished script back, which means you can save the narration copy without re-typing it. It also pairs withGZ_SpeechToTextif you ever want to verify what the model actually said.
Install and expectations
Standard pack install - search "Overtli" in ComfyUI Manager, or clone the repo into custom_nodes and pip install -r requirements.txt, restart. Deps are light (requests, Pillow, numpy); the node converts returned audio through ComfyUI's own audio helpers, so a reasonably current ComfyUI build is worth having.
The honest framing: this is a convenience TTS, not a voice-cloning studio. The community's deep TTS work - Kokoro-class lightweight local models, Chatterbox, real cloning - lives on the local side (audio-generation.md); a hosted API gives you a good generic voice in a dozen styles with zero setup, and the free tier keeps it costless for drafts. Where it shines is pipeline speed: a script, a voice, and a narration clip that lands in your graph in one run. Where it won't help: if you need a specific cloned voice, or something the provider's moderation won't speak - the audio API's filter applies to speech like any hosted model, and there's no local patch.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | β | |
| mode_preset | COMBO | Off | 9 options: Off, π€ Voiceover Script, π€ Character Voice, π€ Audiobook Narration, π€ Podcast Intro, π€ Commercial Spot, +3 |
| model | COMBO | openai-audio-large [ttaudio] [tts] [music] [free] [tools] | 33 options: openai-audio-large [ttaudio] [tts] [music] [free] [tools], midijourney-large [ttaudio] [music] [free] [tools], midijourney [ttaudio] [music] [free] [tools], openai-audio [ttaudio] [tts] [music] [free] [tools], minimax/minimax-h3-max-turbo [ttaudio] [tts] [paid], wan-3.0 [ttaudio] [tts] [paid], +27 |
| voice | COMBO | nova | 13 options: alloy, echo, fable, onyx, nova, shimmer, +7 |
| custom_instructionsopt | STRING | β | |
| tts_style_presetopt | COMBO | Off | 10 options: Off, Natural Narration, Podcast Host, Dramatic Performance, Educational Explainer, Broadcast News, +4 |
| format_scriptopt | BOOLEAN | false | β |
| api_keyopt | STRING | β | |
| persist_api_keyopt | BOOLEAN | false | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | β |
| script_text | STRING | β |