Nodes/ComfyUI Easy Use/imageSplitTiles
ComfyUI Node Runs on cloud

imageSplitTiles

Cut an image into overlapping tiles for tiled processing

By yolain·Created 3 years ago·Updated 12 days ago· 2,647
imageSplitTiles
  • image
  • tiles
  • masks
  • overlap
  • total
overlap_ratio0.00
overlap_offset0
tiles_rows2
tiles_cols2
normtrue

When an image is too big to process in one pass - think upscaling a large photo on a card that can't hold the whole latent - the standard move is to cut it into tiles, run each tile through the model, and glue them back together. easy imageSplitTiles is the "cut it into tiles" half of that. Give it an image and a grid size, and it returns the tiles as a batch, plus the masks and overlap data you need to reassemble them cleanly later.

This is the DIY version of what Ultimate SD Upscale and Tiled Diffusion do internally. If you're building your own tiled workflow - maybe you want per-tile control, or you're stitching tiles through a specific model chain - this node gives you the split step as an explicit, wired thing instead of a black box.

How it works

It divides the image into a tiles_rows × tiles_cols grid and outputs each cell as one image in a batch. The important detail is the overlap: tiles processed independently will disagree at their seams, and blending overlapping edges is what hides the join. overlap_ratio controls how much neighboring tiles share, and the node emits the overlap data and per-tile masks so a companion recombine step can feather the tiles back together without visible grid lines. That overlap-and-feather is the whole reason tiled upscaling doesn't look like a patchwork quilt.

The inputs and outputs that matter

  • image - the image to split.
  • tiles_rows / tiles_cols - the grid. 2×2 gives four tiles; bump it up when each tile is still too big for your VRAM.
  • overlap_ratio (0–0.5) - how much adjacent tiles overlap. Some overlap is what lets the seams blend; zero overlap risks visible edges. A small value (0.1–0.25) is the usual starting point.
  • overlap_offset and norm - finer control over the overlap region and normalization; leave at defaults unless you're chasing a specific seam issue.

Outputs: tiles (the IMAGE batch - process this through your per-tile chain), masks (MASK, for blending), overlap (an OVERLAP object that carries the layout to the recombine node), and total (INT, the tile count - useful for driving a loop). Keep the overlap output; the reassembly node needs it.

How to install it

Ships in ComfyUI-Easy-Use. ComfyUI Manager: search ComfyUI-Easy-Use, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/yolain/ComfyUI-Easy-Use

then install.bat (Windows) or pip install -r ComfyUI-Easy-Use/requirements.txt, and restart. No models.

Common issues & troubleshooting

Visible seams after recombining. Almost always too little overlap. Tiles processed separately diverge at their edges, and only the overlap-and-blend hides it. Raise overlap_ratio and make sure you're feeding the overlap/masks outputs into the reassembly step - dropping them means the tiles get butt-joined with no feathering.

Tiles still OOM. If a single tile is too big for your card, increase tiles_rows/tiles_cols so each tile is smaller. More tiles, less memory per pass.

Losing the overlap data. The overlap output isn't optional if you plan to stitch cleanly - the recombine node reads the layout from it. Forget to wire it and you'll be reassembling blind.

Missing the recombine step entirely. This node only splits. On its own you get a batch of tiles and nothing that merges them back. It's meant to be paired with Easy-Use's tile-recombine node (the batch-to-image side); if your output is a grid of separate tiles, that's the missing half of the workflow.

CategoryEasyUse/Image

Inputs (6)

NameTypeDefaultDescription
imageIMAGE
overlap_ratioFLOAT0.000–0.5
overlap_offsetINT0-8192–8192
tiles_rowsINT21–50
tiles_colsINT21–50
normoptBOOLEANtrue

Outputs (4)

NameTypeDescription
tilesIMAGE
masksMASK
overlapOVERLAP
totalINT