ComfyUI Node

Inworld Realtime TTS-2

Realtime voice, minus the sliders

By Runware·Created 2 years ago·Updated about a month ago· 140
Inworld Realtime TTS-2
  • speech
  • audioSettings
  • audio
numberResults1
settings.textNormalizationfalse
ttlfalse
ttl_value60
outputFormatMP3

If you're building anything where the voice has to keep up with the moment - a live interaction, a character that reacts, a pipeline that can't afford a seconds-long wait - the Inworld Realtime TTS-2 node is the one. It's the newest voice model in the Runware pack, tuned for low latency, and the display name says "Realtime" for a reason: this is the model you pick when speed of delivery is the point.

The giveaway is in the schema. Where the 1.5 siblings offer a settings.temperature dial for expressiveness, TTS-2 drops it entirely. You don't tune this voice; you use it. That's a feature for a realtime model - fewer knobs to fight when your goal is "say it now."

How it works

The required input is the speech socket (RUNWARE_SPEECH), wired to a Runware Speech builder node where the real inputs live: your text (with dialogue tags like [Sam] Hello [Bob] Hi there and provider markup such as [laughs], [short pause]), a voice from the named list (Zephyr by default), plus optional speed, volume, and language.

On the model node, the one behavior knob worth knowing is settings.textNormalization - expands numbers, dates, and abbreviations before generation, so "I'm 25, born in '91" reads naturally rather than as digits. Flip it on for spoken prose, off for addresses and codes you want read literally. numberResults goes up to 4, and outputFormat is MP3/WAV/FLAC/OGG. The Runware Audio Settings builder plugs into audioSettings for stereo, bitrate, or sample rate control.

Output is a native ComfyUI AUDIO (waveform + sample rate), decoded on your machine via soundfile, and it drops straight into a Save Audio node.

Installing it

It's in the same official pack as the rest:

cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt

Restart, set your key under ComfyUI Settings → Runware API key or via RUNWARE_API_KEY. Light dependencies - runware-sdk, pillow, soundfile.

Where people get burned

The main gotcha is looking for knobs that aren't there: no settings.temperature on TTS-2 is by design, not a bug, so don't hunt for expressiveness control that lives on the 1.5 nodes instead. And while "realtime" means low latency, it doesn't mean free - it's still a metered cloud API, so looping it in a live system will bill you per utterance, and the pack's $20-minimum top-up quirk applies. Text lives upstream in the Runware Speech builder; if the node has no output, check that wire first.

CategoryRunware/Audio/inworld

Inputs (7)

NameTypeDefaultDescription
speechRUNWARE_SPEECH
audioSettingsoptRUNWARE_AUDIOSETTINGS
numberResultsoptINT11–4Number of results to generate. Each result uses a different seed, producing variations of the same parameters.
settings.textNormalizationoptBOOLEANfalseExpands numbers, dates, abbreviations before speech generation.
ttloptBOOLEANfalseEnable to set ttl. Off uses the model's default.
ttl_valueoptINT60Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.
outputFormatoptCOMBOMP3File format for the generated audio.

Outputs (1)

NameTypeDescription
audioAUDIO