Make Image Grid
Your contact sheet, built in
- images
- images
After a long seed-farming run you've got 12 images and you want to see them all at once - which is a "4×3", a contact sheet, a grid. Make Image Grid arranges a list of images into exactly that: one output image with all the inputs laid out in rows and columns. It's the built-in answer to the eternal "compare my batch" need, and it beats gluing things together in an image editor by about a hundred clicks.
How it works
The mechanism is pleasantly mechanical:
- Decide the grid shape from
columnsand how many images you have. Rows = ceil(image count / columns), so 10 images at 4 columns → 3 rows (the last row has 2). - Make a blank grid canvas sized
columns × cell_widthbyrows × cell_height, plus padding between cells. The background is black. - Resize every image to the cell size with Lanczos, and paste it into its slot, row-major: position 0 is top-left, filling left-to-right, then down.
The output is a single image, not a batch - the whole sheet as one IMAGE. So this is a terminal-ish node: you usually wire it into a Save Image or a preview, not back into the middle of a pipeline.
The inputs that matter
- images - the list of
IMAGEs to arrange. Order is preserved: first in, top-left. - columns (default 4, 1–20) - columns in the grid. Rows follow automatically.
- cell_width (default 256, 32–2048) and cell_height (default 256, 32–2048) - the size of each cell.
- padding (default 4, 0–50) - gap between cells, in pixels.
- Output: one IMAGE, the finished grid.
The only settings a beginner really touches are columns and maybe the cell size. The defaults - 4 columns, 256px cells, 4px padding - make a sensible 4-column contact sheet, which is exactly what you want for comparing a batch.
Where it shines
- Batch review. Generate 16 images, grid them into a 4×4, save once, and read the whole run on one screen.
- Seed comparison. Grid is the natural output format for "same prompt, different seeds" - glance, pick the winner, then go back and upscale just that one.
- Dataset eyeballing. After a shuffle and a dedupe, a grid is the fastest way to scan a folder of training images.
Gotchas
- Aspect ratio distortion. Every image is resized to the square cell size regardless of its own aspect. A 512×768 portrait gets squashed into 256×256. If you don't want distorted thumbnails, pre-crop or pre-resize your inputs to match the cell's aspect ratio before gridding. This is the most common surprise, and there's no "maintain aspect" switch.
- Last row is partial. 10 images at 4 columns leaves the last row with 2. That's expected, not a bug.
- Black gutters. The background is black. If your images are near-black and you're saving as a format with heavy compression, the seams can get ugly. Mostly a non-issue.
- It resizes everything. No "original size" mode. Grids are previews, not archives - keep your originals in the graph if you need full res later.
One honest note: for serious batch review with labels, per-image captions, and aspect-fit behavior, community nodes do a richer job. But this one ships with core, needs zero installs, and for "show me my 16 seeds in one picture" it's perfectly adequate.
Ships with ComfyUI core (newer experimental family - update if missing). No models, no install. Grid it, save it, move on.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | List of images to process. | |
| columns | INT | 41–20 | Number of columns in the grid. |
| cell_width | INT | 25632–2048 | Width of each cell in the grid. |
| cell_height | INT | 25632–2048 | Height of each cell in the grid. |
| padding | INT | 40–50 | Padding between images. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | Processed images |