lay_image_grid_note
A labeled comparison grid for ComfyUI image batches
- images
- image
Plain image grids are fine until someone asks "wait, which one was that?" lay_image_grid_note is lay_ImageGrid's more opinionated sibling: same idea of tiling a batch of images, but with row and column labels baked in, so the grid explains itself - closer to an old-school A1111 X/Y plot than a bare contact sheet.
What it does
This node is part of cardenluo's ComfyUI-Apt_Preset, a large utility pack for ComfyUI. It lives in the imgEffect group with the pack's other layout tools, and it's the one to reach for when your grid represents a deliberate comparison - different samplers across rows, different CFG values across columns, that kind of thing - rather than just a batch of random variants.
It tiles your images batch into a rows × columns layout, then writes text labels along the row and column axes using row_texts and col_texts. Both are single strings where individual labels are separated by @ - the defaults, "a@b@b" for rows and "1@2@3" for columns, show the pattern: split on @, one label per row or column in order. You control label size with font_size, spacing between tiles with gap, and the fill color behind everything with bg_color (hex string, default a near-black #0E0000).
Inputs and outputs
images- the batch to lay out.rows/columns- grid shape, each defaulting to 1.row_texts/col_texts-@-delimited label strings for each axis.gap- space between tiles (0–50).font_size- label text size (minimum 1, default 60).bg_color- background hex color for the canvas.
Single image output, ready for Preview or Save Image.
The thing to get right here is the label count: if you set rows=3 but only give two @-separated entries in row_texts, you'll come up short on labels for the third row. Match the number of @ segments to your grid dimensions before you run it.
Where this fits
Use this whenever the grid needs to communicate a variable you changed, not just "here are some outputs." Sampler comparisons, LoRA weight sweeps, seed-vs-strength matrices - anywhere you'd have built an X/Y plot manually before, this does the tiling and labeling in one node instead of composing separate text-overlay steps.
Installing it
Via ComfyUI Manager: search ComfyUI-Apt_Preset. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset.git
Then run install.bat on Windows (or install the requirements.txt by hand) and restart. No external models needed - this is compositing plus text rendering, both handled by the pack's bundled dependencies.
Troubleshooting
As with the rest of this pack, the thing to watch for first is a clean import: ComfyUI-Apt_Preset bundles a lot of functionality and dependencies, and there's a known report of it throwing IMPORT FAILED for at least one user after install - check your ComfyUI startup console for the specific missing package if the node doesn't appear, rather than assuming your workflow file is broken.
Specific to this node: mismatched label counts (fewer @-separated labels than rows or columns) will leave some tiles unlabeled or throw an index error depending on the pack's internal handling, so count your labels before running. If your labels get cut off or overlap, that's font_size relative to your tile size - the node doesn't auto-scale text to fit, so drop the font size or increase your source image resolution to give the label more room.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| rows | INT | 1 | — |
| columns | INT | 1 | — |
| gap | FLOAT | 10.000–50 | — |
| font_size | INT | 60 | — |
| row_texts | STRING | a@b@b | — |
| col_texts | STRING | 1@2@3 | — |
| bg_color | STRING | #0E0000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |