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

OpenAI TTS Connectivity

URL, model dropdown, done

By pointave·Created 6 months ago·Updated 3 months ago· 2
OpenAI TTS Connectivity
    • tts_connection
    urlhttp://127.0.0.1:7778
    model

    OpenAI TTS Connectivity is the quieter half of the pack's text-to-speech duo, and it's the half that sets things up. It holds the address of an OpenAI-compatible TTS server and hands that connection to OpenAI TTS Speech, which does the actual talking. Same division of labor as the llama.cpp side: one connectivity node for the handshake, one node that does the work, and a custom data type - here OPENAI_TTS_CONN - to move the config between them.

    The intended server is OmniVoice (k2-fsa/OmniVoice), the zero-shot multilingual TTS model that made a splash on r/StableDiffusion in 2026 for voice cloning across 600+ languages. OmniVoice ships its own local server exposing the OpenAI-compatible API, and it listens on port 7778 by default - which is exactly what this node defaults to. The pattern should feel familiar: "OpenAI" describes the API shape, not the provider. No OpenAI account, no API key. In fact the whole pack hardcodes "dummy" as the key, so it's aimed squarely at a local server that doesn't require auth.

    What you set

    • url - where the TTS server listens. Default http://127.0.0.1:7778. Change it if your server is on another machine or port.
    • model - a dropdown of models on the server. Same behavior as its llama.cpp sibling: it starts empty and populates when you refresh, because the node asks the server's /v1/models endpoint what's actually loaded. So the server has to be running first.

    The single output, tts_connection, wires into the tts_connection input of OpenAI TTS Speech. Without that wire, the speech node refuses to run.

    Under the hood

    The node registers a few small routes on ComfyUI's own server: one to fetch the model list for the dropdown, plus unload and reload endpoints that try the various /models/unload and /models/reload paths OmniVoice and similar servers expose. That's the pack's model-lifecycle story for TTS: if your server supports it, you can unload the TTS model from VRAM between runs, same as keep_alive=0 does for llama.cpp. The node itself is about a dozen lines - it stores url and model and passes them along.

    Where people trip

    It's almost always the server. Empty model dropdown → server down, wrong port, or you refreshed before the model finished loading. Start OmniVoice first, refresh the node, then wire it up. And if you're expecting this to talk to some paid hosted TTS, read the previous paragraph again: the "dummy" key means a server that enforces real auth will just laugh at you.

    This node is about as thin as ComfyUI nodes get, and that's fine - its job is to make the connection legible in the graph instead of burying it in the speech node. Wire it, pick a model, and let the speech node do the talking.

    CategoryLlamaCPP API

    Inputs (2)

    NameTypeDefaultDescription
    urlSTRINGhttp://127.0.0.1:7778
    modelCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    tts_connectionOPENAI_TTS_CONN