Nodes/ComfyUI Griptape Nodes/Griptape Run: Text to Speech
ComfyUI Node

Griptape Run: Text to Speech

Make ComfyUI talk, and hand the audio back

By griptape-ai·Created 2 years ago·Updated about a year ago· 238
Griptape Run: Text to Speech
  • agent
  • key_value_replacement
  • driver
  • AUDIO
STRING
input_string

The audio bookend to the pack's transcription node: Griptape Run: Text to Speech takes text and returns actual AUDIO - a tensor you can feed into ComfyUI's audio nodes, save, or play. Voice → text → agent → text → voice is the full circle this pack lets you draw, and this node closes it on the output side.

Out of the box it's dead simple: connect text, run, get audio. The default driver is ElevenLabs (eleven_multilingual_v2, with the "Matilda" voice), which means it needs an ELEVEN_LABS_API_KEY in the sidebar Settings → Griptape or your environment. But you can also connect a TEXT_TO_SPEECH_DRIVER from the pack's driver nodes and swap in whatever backend you like, which is the setup you want if you're doing this a lot and don't want per-character ElevenLabs pricing.

How it works

The node wraps your text in a TextToSpeechTask inside a Griptape Pipeline, runs it, and converts the resulting audio artifact back into ComfyUI's AUDIO format. If the driver errors, the node returns an execution blocker with the error message rather than crashing the graph - a genuinely friendly failure mode. The key_value_replacement template fill works here too.

The inputs

  • STRING - the text to speak (required).
  • driver - optional TEXT_TO_SPEECH_DRIVER override; without one it falls back to ElevenLabs.
  • agent / input_string / key_value_replacement - the usual trio; the agent's TTS driver is used if no explicit driver is connected.

Output: AUDIO.

Installing

ComfyUI Manager → search "Griptape" → Install, or:

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

Restart ComfyUI. Heavy deps (griptape[all], python-dotenv). Grab an ElevenLabs key from https://elevenlabs.io/app (Profile + API Key) if you're going the default route.

Common gotchas

The obvious one: no key, no audio. The node's fallback to ElevenLabs only works if ELEVEN_LABS_API_KEY is actually set - otherwise you get a blocker error, not silence, which is at least honest.

The pack-wide usuals apply: torch version conflicts on Nvidia (reinstall with --extra-index-url https://download.pytorch.org/whl/cu121) and stale-griptape ImportErrors fixed with python -m pip install griptape -U. And if you're generating long form, remember TTS is a paid call on the default path - break up big text, or wire a local driver.

CategoryGriptape/Audio

Inputs (5)

NameTypeDefaultDescription
STRINGSTRING
input_stringoptSTRING
agentoptAGENT
key_value_replacementoptDICTThe will replace the {{ key }} with a value.
driveroptTEXT_TO_SPEECH_DRIVER

Outputs (1)

NameTypeDescription
AUDIOAUDIO