图片拼接
A contact sheet without the contact sheet
- images
- IMAGE
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.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| num_columns | INT | 31–255 | — |
| match_image_size | BOOLEAN | false | — |
| max_resolution | INT | 4096 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |