Nodes/ComfyUI API Toolkit/ElevenLabs - Text to Dialogue
ComfyUI Node

ElevenLabs - Text to Dialogue

Scripted multi-voice dialogue

By IxMxAMAR·Created 5 months ago·Updated 2 months ago· 1
ElevenLabs - Text to Dialogue
    • audio
    api_key
    text1
    voice_id1
    text2
    voice_id2
    text3
    voice_id3
    text4
    voice_id4
    text5
    voice_id5
    text6
    voice_id6
    text7
    voice_id7
    text8
    voice_id8
    text9
    voice_id9
    text10
    voice_id10
    stability0.50
    apply_text_normalizationauto
    languageAuto Detect
    output_formatmp3_44100_192
    seed0

    A podcast with two hosts. A narrated scene with a narrator and three characters. An audiobook with a dozen distinct voices. Doing that with plain TTS means chaining ten separate text-to-speech calls and stitching them together. This node does it in one call: up to ten paired text + voice_id inputs, and it returns a single mixed audio output with each speaker's lines in order.

    The input scheme is the whole story. Required: api_key, text1, and voice_id1 - so speaker 1 is mandatory, which is the same as "you must have at least one speaker." Then text2/voice_id2 through text10/voice_id10 are all optional; leave a pair empty and that speaker just doesn't appear. Order matters - the node renders them in numeric order, so it's effectively a script: line 1 in voice A, line 2 in voice B, and so on. Give each speaker their own voice ID (from the selector, fetch, clone, or design nodes) and the conversation comes out with genuinely different characters.

    Beyond the lines there's the shared tuning: stability, language (Auto Detect by default), apply_text_normalization, output_format (here it's just the two high-quality options, mp3_44100_192 or opus_48000_192 - so yes, Creator tier+ applies), and seed.

    One output: audio, fully mixed and ready to save or lay into a video.

    Why you'd build a script this way

    Two big wins over chaining TTS nodes. First, one API call means one charge and one round-trip instead of ten. Second, the model gets to hear the whole conversation as context, so it paces the dialogue naturally - turns don't slam into each other like separately-generated clips spliced together. If you're making a podcast episode, a radio-play-style scene, or a multi-character audio drama, this is the node that makes it a single step instead of a pipeline.

    Installing it

    Part of the ComfyUI API Toolkit pack. Manager: search "API Toolkit". Manual:

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

    Restart. Needs requests and soundfile.

    Gotchas

    • Ten speakers of dialogue is a lot of characters in one call - budget accordingly, and use the flash TTS models elsewhere if you're iterating on the script.
    • The node produces one mixed file, not stems. If you need to re-voice a single line afterward, you re-run the whole dialogue, so get the script right before you commit.
    • Keep voice IDs consistent: assign each character one voice and never reuse a voice for two characters, or the "who said that" distinction collapses.
    CategoryAPI Toolkit/ElevenLabs/TTS

    Inputs (26)

    NameTypeDefaultDescription
    api_keySTRING
    text1STRINGSpeaker 1 text.
    voice_id1STRINGSpeaker 1 voice ID.
    text2optSTRING
    voice_id2optSTRING
    text3optSTRING
    voice_id3optSTRING
    text4optSTRING
    voice_id4optSTRING
    text5optSTRING
    voice_id5optSTRING
    text6optSTRING
    voice_id6optSTRING
    text7optSTRING
    voice_id7optSTRING
    text8optSTRING
    voice_id8optSTRING
    text9optSTRING
    voice_id9optSTRING
    text10optSTRING
    voice_id10optSTRING
    stabilityoptFLOAT0.500–1Voice stability. Lower = more expressive/emotional, Higher = more consistent/monotone. Creative(<0.5), Natural(0.5), Robust(>0.5).
    apply_text_normalizationoptCOMBOauto3 options: auto, on, off
    languageoptCOMBOAuto Detect33 options: Auto Detect, English (en), Arabic (ar), Bulgarian (bg), Chinese (zh), Croatian (hr), +27
    output_formatoptCOMBOmp3_44100_192Audio output format. mp3_44100_192 and opus require Creator tier+.
    seedoptINT00–4294967295Seed for reproducibility. 0 = random. Determinism not guaranteed.

    Outputs (1)

    NameTypeDescription
    audioAUDIO