Nodes/comfyui_bmad_nodes/Repeat Into Grid (image)
ComfyUI Node Runs on cloud

Repeat Into Grid (image)

Repeat Into Grid (image) makes contact sheets without touching a pixel

By bmad4ever·Created 3 years ago·Updated 9 months ago· 70
Repeat Into Grid (image)
  • image
  • IMAGE
columns3
rows3

Repeat Into Grid (image) does exactly one thing: takes a single image and tiles it into a columns × rows grid of identical copies, returning one bigger image. That's the whole job, and it does it without any resampling, blending, or seams. Read the name carefully - this is repeat, not split. The inverse direction, splitting a grid back into individual tiles, is the pack's separate UnGridify (image) node.

Why would you want a wall of the same picture? A few honest reasons. Contact sheets and preview grids for comparing seeds or prompts against a shared baseline. Sprite-sheet layout when you're prepping game assets. And the sneaky useful one: feeding a grid into an upscaler or detailer that works better on a larger canvas, then splitting it back down. It also pairs naturally with the pack's Conditioning Grid nodes if you're building a tiled regional workflow.

How it works

The implementation is a plain tensor repeat - no computer vision involved. The image tensor is repeated along the height and width axes rows and columns times, so you get pixel-identical copies laid out in a grid. That means it's instant, deterministic, and there's nothing to tune except the two counts. columns and rows both default to 3 and cap at 8, which covers most preview-grid needs.

Inputs: image, columns, rows. Output: a single IMAGE of the full grid.

Image → Repeat Into Grid (image) → IMAGE (the grid)

If you want a grid in latent space instead, the pack has the Repeat Into Grid (latent) twin, which repeats before the VAE decode so the whole grid decodes in one pass. Different trade, same idea.

Installing

This one ships in comfyui_bmad_nodes, bmad4ever's grab-bag of API, CV, and general-utility nodes. ComfyUI Manager is the easy path - search "comfyui_bmad_nodes" (or "Bmad Nodes"), install, restart. Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/bmad4ever/comfyui_bmad_nodes
cd comfyui_bmad_nodes
pip install -r requirements.txt

Then restart ComfyUI. There are no model downloads, and this particular node is pure PyTorch, so it doesn't even need the pack's opencv requirements. The full requirements (gray2color, opencv-python ~4.8, scikit-image, simpleeval) only matter once you start using the CV nodes.

Gotchas

There's a trap in the sibling UnGridify node that you should know before you build a round-trip: ungridifying a grid whose dimensions don't divide evenly silently drops the leftover edge pixels. If you go image → grid → back, resize your image to a clean multiple of the tile size first, or you'll lose a strip off the edge and wonder where it went. Repeat itself has no such problem - it only grows the image.

Honest verdict: this is a one-liner of a node, and you'll likely reach for it only occasionally. But when you need a contact sheet or a tiled canvas, it's the most direct tool in the pack, and there's no simpler alternative hiding in core ComfyUI.

CategoryBmad/image

Inputs (3)

NameTypeDefaultDescription
imageIMAGE
columnsINT31–8
rowsINT31–8

Outputs (1)

NameTypeDescription
IMAGEIMAGE