ComfyUI Node

Join

One node to concat strings, lists, images, or pipes β€” whichever you feed it

By r-vageΒ·Created 10 months agoΒ·Updated a day agoΒ· 31
Join
  • input_1
  • input_2
  • output
β—„inputcount2β–Ί
β—„delimiter, β–Ί

Join is Eclipse's answer to "I have several of these and I want them to be one of these." Depending on what you feed it, it concatenates strings, merges lists, stacks images into a batch, or bundles masks - a single any-type node that adapts to its inputs. Up to 64 of them. That flexibility is the point: in a busy workflow you don't want to hunt for four different concat nodes when one node that reads its input type can do the job.

The type-dependent behavior

  • Strings: joined with the delimiter (default ", "), and \n in the delimiter becomes a real newline. This is the most common use - gluing prompt fragments, tags, or captions into one string.
  • Lists: merged together into a single list.
  • Images: stacked into one batch tensor. Here's the subtle bit: images of different sizes get resized to match the first image's dimensions before stacking, using bilinear interpolation. So order matters - the first input sets the shape everyone else conforms to. Feed it a mixed-size batch and expect a uniform-size batch out.
  • Masks: same stacking logic, matched to the first mask's dimensions.

The delimiter input is ignored for IMAGE and MASK - no one wants a comma between pixels. The inputcount slider (default 2, up to 64) decides how many input_X sockets exist; only the first inputcount inputs are used, so you can grow the node as you add sources without it sprouting 64 sockets at once.

Inputs and output

  • inputcount - how many inputs to activate (1–64, default 2).
  • input_1, input_2, … - the values to join. All *-typed, so each accepts a string, list, image, or mask - but the source code handles them per-type, and mixing types in one node will produce unexpected results. Join like with like.
  • output - a single * output carrying the joined result.

The one trap: because the inputs are wildcard-typed, ComfyUI won't stop you from wiring a string into slot 1 and an image into slot 2. That's on you. If you're joining strings, keep them all strings.

Where it fits

String joining is the everyday case - a prompt built from a few parts, or a filename assembled from segments before hitting a save node. The batch behavior is the less obvious one: if you have images coming from multiple sources and you need them in one tensor before a batch-aware node, Join handles it, including the resize-to-match step that most stack nodes quietly require anyway.

Install

Part of ComfyUI_Eclipse:

cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI_Eclipse

Or install ComfyUI_Eclipse from ComfyUI Manager and restart. It's pure Python plus torch tensor ops, all already in the pack's dependencies. For a "simple" utility this one has real range - just remember the type-matching rule and that first-image-wins sizing behavior, and it'll do whatever you throw at it.

CategoryπŸŒ’ Eclipse/ Conversion

Inputs (4)

NameTypeDefaultDescription
inputcountINT21–64Number of inputs to join. Only the first 'inputcount' input_X values will be used.
delimiteroptSTRING, Delimiter for STRING types. Use \n for newline. Ignored for IMAGE/MASK.
input_1opt*Input #1.
input_2opt*Input #2.

Outputs (1)

NameTypeDescription
output*β€”