π§ Image Untile
Stitch processed tiles back into one seamless image
- tiles
- IMAGE
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.rowsandcols(INT, default 2Γ2) - the grid layout, matching what you tiled with.overlap_xandoverlap_y(INT pixels) - how much neighbors share, again matching the tiling step. Wire these directly fromImageTile'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.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| tiles | IMAGE | β | |
| overlap_x | INT | 00β8192 | β |
| overlap_y | INT | 00β8192 | β |
| rows | INT | 21β256 | β |
| cols | INT | 21β256 | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | β |