Nodes/ComfyUI Griptape Nodes/Griptape Text To Speech Driver: ElevenLabs
ComfyUI Node

Griptape Text To Speech Driver: ElevenLabs

ElevenLabs voices inside ComfyUI

By griptape-ai·Created 2 years ago·Updated about a year ago· 238
Griptape Text To Speech Driver: ElevenLabs
    • DRIVER
    text_to_speech_modeleleven_multilingual_v2
    voiceMatilda
    modeleleven_multilingual_v2
    api_key_env_varELEVEN_LABS_API_KEY

    This node doesn't make sound. It makes a driver - a configured object that tells the rest of the Griptape pack which ElevenLabs model and voice to use when your agent is asked to speak. If you've ever wanted a ComfyUI workflow that ends with an actual voice reading the result back at you instead of another string on a node, this is the piece that makes it happen. The name is doing double duty though: it says "driver," and in this pack a driver is a config block you wire into a consumer, not a thing that runs on its own.

    The ElevenLabs driver is the one people reach for when the voice matters. ElevenLabs is still the default answer for natural, hard-to-place-as-AI voices, and this node gives you the pick of the litter - your chosen model and voice get baked into a TEXT_TO_SPEECH_DRIVER that a Text-to-Speech task or tool then uses. If you're on a budget or just want the thing to work with a key you already have, the OpenAI TTS driver is the cheaper sibling. If you want your agent to announce results in a voice people actually believe is human, you're here.

    How it works

    Under the hood it wraps Griptape's ElevenLabsTextToSpeechDriver. You pick a model and a voice, it hands back a driver object, and that object gets passed along the wire until something consumes it - typically the "Griptape Tool: Text to Speech" node or a Text-to-Speech task. The API key is pulled at runtime from an environment variable, not typed into the graph.

    The inputs that matter

    All four inputs are optional, which is nice - you can drop this node in and it'll work with defaults.

    • model - the ElevenLabs model, default eleven_multilingual_v2. That default is genuinely good: it's multilingual and handles a huge range of use cases.
    • voice - default Matilda. This is the one you'll actually fiddle with. Voice names are ElevenLabs' own, so whatever you've set up on their site is what you can use.
    • api_key_env_var - default ELEVEN_LABS_API_KEY. Read the tooltip twice: this is the name of the environment variable holding your key, not the key itself. Paste a real key in here and you've just committed a credential to a workflow file.
    • text_to_speech_model - an inherited field that mirrors model with the same default; change model, and you're set.

    The single output, DRIVER (TEXT_TO_SPEECH_DRIVER), plugs into any node that takes that socket.

    Install and keys

    If you don't have the pack yet, ComfyUI Manager → search "Griptape" → install, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/griptape-ai/ComfyUI-Griptape
    

    The pack pulls in griptape[all], which is a big install - see the torch troubleshooting below. For the key: open ComfyUI Settings → the Griptape section, set ELEVEN_LABS_API_KEY, or set the same env var before launching. Get the key from https://elevenlabs.io/app/ under Profile + API Key.

    Where people get burned

    The classic failure is a silent one: the driver gets created but the key isn't there, and the speech just never comes back. Check that the key is set in Settings → Griptape (or your env) under the exact name in api_key_env_var. The second classic is a torch version fight - griptape[all] installs its own torch and can clobber ComfyUI's CUDA build, which then breaks everything downstream. The pack's own README recommends, if that happens:

    pip uninstall torch
    pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
    

    One more thing: ElevenLabs is a paid API. Every character your agent speaks costs money, so if you're building a workflow that narrates on every run, budget for it - or swap in the OpenAI driver for the heavy lifting.

    CategoryGriptape/Agent Drivers/Text to Speech

    Inputs (4)

    NameTypeDefaultDescription
    text_to_speech_modeloptSTRINGeleven_multilingual_v2Select the text-to-speech model to use.
    voiceoptSTRINGMatildaThe voice to use for text-to-speech.
    modeloptSTRINGeleven_multilingual_v2The model to use for text-to-speech.
    api_key_env_varoptSTRINGELEVEN_LABS_API_KEYThe environment variable name for the API key. Do not use your actual API key here.

    Outputs (1)

    NameTypeDescription
    DRIVERTEXT_TO_SPEECH_DRIVER