Nodes/ComfyUI-Pixaroma/Image Grid Pixaroma
ComfyUI Node

Image Grid Pixaroma

Your folder run made 40 images and the preview showed you one

By pixaroma·Created 7 months ago·Updated about 17 hours ago· 463
Image Grid Pixaroma
  • images
  • before
  • grid
◄columns0►
◄cell_size384►
◄gap8►
◄backgrounddark►
◄show_namestrue►
◄title►
◄names—►

Run a folder of forty pictures through a workflow and ComfyUI offers you one preview: the last one. Image Grid Pixaroma is the fix - it collects everything the run produced and lays it out as a single sheet, one file name under each picture, ready to save or post.

If you've ever done a batch and then clicked through forty output files to check them, that's the problem this solves.

How it works

This is a list node, and that's the whole mechanism. When a node with a list input (Load Images from Folder, a Loop, a Prompt-Each style node) feeds the graph, the graph runs once per item, and a normal node only ever sees its own item. Image Grid declares itself a list input, so ComfyUI hands it the entire list in a single call - which is why it can see all forty at once. It also accepts a plain batch, and it splits batches into individual frames before laying them out.

From there it's a compositor. Each picture is thumbnailed so its longest side is cell_size, and the grid is assembled on a solid background. A few details worth knowing because they're where hand-rolled grids look bad: the cell takes the shape of the incoming pictures rather than being a square, so wide landscape shots don't float in a band of empty background; RGBA frames get composited onto your chosen background colour instead of being alpha-sheared; names too long for the cell get shortened with an ellipsis. And it's bounded - up to 1024 pictures are used, and the finished sheet is scaled down to keep its longest side at 8192 pixels.

The inputs you actually touch

images is the only one you have to wire. Everything else has a sane default.

  • columns - default 0, which picks a near-square grid by itself (it scores the shape against the empty cells, so four before/after pairs land as four in a row rather than three plus a lonely one). Set it to 5 if you want five across. Max 64.
  • cell_size - 384 by default, the longest side of each cell in pixels. Purely a readability knob; it doesn't resize your saved images.
  • background - dark by default, with the label colour picked to read on it. white, black and grey are the others.
  • title and show_names - a banner across the top, and the label under each cell.

Two optional inputs do the interesting work. before takes the original pictures, in the same order, and draws each one above its result - that's your before/after sheet, and it doubles the cell height. names takes a per-picture name, typically Load Images from Folder's filename output; without it, the cells are just numbered.

The output

One output, grid, one IMAGE. Wire it into Save Image Pixaroma (or any save node) and the sheet is yours. It also renders on the node itself through ComfyUI's ordinary preview, so you can look at the grid without adding a save node - handy while you're tuning columns and cell size.

The one trap: don't put it after a gate

If any picture in the list was held back - by a gate like Text Match's if_match, or anything else that stops an item mid-run - ComfyUI skips the whole grid, silently. There's no error, you just get nothing. The grid needs the entire list to build, so it can't run on a partial one. Put the grid before the gate, or wire the unfiltered list into it, if you want the sheet to include everything.

Also: if nothing arrives, you get a plain error telling you to wire the images output of whatever makes or loads them - usually a sign you wired the grid off a node that runs once rather than per item.

Installing

ComfyUI Manager, search Pixaroma, Install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/pixaroma/ComfyUI-Pixaroma

then restart. No models, no extra dependencies for this node - the pack's only declared dependency is imageio-ffmpeg (for the video nodes), and it leans on ComfyUI's own torch, PIL and numpy. Its font is bundled, with a system fallback if it can't load.

One thing to expect with this pack generally: it's a solo project by the designer behind Pixaroma (@pixaroma on YouTube), updated constantly, with support on the Pixaroma Discord rather than GitHub. After an update, hard-refresh your browser tab (Ctrl+Shift+R) before you conclude a node is broken. Windows users on ComfyUI Easy Install already have it.

Category👑 Pixaroma/🖼️ Image

Inputs (9)

NameTypeDefaultDescription
imagesIMAGEThe pictures to collect, usually the results of a folder or list Run. A batch works too.
columnsINT00–64How many pictures side by side. 0 = automatic, a near-square grid.
cell_sizeINT38464–2048The size of each picture in the grid, in pixels (its longest side). The picture keeps its shape.
gapINT80–128The space between the pictures, in pixels.
backgroundCOMBOdarkThe colour behind the pictures. The names are written in a colour that reads on it.
show_namesBOOLEANtrueWrite each picture's name (or its number) under it.
titleSTRINGOptional. A title across the top of the grid.
beforeoptIMAGEOptional. The original pictures, in the same order: each one is shown above its result.
namesoptSTRINGOptional. A name for each picture, for example Load Images from Folder's filename output. Not wired: the pictures are numbered.

Outputs (1)

NameTypeDescription
gridIMAGEThe grid as one picture. Wire it into Save Image Pixaroma to keep it.