concat Strings _O
A two-string concat from the pack's prehistory (and why it's stuck on the old STR type)
- string1
- string2
- STR
concat Strings _O is the simplest node in this pack, and also one of the most telling. It takes two strings, joins them, and hands you the result. That's it. No separator control, no trim, no options - literally string1 + string2, shoved through the pack's old STR type.
If that sounds like something you could do with ten other nodes, you're right, and that's exactly why it's deprecated. This is a fossil from the Quality of Life Suit's first iteration, preserved under O/deprecated/string/operations so that workflows saved years ago still load. The modern replacement is Concat Text _O, which takes up to thirteen inputs and lets you pick a separator. For any new graph, use that one.
The mechanism and the catch
Two inputs, one output:
- string1 (STR)
- string2 (STR)
- output: STR
The source is about as minimal as a custom node gets:
return ({"string": string1["string"] + string2["string"]},)
Notice the shape of the inputs - they're {"string": ...} dicts, which is the signature of the old STR type this pack used before ComfyUI's standard STRING existed. That's the trap. You can't feed it from a modern Text node or a Text _O; the types don't line up, so the wire just won't connect. To use this node at all you have to produce STR inputs from its deprecated-era siblings, like String _O. At that point you're maintaining a compatibility shim for a compatibility shim, and the honest move is to delete all of it and rebuild with the current nodes.
Why old packs keep this stuff
ComfyUI's whole culture is "workflow included" - a graph is a JSON blob that lives inside the output PNG. When someone's three-year-old masterpiece has a concat Strings _O in it, the pack needs to keep shipping that class or the drag-in fails with a missing-node error. That's the ecosystem bargain described in the KB's ComfyUI ecosystem doc: thousands of community nodes, no sandbox, and every update is a roll of the dice for compatibility. Packs like this one deal with it by keeping a deprecated file around that maps old class names to working code. It's why "deprecated" here doesn't mean "broken" - it means "kept alive for old graphs, not for you."
Install
It ships in the Quality of Life Suit - install the pack once and everything under O/ comes with it:
cd <ComfyUI root>/custom_nodes
git clone https://github.com/omar92/ComfyUI-QualityOfLifeSuit_Omar92.git
Then restart ComfyUI; new nodes don't appear on a browser refresh. One thing to know: the pack auto-updates on every start via a config.json it generates, and the pack's author has flagged deprecated nodes for future removal. If a loaded workflow ever reports this node missing, swap it for Concat Text _O and reconnect - two inputs become text1/text2 and the output type is the standard STRING, so it's a ten-second fix.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| string1 | STR | — | |
| string2 | STR | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STR | STR | — |