High Resolution Tile Accumulator
Stitch your tiles back without the seams
- images
- tile_layout
- image
If UC_HighResolutionTileSplit is the butcher, this is the seamstress. It takes the list of decoded tiles that came out of your tiled sampling run and reconstructs the full canvas, using the overlap metadata to blend neighboring tiles so you don't see the grid. It's the closing half of the pack's tiled-diffusion pipeline, and it has exactly two jobs: take the tile list, hand back one full-resolution image.
It looks deceptively simple - two inputs, one output - but the whole "this is usable" outcome lives here. The overlap blending is normalized, which is the important word: instead of each tile just pasting over its neighbor and showing a boundary, the shared pixels are weighted so the transition is smooth. That's what turns a patchwork of separately-sampled tiles into something that reads as one continuous image.
How it works
The accumulator consumes two things:
images- the decoded tile image list, the output of sampling each tile fromUC_HighResolutionTileSplit.tile_layout- the coordinate and overlap metadata socket that came out of the same split node.
The layout tells it where each tile sits on the original canvas and how much each pair overlapped. It re-places every tile at its coordinates and blends the overlap zones with the same mask profile the split used on the way in - so the weighting on encode and the weighting on reconstruct match, and the seam math cancels out instead of compounding.
The input that matters
Honestly: tile_layout. It's the thing that makes this node work instead of you hand-rolling a paste-back with coordinates. Keep the split and the accumulator wired to the same layout socket and you never think about overlap math again. The images list should be the tile outputs in the same order the split produced them - the accumulator assumes matching order, because the layout refers to tiles by position.
The single output, image, is the reconstructed full canvas, ready for the Save Image node or a final pass.
Installing it
Same pack, same drill. ComfyUI Manager → search "ComfyUI-UtilsCollection", or:
cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI-UtilsCollection
Restart. Light dependencies (opencv-python, typing-extensions), no models, and no API calls. It's a newer-extension-API pack, so an up-to-date ComfyUI is assumed.
The classic failure mode is order mismatch - feeding tiles back in a different order than the split emitted them, which produces a scrambled mosaic that has nothing to do with blending. If you're debugging, verify the tile list order first. Second gotcha: this node expects decoded tiles. Feed it latents and it won't know what to do with them; the decode step belongs between the sampler and this node.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | Decoded image list produced by the mapped sampler path. | |
| tile_layout | UC_HIGH_RES_TILE_LAYOUT | Layout from High Resolution Tile Split & VAE Encode. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |