Nodes/ComfyUI-ADIC/图片拼接
ComfyUI Node

图片拼接

A contact sheet without the contact sheet

By jinchanz·Created about a year ago·Updated a day ago· 5
图片拼接
  • images
  • IMAGE
num_columns3
match_image_sizefalse
max_resolution4096

Run a batch of generations and you'll want to see them all at once without dragging eight preview nodes around. MaletteImageConcatFromBatch takes a batched IMAGE tensor and flattens it into a single grid image with a set number of columns. It's the ComfyUI equivalent of a contact sheet, which is a surprisingly useful thing to have when the alternative is eyeballing one image at a time.

Mechanically it's straightforward: it takes your batch, computes how many rows you need (ceil(batch / columns)), lays the frames out row by row, and returns one image. Two knobs control the fiddly bits:

  • num_columns - default 3, up to 255. Three columns is the sweet spot for eyeballing.
  • match_image_size - off by default. When on, it resizes each frame to match the first frame's dimensions (preserving each image's own aspect ratio) so the grid isn't ragged. When off, all frames get squashed to the same cell size anyway via bilinear resampling.
  • max_resolution - default 4096. If the full grid would exceed this on either side, the whole thing is scaled down proportionally (and snapped to multiples of 8). That's your guardrail against a 50-image batch producing a 20k-wide monster that melts the preview.

The output is a single IMAGE - one frame in the batch dimension, ready for a Preview Image node. The author's description calls it a "grid with a specified number of columns," and that's exactly what you get.

Where it shines

It pairs naturally with the API generation nodes in this pack - ADICOpenAIGPTImage1 with n set to 8, or an IdeaLabImageGenerate batch, both return multiple images in one tensor. Run them through this node and you get one tidy overview instead of eight. It's also handy for comparing seed variations or LoRA ablations when you've stacked several runs into a batch.

Honest notes

The category is KJNodes/image because this is a KJNodes-style utility that got folded into the pack - if you already have Kijai's ComfyUI-KJNodes installed, you probably have an equivalent (and better-documented) node, so this one is only worth reaching for if you're keeping your dependency list short. Also note the resize path is bilinear, so don't use this for final output - it's for viewing. Save individual frames before you need quality.

Installing

cd ComfyUI/custom_nodes
git clone https://github.com/jinchanz/ComfyUI-ADIC

Restart ComfyUI, or grab "ComfyUI-ADIC" from ComfyUI Manager. Pure PyTorch, no extra pip packages, no model downloads. The pack README never mentions it; the source (module/nodes_image_utils.py) is the spec.

CategoryKJNodes/image

Inputs (4)

NameTypeDefaultDescription
imagesIMAGE
num_columnsINT31–255
match_image_sizeBOOLEANfalse
max_resolutionINT4096

Outputs (1)

NameTypeDescription
IMAGEIMAGE