Nodes/ComfyUI-ElevenLabs-Pro/ElevenLabs Pro - Text to Dialogue
ComfyUI Node

ElevenLabs Pro - Text to Dialogue

A whole cast of voices from one node — up to 10 speakers

By IxMxAMAR·Created 5 months ago·Updated about a month ago· 1
ElevenLabs Pro - Text to Dialogue
    • audio
    api_key
    text1
    voice_id1
    modeleleven_v3
    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_normalizationoff
    languageAuto Detect
    output_formatmp3_44100_192
    seed0
    enable_loggingtrue

    One voice is a narrator. Two voices are a conversation. ElevenLabsPro_Dialogue is the pack's multi-speaker TTS node, and it's the one you reach for when you need a scripted back-and-forth - a podcast skit, a two-character scene, an audio drama - without stitching separate TTS calls together and praying the pacing lines up. It sends your whole cast to ElevenLabs' /v1/text-to-dialogue endpoint in one request and gets back a single, coherent audio take.

    The shape of the node is the story: text1 + voice_id1 are required, and text2 through text10 with matching voice_id2 through voice_id10 are optional. Each numbered pair is one speaker's line and one voice. Leave a pair empty and it's simply skipped, so you can start with two speakers and grow the cast without rewiring. The model dropdown currently has one entry - eleven_v3 - because that's what the dialogue endpoint supports; the node validates the total concatenated text length against v3's 5,000-character limit before it spends anything, so a too-long script fails fast instead of failing at the API.

    Beyond the speakers, the shared settings are the familiar TTS knobs: stability (0.5 default), language (defaults to Auto Detect), seed, enable_logging (flip off for zero-retention / privacy-sensitive work), and output_format - which here is a deliberately short two-option list, mp3_44100_192 or opus_48000_192. Notice that both are the higher-tier formats; if you're on a free plan, this node may fail on format grounds regardless of the model. apply_text_normalization defaults to "off" because v3 requires it, and the node enforces that.

    Mechanically it's a single POST with your speaker list bundled as inputs, the shared settings alongside, and the response decoded back into one AUDIO dict. Because it's an InputCacheMixin node, identical inputs are cached by hash and a re-queue won't re-bill you - change one speaker's text, and you pay for the whole scene again. That's worth internalizing before you iterate on script edits.

    Install is the pack standard:

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

    Restart ComfyUI, or install "ComfyUI-ElevenLabs-Pro" via ComfyUI Manager. Requirements are just requests and soundfile; no models to download.

    Where people get burned: forgetting that this is one bill for the whole dialogue - multi-speaker generation is priced by the combined character count, not per speaker, so a ten-speaker scene gets expensive fast. Run the Cost Estimator on the full script text first if that matters. And a small workflow note: the output is a single mixed take, not per-speaker tracks. If you need to duck the music under one speaker, or swap a single voice in post, you'd want per-line TTS calls instead - Dialogue is for the "give me the finished scene" case, and it's very good at that one job.

    CategoryElevenLabs Pro/TTS

    Inputs (28)

    NameTypeDefaultDescription
    api_keySTRING
    text1STRINGSpeaker 1 text.
    voice_id1STRINGSpeaker 1 voice ID.
    modelCOMBOeleven_v31 options: eleven_v3
    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_normalizationoptCOMBOoffeleven_v3 requires 'off' — keeping default.
    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.
    enable_loggingoptBOOLEANtrueIf False, requests zero-retention mode (audio + text not stored by ElevenLabs). Required for HIPAA / privacy-sensitive content.

    Outputs (1)

    NameTypeDescription
    audioAUDIO