SpeechSynthesis @Liam
Text in, the same text out — no audio is generated
- STRING
Here's the short version: this node does not synthesize speech. Despite the name - which will make you think of ElevenLabs, Piper, or any of the decent text-to-speech nodes in the ecosystem - its entire implementation is one line that echoes its input back. You give it a string, it hands the same string to the UI and returns it unchanged. There is no TTS model, no audio output, no sound anywhere in the pack.
That's not me being dramatic; it's the source. The class has a single text input, a run() that returns {"ui": {"text": text}, "result": (text,)}, and nothing else. The STRING output it declares is just the input string again. As an output node it does force its branch to run and displays the text on the graph - which is the only real effect it has. Functionally, it's a Display Text node wearing a speech-synthesis costume.
Inputs and outputs
text- a STRING, forced input, so you have to wire it from something that produces text.- Output:
STRING(marked as a list, echoing the input). That's the whole surface.
There are no voices, no model selection, no audio file produced - nothing to configure because there's nothing under the hood.
Installing it
Ships in LiamUtil:
cd ComfyUI/custom_nodes
git clone https://github.com/ai-liam/comfyui-liam
pip install -r requirements.txt
or ComfyUI Manager → search LiamUtil → install → restart. Like its sibling SpeechRecognition @Liam in the same pack, it needs nothing beyond the shared opencv-python dependency.
Where people get burned
Same story as the recognition node, from the other direction. The name promises audio generation; the node delivers text pass-through. If you wire this in expecting an audio asset or a TTS service call, you'll get a string back and no sound. The useful habit here is the same: the pack is tiny and fully readable, so when a node's name seems too good for its size, check the source before wiring it into a pipeline. If you actually want speech synthesis in ComfyUI, use a dedicated TTS pack - there are several real ones. Treat this node as a display/glue utility in the author's personal toolkit, not as a TTS engine, and you won't be disappointed because you won't expect anything from it.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |