Nodes/Replicate Select/Inworld TTS 2 (Replicate)
ComfyUI Node

Inworld TTS 2 (Replicate)

Inworld TTS 2 — write '[whisper excitedly]' and it just obeys

By Pharma-Lobby·Created 2 months ago·Updated 2 months ago· 0
Inworld TTS 2 (Replicate)
    • audio
    text
    voice_idAshley
    languageauto
    temperature0.00
    audio_formatmp3
    sample_rate48000
    speaking_rate0.00
    text_normalizationauto

    Inworld TTS 2 is the one TTS in the Replicate Select pack with a genuinely fun control scheme: you steer the delivery from inside the text with bracketed instructions. [say excitedly], [whisper in a hushed voice], [speak slowly and ominously] - put the direction before the line it applies to, and the model performs it. That's rare in TTS nodes, and for dialogue or character work it's the difference between "robot reads a script" and "someone acts it."

    The name says "realtime," which is marketing-adjacent: through this node it's a regular per-call API like everything else in the pack. What you get instead is that natural-language steering, a preset voice list plus custom cloned voice IDs, 16 language choices with auto-detection, and the usual delivery knobs. Output is native ComfyUI AUDIO, so it plugs straight into SaveAudio or a lipsync upload without file gymnastics.

    How it works

    Standard engine around inworld/realtime-tts-2. Text goes up, audio comes back, converted to a ComfyUI AUDIO dict. Single output named audio. The brackets aren't parsed by the node - they ride through to the model, which is trained to honor them. That's the whole trick, and it's worth leaning into.

    The inputs that matter

    • text (required) - up to 2,000 characters. This is where the steering lives: [say excitedly] before a line, [whisper] before another. The bracket goes immediately before the text it applies to.
    • voice_id - default Ashley. Preset names (Dennis, Alex, Darlene, …) or a custom cloned voice ID.
    • language - auto default, or pick from 16 (en, zh, ja, ko, ru, it, es, pt, fr, de, pl, +4 more).
    • temperature - 0–2, default 0. Higher = more expressive/varied, lower = deterministic. The tooltip is honest: 0 means "use the model default (1.1)."
    • speaking_rate - 0–1.5, default 0 (which maps to normal 1.0 speed).
    • audio_format - mp3 (default), wav, ogg_opus, or flac.
    • sample_rate - 8k up to 48k.
    • text_normalization - auto lets the model decide whether to expand numbers/dates/abbreviations, on always normalizes, off reads as-is. Useful when you want "19 ninety-nine" spoken as written.

    Output: audio, native ComfyUI AUDIO.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/Pharma-Lobby/ComfyUI-Replicate-Select
    

    Or ComfyUI Manager → Install Custom Nodes → "Replicate Select", restart. Dependency: replicate>=1.0.7. Token via environment variable:

    export REPLICATE_API_TOKEN=r8_...
    

    Where people get burned

    • Bracket placement. The instruction applies to what follows it. Drop [angry] at the end of a paragraph and you've voiced the wrong text. Lead with the direction.
    • Character limit is real. 2,000 characters is a short script. For long narration, either chunk it across multiple calls or use MiniMax (10k) / ElevenLabs instead.
    • Temperature isn't "quality." Higher values make it more theatrical, not better. For a calm narration voice, keep it low.
    • Don't expect literal realtime. The "realtime" is the product's streaming tier; this node runs the full API call, so budget a couple of seconds per line.
    CategoryReplicate Select/tts

    Inputs (8)

    NameTypeDefaultDescription
    textSTRINGThe text to convert to speech. Maximum 2,000 characters. Supports natural-language steering with bracketed instructions placed before the text they apply to (e.g. `[say excitedly]`, `[whisper in a hus
    voice_idoptSTRINGAshleyThe voice to use. Use a preset voice name (e.g. 'Ashley', 'Dennis', 'Alex', 'Darlene') or a custom cloned voice ID.
    languageoptCOMBOautoLanguage of the input text. Use 'auto' to let the model detect the language. Supported production languages: English (en), Chinese (zh), Japanese (ja), Korean (ko), Russian (ru), Italian (it), Spanish
    temperatureoptFLOAT0.000–2Controls randomness when generating audio. Higher values produce more expressive results, lower values are more deterministic. Set to 0 to use the model default (1.1).
    audio_formatoptCOMBOmp3Output audio format.
    sample_rateoptCOMBO48000Audio sample rate in Hz.
    speaking_rateoptFLOAT0.000–1.5Speaking speed multiplier. Set to 0 for normal speed (1.0).
    text_normalizationoptCOMBOautoControls whether numbers, dates, and abbreviations are expanded before synthesis. 'auto' lets the model decide, 'on' always normalizes, 'off' reads text as-is.

    Outputs (1)

    NameTypeDescription
    audioAUDIO