ComfyUI Node

Image Tile Split

Chop a huge image into overlapping tiles so your GPU stops panicking

By Praveenhalder·Created about a year ago·Updated 6 months ago· 2
Image Tile Split
  • image
  • tiles
  • tile_info
grid_size4x4
overlap_percent10.0

Image Tile Split is the front half of this pack's tiling workflow: it cuts one large image into a batch of overlapping square tiles, hands you a metadata blob so they can be put back together, and lets you run the tiles through whatever processor you like. It exists for the oldest reason in image processing: sometimes the whole image won't fit, but a piece of it will. If you've ever watched a 4K upscale crawl on a mid-range GPU, you know the feeling.

The workflow shape is: split → process tiles → merge. The processing step is where you spend your GPU budget per tile instead of per image, which is how tiled diffusion and tiled upscaling get away with running on cards that have no business touching a 4K source (the modidex upscaling notes cover this VRAM trade in detail). This pack's pair isn't a diffusion pass itself - it's the plumbing around whatever node you want to run per tile.

Inputs

  • image (IMAGE) - the source.
  • grid_size - a square grid preset: 2x2 up to 16x16 (default 4x4). No rectangular grids; if you need 2x4, this isn't the node.
  • overlap_percent (FLOAT, 0–50, default 10) - how much of each base tile extends into its neighbors, per side.

Outputs are tiles (IMAGE batch, one per grid cell) and tile_info (TILE_INFO, the reconstruction metadata).

How it works

It takes the image, divides width and height by the grid dimension, and computes an overlap in pixels as a percentage of the base tile. Then it pads the image using reflect padding so the edge tiles are complete rather than ragged, and extracts every tile in row-major order. The tile_info dict records grid size, original dimensions, tile size, overlap, and per-tile coordinates - that's the contract Image Tile Merge reads to rebuild the image, and it also tolerates tiles that came back upscaled, because the merge computes a scale factor.

What to actually set

  • Overlap 20–30% is the pack author's stated sweet spot for seamless blending. Too little and seams show; too much and you waste compute on re-processed pixels.
  • Grid size is a VRAM dial. Bigger cells = fewer tiles but more VRAM per tile. Start at 4x4 for something like a 2K source and drop to 2x2 if you've got headroom, or rise to 6x6/8x8 if a single tile still OOMs.
  • Wire tile_info straight into the merger - it's not optional.

Gotchas

The grid is always square, so an extreme aspect ratio means many wasted tiles. And overlap is a percentage of the base tile, which scales with grid density - on a 16x16 grid, 10% overlap is a much smaller absolute pixel count than on 2x2. If you're hunting seams, adjust for that.

Installation

From Praveen's ComfyUI Tools. Install via ComfyUI Manager (search "Praveen" / "praveen-tools"), or:

cd ComfyUI/custom_nodes
git clone https://github.com/Praveenhalder/praveen-tools

Restart ComfyUI. No model downloads and no extra pip packages - it's torch, PIL, and numpy, all stock ComfyUI.

Categoryimage/tile

Inputs (3)

NameTypeDefaultDescription
imageIMAGE
grid_sizeCOMBO4x49 options: 2x2, 3x3, 4x4, 5x5, 6x6, 8x8, +3
overlap_percentFLOAT10.00–50

Outputs (2)

NameTypeDescription
tilesIMAGE
tile_infoTILE_INFO