Better Multiline String π‘
The ComfyUI Text Box That Finally Stops Eating Your Words
- STRING
Let's be honest about what this node is: it's one tiny text box. But it fixes a ComfyUI annoyance that has quietly driven people up the wall for years. When you drag a stock Primitive String node into a workflow and convert it to a widget - say, to drive the filename of the Save Image node - ComfyUI renders it as a single-line field. Paste in a filename template with your checkpoint name, a datetime, and prompt details, and half of it gets visually cut off. You can't tell what you wrote, you can't check the syntax, and every edit is a guessing game. Better Multiline String π‘ (class BetterString) just defaults to a multiline box so the whole thing stays visible. That's the entire pitch, and honestly, it's enough.
The author of ComfyUI Better Strings knows it's a modest fix. The README literally opens by saying "you don't need this" - which is refreshingly honest for the custom node ecosystem. This is a nicety node, not a workflow backbone. Reach for it whenever you're wiring text into a node that only gives you a cramped single-line widget: filename templates, prompt fragments, metadata you want to read at a glance.
How it works
Look at the code and it's about as deep as a puddle. The node has one required input, string, declared as a multiline: true STRING - that flag is the whole reason it exists, because it's what keeps the box multi-line. Whatever you type passes straight through to the single STRING output, unchanged.
There's also an optional chain input (single-line STRING), and this is where it gets slightly more interesting. Wire another string into chain and the node joins them together: it trims trailing whitespace, appends a comma if one isn't already there, adds two newlines, then tacks on your string. Feed the output of one Better String into the chain of another and you get a clean, comma-separated list - which is the pack's low-key answer to concatenation. It's also why the README says the node connects easily to rerouting nodes: chain is marked forceInput, so it shows up as a wire-in-only port, not a field you type into. If you leave it empty, the node is a pure pass-through.
The inputs that matter:
string- the multiline text you're editing. This is the one you'll actually touch.chain- optional join input. Wire in another string and it gets prepended with comma + blank-line separation.- Output
STRING- your text, ready to feed any node that takes a string.
Installing it
This is the easiest install you'll hit all day. The pack ships no requirements.txt, no model files, no heavy Python deps - just one .py file and an __init__.py. Through ComfyUI Manager, search for ComfyUI Better Strings and hit install. Or, the manual way:
cd ComfyUI/custom_nodes
git clone https://github.com/HaydenReeve/ComfyUI-Better-Strings/
Then restart ComfyUI. The node shows up under the Better Things π‘ category (its display name is "Better Multiline String π‘"). It's also registered with the Comfy Registry, so Manager should find it without hunting.
Gotchas
Honestly, there aren't many. The one thing that trips people up is chain: because it's forced to be an input, beginners sometimes wonder why they can't type in the second field - there isn't one. If you're not chaining nodes, just ignore it. And remember the comma behavior: if you use chain, a comma gets appended automatically if it's missing, so don't hand-write one unless you want two. Keep expectations level - this node won't parse wildcards or do fancy templating (the author has hinted those are future plans, but today it's a box). For a text utility this unopinionated, that's the whole review: it does one thing, it does it without breaking anything, and it fixes a real annoyance in about ten seconds of work.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| string | STRING | β | |
| chainopt | STRING | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | β |