Nodes/ComfyUI-11labs/ElevenLabs TTS Node
ComfyUI Node

ElevenLabs TTS Node

Studio-grade voices, but it's a paid API in a thin wrapper

By gabe-init·Created about a year ago·Updated about a year ago· 8
ElevenLabs TTS Node
    • AUDIO
    api_key
    textHello, how are you?
    voice
    model
    stability0.5
    similarity_boost0.8
    style0.0
    use_speaker_boosttrue
    input_text

    If you've been voice-acting your ComfyUI videos with whatever local TTS node you found on GitHub, this is the upgrade that actually sounds like a human. ElevenLabs TTS Node is a wrapper around ElevenLabs' cloud text-to-speech API, and it drops the result straight into ComfyUI's AUDIO system so you can narrate an animated workflow without leaving the graph.

    Set expectations first: it does not run a model locally, it needs zero VRAM, and it calls a paid web API over the internet. You pay per character of generated audio against ElevenLabs credits, and you need an API key. The trade is that you get ElevenLabs' voice quality plus their whole library of premium and cloned voices - including celebrity impressions and your own clones - which is the entire point of reaching for this over a free local node.

    How it works

    Under the hood it's two HTTP calls. When you add the node, it fetches the public voice list from api.elevenlabs.io/v1/voices and builds the voice dropdown from it - each entry is Name (voice_id), and the node parses the id back out at generate time. That list is cached for an hour. When you run it, it POSTs to /v1/text-to-speech/{voice_id} with your key, the text, a model id, and your voice settings, then takes the returned audio bytes, decodes them with torchaudio, and reshapes them into the 3D waveform + sample rate dict that ComfyUI's AUDIO type expects. The AUDIO output wires straight into ComfyUI's audio preview/save nodes or the audio port on a VideoHelperSuite Video Combine.

    The inputs that matter

    • api_key - your ElevenLabs key, required. Keep it out of any workflow you share; it's a literal secret pasted into a widget.
    • text - the lines to speak. It has a default of "Hello, how are you?" and that default will get spoken if you forget to type anything. Wire the optional input_text input instead if you want to feed text from another node (a prompt switcher, an LLM node); it takes priority over the text box.
    • voice / model - the dropdowns. Voices come from your account; models are hardcoded to eleven_multilingual_v2, eleven_english_sts_v2, and eleven_turbo_v2.
    • stability (default 0.5) controls how steady vs. expressive the delivery is - lower for emotion, higher for consistency. similarity_boost (0.8) and use_speaker_boost (on) tune how closely it matches the voice. style (0) adds exaggeration. These map 1:1 to ElevenLabs' voice_settings.

    Installing it

    ComfyUI Manager: search ComfyUI-11labs and install. Or by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/gabe-init/ComfyUI-11labs
    

    Then restart ComfyUI. Its dependencies are requests, torch, and torchaudio - you already have the last two from ComfyUI itself, so really just requests. No model files to download, no heavy setup. You do need an ElevenLabs account and a key.

    Where people get burned

    Failures are silent. The node never raises an error to the UI - on a bad key (401), out of credits (402), a bad voice, or even a torchaudio decode failure, it returns a silent zero-length audio blob and only prints the real reason to the ComfyUI console. So if you run it and hear nothing, check the console log first, then your credit balance, then your key. This is the single biggest trap with this node.

    Two more quirks worth knowing. The model list is hardcoded to the v2 generation from 2024 - no eleven_multilingual_v3 or Flash models in the dropdown; if you need the newer stuff you'll be editing node.py. And the voice list is cached for an hour and fetched without your key, so a freshly cloned voice won't appear until the cache refreshes - restart or wait, it's not a bug. It's also technically TTS-only despite a latent speech-to-speech code path in the source: that path has no input wired up, so don't go hunting for an audio input.

    Great for narrated video pipelines where quality matters more than the per-character cost. Just keep an eye on your credits and the console, and it's the easiest studio-voice button ComfyUI has.

    CategoryElevenLabs

    Inputs (9)

    NameTypeDefaultDescription
    api_keySTRING
    textSTRINGHello, how are you?
    voiceCOMBO21 options: Roger - Laid-Back, Casual, Resonant (CwhRBWXzGAHq8TQ4Fs17), Sarah - Mature, Reassuring, Confident (EXAVITQu4vr4xnSDxMaL), Laura - Enthusiast, Quirky Attitude (FGY2WhTYpPnrIDTdsKH5), Charlie - Deep, Confident, Energetic (IKne3meq5aSn9XLyUdCD), George - Warm, Captivating Storyteller (JBFqnCBsd6RMkjVDRZzb), Callum - Husky Trickster (N2lVS1w4EtoT3dr4eOWO), +15
    modelCOMBO3 options: eleven_multilingual_v2, eleven_english_sts_v2, eleven_turbo_v2
    stabilityFLOAT0.50–1
    similarity_boostFLOAT0.80–1
    styleFLOAT0.00–1
    use_speaker_boostBOOLEANtrue
    input_textoptSTRING

    Outputs (1)

    NameTypeDescription
    AUDIOAUDIO