Nodes/comfyui-llamacpp-plus/OpenAI TTS Speech
ComfyUI Node

OpenAI TTS Speech

Voice cloning through a local OpenAI-compatible TTS server

By pointave·Created 6 months ago·Updated 3 months ago· 2
OpenAI TTS Speech
  • tts_connection
  • voice_audio
  • audio
textHello, world!
voice_path
speed1.00

OpenAI TTS Speech is the half of this pack that gives your graph a voice. Give it some text, a reference recording, and a running TTS server, and it hands you back a real AUDIO tensor you can save, play, or feed into a video workflow. The author built it around OmniVoice, the zero-shot multilingual TTS model that went big on r/StableDiffusion in early 2026 - 600+ languages, voice cloning from a few seconds of audio, and a local OpenAI-compatible server to talk to.

Here's the thing to get straight before you use it: the "OpenAI" in the name is the API shape, not the company. The node calls your own server's /v1/audio/speech endpoint and hardcodes the API key to "dummy". That means it works against OmniVoice or any other local OpenAI-compatible TTS server, and it will not magically work against OpenAI's paid API - if your server enforces auth, this node has no key to give it.

What you actually set

  • text - what gets spoken. Defaults to "Hello, world!" and you'll change it every single run.
  • voice_path - absolute path to a .wav/.mp3/.ogg reference file used for voice cloning. This is the author's own description: pass a clip of the voice you want and OmniVoice clones it.
  • speed - a 0.5–2.0 multiplier. 0.5 is a slow drawl, 2.0 is auctioneer.
  • voice_audio (optional) - wire a ComfyUI AUDIO clip here instead of typing a path. It gets saved to a temp file and used as the reference. The code gives this priority over voice_path, so if both are present, the wired audio wins.
  • tts_connection (optional, but effectively required) - wire the output of an OpenAI TTS Connectivity node or the node raises "Connect an OpenAI TTS Connectivity node."

The single output, audio, is a standard ComfyUI AUDIO dict (waveform + sample_rate), so it plugs straight into the usual save/preview nodes.

How it works

The node streams the request to your TTS server through the official openai Python client, streams the generated WAV back, reads it with the wave module, and converts it to a tensor. No torchaudio, no ffmpeg - the heavy lifting happens on the server side, which is exactly why this pack's TTS half is so light.

Install

The pack itself installs like any other - ComfyUI Manager, search "comfyui-llamacpp-plus", or:

cd ComfyUI/custom_nodes
git clone https://github.com/pointave/comfyui-llamacpp-plus

Then restart ComfyUI. One real trap: the pack's requirements.txt only declares playwright, but the code imports the openai SDK at module level. If you get a load error for the whole pack, that's why:

pip install openai

You also need the TTS server itself running - that's the actual model. The connectivity node defaults to http://127.0.0.1:7778, which is where OmniVoice's server listens out of the box.

Where people get burned

  • No voice reference. Leave voice_path empty and don't wire voice_audio, and it throws - the node needs some reference to clone from. Zero-shot means no fine-tuning, not "no audio."
  • Wired audio is the boss. If you're debugging weird voices and voice_audio is connected, your carefully typed voice_path is being ignored. Disconnect the wire.
  • The server isn't running. The connectivity node refreshes the model dropdown from the server's /v1/models. Empty dropdown, no speech, all silent - check the server first.
  • Auth'd servers. That "dummy" key means your TTS server needs to run with auth off (or tolerate a fake key). Local OmniVoice does; a locked-down remote endpoint won't.

One honest caveat: this is a small, personal pack, so treat it as the thin client it is. If the TTS server is healthy, the node is a few hundred lines of glue - and glue that just works is what you want in a graph.

CategoryLlamaCPP API

Inputs (5)

NameTypeDefaultDescription
textSTRINGHello, world!
voice_pathSTRINGPath to a reference audio file (.wav/.mp3/.ogg) for voice cloning.
speedFLOAT1.000.5–2Speech speed multiplier (0.5 = slow, 2.0 = fast).
tts_connectionoptOPENAI_TTS_CONNWire an OpenAI TTS Connectivity node.
voice_audiooptAUDIOAlternatively, wire an AUDIO clip as the voice reference.

Outputs (1)

NameTypeDescription
audioAUDIO