Nodes/ComfyUI Essentials/πŸ”§ Image Untile
ComfyUI Node Runs on cloud

πŸ”§ Image Untile

Stitch processed tiles back into one seamless image

By cubiqΒ·Created 3 years agoΒ·Updated about a year agoΒ· 1,152
πŸ”§ Image Untile
  • tiles
  • IMAGE
β—„overlap_x0β–Ί
β—„overlap_y0β–Ί
β—„rows2β–Ί
β—„cols2β–Ί

ImageUntile is the second half of a tiled-processing loop: after ImageTile cut your image into a grid and you ran each tile through an upscaler or a diffusion pass, this node reassembles them into one whole image - blending the overlapping edges so the joins disappear. Split, process, un-tile. That's the pattern for pushing large images through models that can't swallow them in one bite.

It's from ComfyUI Essentials by cubiq (Matteo Spinelli, the ComfyUI_IPAdapter_plus author). On its own it does nothing useful; it only makes sense as the closing bracket around a tile-by-tile workflow.

How it works

It takes the batch of tiles and lays them back out on the grid defined by rows and cols, then blends the overlap regions rather than butting the tiles edge to edge. That blend is why overlap exists in the first place - it gives the stitch a gradient to hide in, so adjacent tiles that drifted slightly in color or detail merge smoothly instead of showing a hard line. The overlap values you pass here must be the exact ones ImageTile produced, or the geometry won't line up.

The inputs and outputs that matter

  • tiles (IMAGE) - the batch of processed tiles.
  • rows and cols (INT, default 2Γ—2) - the grid layout, matching what you tiled with.
  • overlap_x and overlap_y (INT pixels) - how much neighbors share, again matching the tiling step. Wire these directly from ImageTile's outputs.

Output: a single reassembled IMAGE.

How to install it

ComfyUI Manager: search ComfyUI Essentials, install, restart. Or:

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

then restart. Nothing to download.

Common issues & troubleshooting

The stitch is offset or scrambled. This is the classic failure, and it's almost always a settings mismatch: ImageUntile must get the same rows, cols, overlap_x, and overlap_y that ImageTile used. Don't re-type them by hand - run the wires straight from the tile node's outputs into this one so they can't drift apart.

I can still see faint seams. More overlap gives the blend more room, but the deeper fix is upstream: if the tiles themselves diverged during a diffusion pass, no amount of blending fully hides it. The upscaling KB is blunt about this - the way you keep tiles from diverging is a ControlNet Tile condition on each tile, so they all stay faithful to the source before you ever reassemble them.

The tile order looks wrong. The batch of tiles has to arrive in the same order ImageTile emitted them. If a node in between reordered or filtered the batch, the layout will be scrambled - keep the tile batch intact through your processing.

Missing after a Comfy update. Essentials has been maintenance-only since April 2025 and pack nodes sometimes break on newer ComfyUI. Update through Manager, or roll back Comfy if needed.

Categoryessentials/image manipulation

Inputs (5)

NameTypeDefaultDescription
tilesIMAGEβ€”
overlap_xINT00–8192β€”
overlap_yINT00–8192β€”
rowsINT21–256β€”
colsINT21–256β€”

Outputs (1)

NameTypeDescription
IMAGEIMAGEβ€”