๐ท๏ธ Multiline TTS Tag Editor
A smart script box for character, language and pause tags
- text
Once your TTS script grows past a couple of lines - a narrator, two characters, a language switch here, a pause there, a fixed seed on the segment you liked - a plain text box becomes a place to make typos. This node is the fix: a proper multiline editor with tag awareness built in. It's where you write the script, and it hands the finished text to a TTS Text or TTS SRT node.
Here's the thing that confuses people looking at its inputs: the node's data contract is dead simple - text in, text out. All the intelligence lives in the editor widget itself, in the ComfyUI canvas. So don't expect a wall of parameters here; the point is what you can do inside the box.
How it works
The suite drives everything through inline tags in your text: [Alice] and [Bob] for characters, [de:Alice] for language switches, [pause:1s] for timing, <emotion:happy> and friends for engine-specific effects, [Alice|seed:42|temp:0.5] for per-segment parameter overrides. That's a lot of syntax to remember and get right. This editor gives you dropdowns and click-to-insert palettes for characters, languages, parameters, and native inline tags, with validation that catches broken syntax as you type. It's engine-aware, too - it has dedicated modes for Step Audio EditX, Higgs Audio v3, CosyVoice3, and OmniVoice so it inserts the right tag flavor for the engine you're targeting.
Beyond tags, it's just a nicer place to type: resizable fonts, undo/redo history, keyboard shortcuts (Alt+L/C/P to insert tags, Alt+1/2/3 to load presets), and up to three saved presets for scripts you reuse.
The inputs and outputs that matter
There's exactly one field and one output, and that's the point:
text- your script. Everything meaningful happens in the editor UI attached to this field, not in a pile of separate inputs.text(output) - the same string, ready to wire into the text input of ๐ค TTS Text, ๐บ TTS SRT, or any node that consumes a script.
That's it. It's a convenience layer, not a processing node - it doesn't transform your text, it just makes it far easier to author correctly.
Installing it
Comes with the pack. ComfyUI Manager โ search "TTS Audio Suite" โ install โ restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/diodiogod/TTS-Audio-Suite.git
cd TTS-Audio-Suite
python install.py
No model downloads - it's a pure UI node, so it loads instantly once the pack is installed. Restart ComfyUI and look for it under the string utilities.
Common issues & troubleshooting
The fancy editor doesn't show up. This node's value is entirely in its custom frontend widget. If you see a plain text box instead of the rich editor with dropdowns, your ComfyUI frontend didn't load the pack's JavaScript - do a hard browser refresh (Ctrl+Shift+R), and if that fails, restart ComfyUI so the web assets register. Custom-node UI not loading is almost always a stale browser cache or a frontend that didn't pick up the extension.
A tag isn't doing anything downstream. The editor helps you write valid tags, but whether a tag works depends on the engine you feed the text into - a <emotion:...> tag means nothing to an engine that doesn't support it. Match the editor's engine mode to the engine node you're actually using.
Presets vanished. The three preset slots are per-node; they save with your workflow, so a fresh graph starts empty. Save your workflow to keep them.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | โ |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | โ |