Nodes/ComfyUI_Hangover-Utils/Hangover Multi String Concatenate
ComfyUI Node

Hangover Multi String Concatenate

Hangover's StringConcat is the glue you keep forgetting

By Hangover3832·Created about a year ago·Updated a day ago· 1
Hangover Multi String Concatenate
  • text
  • string
delimiter

Every ComfyUI workflow is maybe 70% plumbing, and Hangover's Multi String Concatenate is plumbing at its purest: take up to 25 strings, join them with a delimiter you pick, hand back one string. That's the entire job. It's the node you reach for the moment you stop typing prompts by hand and start building them - a base subject in one field, a style block in another, a LoRA trigger word you want to toggle without editing the whole prompt. Assemble it once, wire the single result into as many CLIP Text Encode boxes as you like.

It ships in the ComfyUI_Hangover-Utils pack, a small grab-bag of utilities the author candidly describes as a "learning work in progress" tested on Windows 10. Don't read that as a reason to run. This node is about as simple as a custom node gets, and simple is exactly what you want from a string joiner.

How it works

The mechanism is one line of Python under the hood: delimiter.join(...) over the values of its text inputs. No API calls, no model files, no GPU - it's pure string assembly, so it runs instantly and can't bake anything weird into your latent.

The interesting bit is the input, which is an autogrow field. Instead of a fixed set of sockets, the node grows more text inputs as you add them - up to 25 - so you never have a node with three lonely unused sockets because you needed four. That autogrow mechanic is part of ComfyUI's newer V3 node-authoring API, and it's also the thing most likely to bite you: this pack is written against comfy_api.latest, so on an older ComfyUI install the node simply won't appear.

Inputs and outputs

  • text - the strings to join. Autogrow, 0 to 25 fields. Type into each, or wire in another string node.
  • delimiter - what goes between them. Default is an empty string. This is the one field that actually matters, and the one beginners burn themselves on: type two words with the default and you get helloworld. For prompt fragments you almost always want ", " (comma-space); for filenames maybe _; for multi-line prompts a newline.

Output is a single string. Wire it into a CLIP Text Encode's positive prompt by right-clicking that widget and converting it to an input (a "Convert widget to input" moment the KB's plumbing essay covers), or into anything else that eats a string - a filename for a Save Image node, a wildcard parser, another concat.

One quiet trap: the autogrow field permits zero inputs, and zero inputs yields an empty string. If your prompt suddenly comes back blank, check that you actually connected a text field rather than just looking at the node.

Installation

Through ComfyUI Manager: search "Hangover" (or paste the repo URL into "Install via Git URL") and restart. Manual path:

cd ComfyUI/custom_nodes
git clone https://github.com/Hangover3832/ComfyUI_Hangover-Utils

Restart ComfyUI. No model downloads - nothing about this node needs weights.

Gotchas

  • The pack installs heavier than this node needs. requirements.txt pulls in sympy, pyperclip, pyperclipimg, and pillow-avif-plugin - all for sibling nodes in the pack (the math interpreter, the clipboard copy). Harmless weight, but don't be surprised Manager installs extras you'll never touch for a concat.
  • Recent ComfyUI required. No V3 schema support, no node. If it's missing from your menu after install, update ComfyUI itself first.
  • The name lies in a good way. The display name is "Hangover Multi String Concatenate" but the class is hangover_StringConcat - you'll find it by searching either.

There's nothing glamorous here, and that's the point. Core ComfyUI gives you a PrimitiveString for holding one value, but when you need one value out of many, this is the boring little node that does it without ceremony.

CategoryHangover

Inputs (2)

NameTypeDefaultDescription
delimiterSTRING
textCOMFY_AUTOGROW_V3

Outputs (1)

NameTypeDescription
stringSTRING