XY Grid Accumulator
The node that waits until the grid is full, then draws it for you
- images
- xy_grid_control
- images
XY Grid Accumulator is the quiet half of this pack's grid system. The Helper decides which combo you're on; this node collects the images until the grid is complete, holds everything downstream, and then - and only then - assembles the final annotated grid and passes it on. If you've ever watched a grid workflow emit one image per prompt and wondered who glues them together, this is that node.
You wire it after your VAE Decode (its images input), feed it the xy_grid_control output from XY Grid Helper, and it does the rest.
How it works
It's a stateful node, which is unusual for ComfyUI and worth understanding so it doesn't surprise you:
- On every execution it appends your incoming
imagesto a batch it keeps in memory from previous runs. - It compares what it has against the target count packed inside
xy_grid_control(which comes frompage_sizeand your grid dimensions). - Not full yet? It returns an
ExecutionBlocker, which tells ComfyUI to skip everything downstream of it. The run "finishes" but no image leaves the graph - and the node previews the accumulated images so far, so you can watch the grid grow. - Full? It builds a graph on the fly - this is ComfyUI's node expansion feature - injecting GridAnnotation and ImagesGridByColumns from the
images-grid-comfy-pluginbehind the scenes, and emits the assembled grid with row/column labels.
That last part is why the dependency exists: the pack itself contains zero grid-rendering code. It delegates to LEv145/images-grid-comfy-plugin through graph expansion, which is elegant and also the first thing to break if you're missing that plugin.
The inputs
- images - your generated IMAGE tensor, straight off the VAE decode.
- xy_grid_control - the control tuple from XY Grid Helper. Don't substitute anything else here; it encodes the grid size, labels, font size, and gap.
Output: a single IMAGE - the finished grid, only once it's complete.
The mental model (and the trap)
Because downstream is blocked until the grid is done, your last queued prompt appears to do nothing - the grid image arrives as the final output of the whole run. That's not a bug. It's why the community ritual exists: queue exactly as many prompts as the Helper's counter demands.
Two failure modes bite beginners:
- "It never outputs anything." You queued fewer prompts than the grid needs. The counter on the Helper tells you the target - hit it.
- "Where's ImagesGridByColumns?" The plugin isn't installed, so graph expansion can't find it. Install images-grid-comfy-plugin via Manager and restart. This is the single most common error this pack throws.
Also note the page_size setting on the Helper: if your grid would be 10×10 of 1024² images, that's a 100-image grid and one enormous output. Crank page_size down and the accumulator will emit several smaller grids instead, one per page - same sweep, friendlier VRAM and easier inspection.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/kenjiqq/qq-nodes-comfyui
Restart, and add images-grid-comfy-plugin from the same route. No pip requirements - the pack is plain Python on ComfyUI's own libraries.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| xy_grid_control | XY_GRID_CONTROL | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |