πͺ Image Layout
Build labeled comparison grids in ComfyUI
- image1
- image2
- image3
- image4
- image5
- image6
- image
This node takes up to six separate images and arranges them into a single composite - a row, a column, or an auto grid - with optional text labels. If you've ever wanted a clean side-by-side to compare two samplers, a before/after, or a sweep of CFG values, this is the node that builds it for you inside the workflow instead of you screenshotting and pasting things together afterward.
It's a presentation and QA tool, not an image processor. The output isn't meant to feed a sampler; it's meant for your eyes - a tidy contact sheet you can save, post, or glance at to decide which variation won.
How it works
You wire your images into the numbered inputs and the node stitches them onto one canvas according to mode, resizing each to fit within max_size so the composite stays a sane size. If you provide a label, it draws that text onto the layout at the chosen font_size and alignment. It's all pixel compositing - fast, no model involved.
The inputs and outputs that matter
image1throughimage6(all optional) - the images to arrange. Feed as few or as many as you want; empty slots are skipped.mode-row(side by side),column(stacked), orauto(let the node pick a grid).autois the safe default for 3+ images.max_size- caps the working size of each tile so a six-up of 2K renders doesn't produce a monster. Defaults to 1024.label- caption text drawn onto the layout. Pair withfont_sizeandalignto control how it reads.sort-Left-RightorRight-Left, i.e. which direction the images fill in.
One image out - the finished composite.
How to install it
ComfyUI Manager: search SDVN_Comfy_node, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/StableDiffusionVN/SDVN_Comfy_node
then pip install -r custom_nodes/SDVN_Comfy_node/requirements.txt from your ComfyUI root, and restart. It's under SDVN β Image. No models or keys.
Common issues & troubleshooting
Images are different sizes and the layout looks ragged. The node fits each to max_size, but wildly different aspect ratios will still leave uneven tiles. For the cleanest grid, feed images that share an aspect ratio, or accept that portrait-next-to-landscape will never pack perfectly.
Labels are cut off or tiny. font_size is in pixels relative to the composite, so on a large max_size a small font vanishes. Bump font_size up, and keep label text short - this is a caption, not a paragraph.
I want captions per image, not one for the whole layout. This node takes a single label for the composite. Per-tile captioning isn't what it does; if you need that, label each image before it goes in.
It only takes six. That's the ceiling - image1 to image6. For bigger contact sheets you'd chain layouts (lay out six, then feed that plus more into a second one) or use a dedicated grid node.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | 3 options: row, column, auto | |
| max_size | INT | 1024 | β |
| label | STRING | β | |
| font_size | INT | 40 | β |
| align | COMBO | 3 options: left, center, right | |
| sort | COMBO | Left-Right | 2 options: Left-Right, Right-Left |
| image1opt | IMAGE | β | |
| image2opt | IMAGE | β | |
| image3opt | IMAGE | β | |
| image4opt | IMAGE | β | |
| image5opt | IMAGE | β | |
| image6opt | IMAGE | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |