TS Image Tile Merger
Stitch processed tiles back into one seamless image
- images
- tile_data
- image
If you've ever tried to upscale or denoise a 4K frame on a GPU that clearly didn't sign up for it, you already know why tiling exists: process the image in chunks, then put it back together. TS Image Tile Merger is the second half of that - it takes the tiles you processed and the metadata blob from the splitter, and stitches everything back into one image with properly feathered blending in the overlap regions.
Tiled processing is the classic VRAM workaround - the same idea as tiled diffusion and Ultimate SD Upscale from the A1111 era: split, process each piece at a size the GPU can actually hold, blend the seams back out. The merger is what makes the seams disappear.
How it works
This node is deliberately dumb in the best way. It needs exactly two things:
- images - the batch of tiles, in the row-major order the splitter produced them.
- tile_data - the
TILE_INFOmetadata blob from the splitter, which records where each tile sat in the original, how much they overlapped, and the feather amount.
Given those, it reconstructs the full image and blends the overlaps with the feathered edges. Because the feather value was baked into the tile data at split time, the merger doesn't need you to re-enter a bunch of geometry - one wire in, one image out. The merge math also mirrors what the splitter assumed, so as long as you keep the pair together you don't have to think about alignment.
Inputs and outputs
- images - processed tiles, straight from TS Image Tile Splitter (or its Auto Tile Size companion).
- tile_data - the
TILE_INFOblob, same source.
Output: image - the reassembled full image.
There's a hard rule that saves you grief: keep the tile batch and the metadata together. They were produced in the same run, and the merger assumes they correspond. If you process tiles with a node that changes the batch order (sorting, dropping frames), the reconstruction will silently be wrong.
Installation
This node ships in the comfyui-timesaver pack. ComfyUI Manager: search "Timesaver", install, restart. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/AlexYez/comfyui-timesaver
cd comfyui-timesaver
python -m pip install -r requirements.txt
Restart ComfyUI. It's under TS/Image/Tiles.
The workflow it belongs to
The canonical graph: TS Image Tile Splitter → your upscaler/denoiser/whatever → TS Image Tile Merger. You choose the tile size and overlap on the splitter so each tile fits your VRAM budget, process, then merge. The feathered overlap is what stops the grid lines from showing up - if you still see seams, increase the overlap on the splitter (128 px default, 256 px is a safe bump) or raise the feather.
Pair it with the README's advice: for a 4K upscale on a tight card, split → upscale each tile → merge is the difference between "works" and "OOM on step one". And if you've ever wondered why the splitter bothers with overlapping tiles at all - it's so the merger has real pixels to blend instead of a hard edge. Tiling is the workaround; this node is what makes it look like you never tiled.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | Batch of tiles produced by TS Image Tile Splitter. | |
| tile_data | TILE_INFO | TILE_INFO metadata from the splitter describing tile positions, overlap and feather. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | Reassembled full image blended from the tiles. |