๐ผ๏ธ Multi-Image Collage
Stitch up to five images into a collage, direction per image
- image1
- image2
- image3
- image4
- image5
- OUTPUT
Every serious workflow eventually needs to bolt images together - a before/after pair, a row of variants, a contact sheet. ComfyUI's ImageConcatenate handles the plain side-by-side case, but the moment you want different arrangements or more than two images you're juggling multiple nodes. MultiImageConcatenate does up to five images in one node, and gives each one its own direction: this one goes right, that one goes down. It's the collage node for people who'd rather not think about collage at all.
The inputs that matter
image1(required) plus optionalimage2โimage5- the inputs.image1is the only mandatory one; a single image just passes through unchanged.direction1โdirection5- per-image placement, each a dropdown with two choices:rightordown. The second image attaches to the right of whatever's been built so far, or below it. So "image2 down" means "below image1," "image3 right" means "right of the current two-image result," and so on.padding(INT, 0โ100) - gap in pixels between merged images. Default 0.
Output is a single OUTPUT (IMAGE) with everything fused. Wire that into a Save Image or a preview.
The gotcha that will bite you (different sizes)
Here's the part the README doesn't warn you about: the output canvas is zero-filled. When two images have different dimensions, the result is padded with black (value 0) on the sides where the smaller image doesn't reach - the merge places each image at the top-left of its region and leaves the rest black. If you're merging a 1024ร1024 with a 768ร768, you'll get a black bar, not a scaled-to-fit layout.
So the rule for clean results: pre-size your inputs before this node - core ImageScale or the pack's own batch-to-grid node are your friends. Equal sizes, or at least equal along the direction you're not merging, and the collage comes out seamless. If your images are all the same size, this node is dead simple and predictable: right gives you a horizontal strip, down gives you a vertical one, and mixing the two builds L-shaped and grid-ish layouts.
When you'd reach for it
- Before/after and comparison shots - A/B two generations side by side and save one image.
- Grids and contact sheets - stitch the row, then the rows together, using
downfor the second pass. - Batch previews - merge the outputs of several passes into one file for quick review instead of five downloads.
It's a bit of a one-trick node - no resizing, no alignment options, no background color choice - but the trick it does, it does with less wiring than the alternatives.
Install
Pack: InitialB Util. ComfyUI Manager โ search "InitialB Util" โ Install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/benjiyaya/Comfyui_InitialB_Util
cd Comfyui_InitialB_Util
pip install -r requirements.txt
Restart ComfyUI. No model downloads; dependencies are torch/numpy/scipy/Pillow, all bundled. Note the README's clone URL is a yourusername placeholder - use the real repo above or Manager. It lives under InitialB/image/collage in the menu.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| image1 | IMAGE | โ | |
| direction1 | COMBO | right | 2 options: right, down |
| image2opt | IMAGE | โ | |
| direction2opt | COMBO | right | 2 options: right, down |
| image3opt | IMAGE | โ | |
| direction3opt | COMBO | right | 2 options: right, down |
| image4opt | IMAGE | โ | |
| direction4opt | COMBO | right | 2 options: right, down |
| image5opt | IMAGE | โ | |
| direction5opt | COMBO | right | 2 options: right, down |
| paddingopt | INT | 00โ100 | โ |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| OUTPUT | IMAGE | โ |