Smart Collage Maker
Collages with actual layouts, not just a pile of rectangles
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- collage_image
Most "collage" tools in ComfyUI are grids wearing a different name - equal cells, equal sizes, boring. Smart Collage Maker actually tries to compose: it takes up to nine IMAGEs and arranges them on a canvas with varied sizes, optional rotation, and layouts that include magazine spreads and spirals. It's the artistic one in the Niutonian Smart Image Suite, and the one where you set a seed and let it do the arranging.
Pure Pillow, no models, no API - but unlike the pack's stitch nodes, this one has a real random component, so it earns its "smart."
How it works
layout_style is the star. magazine does a structured, grid-like editorial layout. scattered throws images around with rotation and overlap for a freeform mood-board look. spiral arranges them along a spiral curve - that one reads as genuinely different from a grid. photo_wall and mosaic are in the list too, but be honest with yourself: as of the current release the code routes photo_wall, mosaic, and custom to the same scattered algorithm, so those three are effectively the same layout today. magazine, scattered, and spiral are the real choices.
You control the canvas with canvas_width / canvas_height (512–4096, step 64). size_variation (none, small, medium, large, random) jitters the image sizes so the composition doesn't look assembly-line. rotation_enabled plus max_rotation (0–45°) adds tilt, and overlap_allowed lets images overlap instead of shoving apart. border_style (none, thin, thick, shadow) gives the pieces a bit of presence, spacing controls the gap in structured layouts, and background_color offers white, black, transparent, or random. The seed input drives the arrangement, so you can lock in a composition and re-roll it by bumping the seed.
Output is collage_image (IMAGE) - a single canvas at your requested resolution, ready for a Save Image. For mood boards, character reference sheets, or a "these nine images are one vibe" post, it does in one node what would otherwise be an hour of manual compositing.
Inputs that matter
layout_style-magazine,scattered, orspiral(the three that are actually distinct).canvas_width/canvas_height- pick these first; everything else scales around them.size_variationandrotation_enabled- the difference between "grid with gaps" and "collage."seed- reroll the arrangement when a composition isn't working.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/Niutonian/comfyui-niutonian-smart-image
Restart and find it under Niutonian/Image Processing. No extra dependencies beyond Pillow - no model downloads anywhere in the pack.
Fair warning: it's a brand-new implementation (the suite's initial commit is from early 2026), so layout algorithms are simple and the non-overlap placement can leave the canvas a little airy with few images. Feed it a full nine images and it behaves. And remember the photo_wall/mosaic alias caveat - if a future update implements them properly, this article will be the one that told you they weren't there yet.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| layout_style | COMBO | magazine | 6 options: magazine, photo_wall, mosaic, scattered, spiral, custom |
| canvas_width | INT | 1024512–4096 | — |
| canvas_height | INT | 1024512–4096 | — |
| size_variation | COMBO | medium | 5 options: none, small, medium, large, random |
| rotation_enabled | BOOLEAN | false | — |
| max_rotation | INT | 150–45 | — |
| overlap_allowed | BOOLEAN | false | — |
| background_color | COMBO | white | 4 options: white, black, transparent, random |
| border_style | COMBO | none | 4 options: none, thin, thick, shadow |
| spacing | INT | 100–50 | — |
| seedopt | INT | 420–999999 | — |
| image_1opt | IMAGE | — | |
| image_2opt | IMAGE | — | |
| image_3opt | IMAGE | — | |
| image_4opt | IMAGE | — | |
| image_5opt | IMAGE | — | |
| image_6opt | IMAGE | — | |
| image_7opt | IMAGE | — | |
| image_8opt | IMAGE | — | |
| image_9opt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| collage_image | IMAGE | — |