Nodes/Allor Plugin/ImageBatchJoin
ComfyUI Node

ImageBatchJoin

Stitch two image batches into one, without the drama

By Nourepide·Created 3 years ago·Updated 2 years ago· 295
ImageBatchJoin
  • images_a
  • images_b
  • IMAGE

ImageBatchJoin is the ComfyUI equivalent of tying two bundles of cables together: it takes two batches of images and returns one batch that is the first followed by the second. If you've ever split a batch in half, processed the halves differently, and then needed to put everything back before a single batch-size-N run - this is the node that closes the loop.

It's part of the Allor Plugin (Nourepide/ComfyUI-Allor), a 90+-node image-processing suite, and it lives alongside batch siblings like ImageBatchFork (split a batch into two) and ImageBatchPermute (reorder it). Think of those three as the plumbing for "do different things to different images, then merge."

How it works

Under the hood it's a one-liner: torch.cat((images_a, images_b)) along the batch dimension. No resizing, no blending, no padding - just concatenation. Output order is exactly A-then-B.

That simplicity has one real constraint, and it's the thing that trips people up: both inputs must have identical height, width, and channel count, or the node raises a ValueError. The error message is actually helpful - it tells you to fix the mismatch with ImageTransformResize (same pack) for size, or the AlphaChanel module for channel-count mismatches. In practice, the mismatch you'll hit most is a 3-channel RGB batch against a 4-channel RGBA batch. The Allor pack is all-in on transparency, so half its outputs carry an alpha channel; if one half of your join is RGBA and the other is RGB, you'll see it fail right here.

The inputs that matter

Just two required inputs, both IMAGE:

  • images_a - first half of the combined batch.
  • images_b - second half.

No options, no modes, no enums. The single output is IMAGE, the concatenated batch. Wire it into whatever downstream node wants a bigger batch - a sampler that runs all images at once, a batch-aware upscaler, or the batch output of a Save Image grid workflow.

Where you'd actually use it

A classic pattern: generate a batch of 8, use ImageBatchFork to split into two groups of 4, upscale or denoise the two halves with different settings, then join them back so you save one clean batch of 8. Or combine two separately-queued generations (one from a different seed path) into a single contact-sheet-style save. Since it's a pure tensor op, it's also fast and free on VRAM - there's no reason to route around it.

Installing it

This node ships in the Allor Plugin, so you install the pack, not the node:

cd ComfyUI/custom_nodes
git clone https://github.com/Nourepide/ComfyUI-Allor

Or search "Allor" in ComfyUI Manager and hit install - easier, and Manager also handles the requirements. Restart ComfyUI after. requirements.txt pulls in rembg and onnx (those serve the pack's background-segmentation module, not this node) plus gitpython for the auto-updater.

Two Allor quirks worth knowing. Auto-update is on by default - it checks at startup and silently pulls; flip updates.auto_update to false in config.json if that annoys you. And the repo was rebased to strip images from history (it shrank ~344x), so old installs can break on git pull; the README links troubleshooting guides for exactly that, and a fresh clone is the fastest fix if updates start erroring.

Common issues

The one real failure mode is the shape mismatch above - double-check channel counts (RGB vs RGBA) before wiring this in. There's also almost no community write-up of this pack yet (it barely shows up on reddit), so when you hit something weird, the author's docs at nourepide.github.io/ComfyUI-Allor-Doc are your better bet than a forum search. It's a niche pack; the docs are genuinely good.

Categoryimage/batch

Inputs (2)

NameTypeDefaultDescription
images_aIMAGE
images_bIMAGE

Outputs (1)

NameTypeDescription
IMAGEIMAGE