Nodes/ComfyUI Timesaver Nodes/TS Auto Tile Size
ComfyUI Node

TS Auto Tile Size

Stop doing tile math in your head

By AlexYez·Created 2 years ago·Updated about 20 hours ago· 12
TS Auto Tile Size
  • image
  • tile_width
  • tile_height
tile_count
padding64
divide_by8
width512
height512

Tiled processing is how you get a 4K image through a model that can't see a 4K image: split it up, process each tile, stitch it back. The fiddly part is choosing the tile size - too big and it OOMs, too small and you get seams everywhere. TS Auto Tile Size is the "just tell me how many tiles you want" answer. Pick 4, 8, or 16, and it figures out the best tile_width × tile_height for your image, honoring overlap padding and a divisor.

It's a pure utility node, and it pairs naturally with the pack's TS Image Tile Splitter → (process) → TS Image Tile Merger chain. Wire an image in, get dimensions out, feed them to the splitter. That's the entire job, and it does it so you don't have to hold the arithmetic in your head.

How it works

You tell it how many tiles you want (tile_count) and it computes a grid that best matches the image's aspect ratio, then derives tile width and height from that grid. The padding value is the overlap in pixels added between neighboring tiles - the splitter uses it to hide seams when tiles are recombined. And divide_by (default 8) rounds every tile dimension to a multiple of that value, which matters because VAE-friendly sizes are usually multiples of 8 (samplers and VAE encode like multiples of 8/16/32). The result: tiles that tile cleanly, align to the grid, and overlap enough to blend.

If you don't have an image handy, width and height serve as fallback dimensions - connect an image and it overrides them, leave it unconnected and you can still compute sizes from typed numbers.

The inputs that matter

  • tile_count - 4, 8, or 16. This is the intent: "fit it in roughly this many pieces." The node picks the grid.
  • padding - overlap pixels between tiles, default 64. Bump it if you see seams; drop it to save compute.
  • divide_by - the alignment divisor, default 8. 16 or 32 if you're feeding a VAE-heavy pipeline.

Outputs are just tile_width and tile_height - two INTs, ready to plug into the splitter.

Installing it

Part of comfyui-timesaver (ComfyUI Manager → search "Timesaver", or the usual manual clone + pip install -r requirements.txt, then restart). No models, no dependencies beyond the pack core - it's pure math on image dimensions.

Where people get confused

The trap is thinking of tile_count as a precise spec. It's a target - the node picks the best grid for your aspect ratio, so a 16:9 image with tile_count 4 won't give you four perfect squares, it'll give you the closest thing. That's correct behavior; the splitter and merger are built to work with whatever comes out. Also, padding is only meaningful in the context of the splitter - if you're using these sizes with a different tiling tool, make sure it applies the same overlap, or you'll get visible seams where tiles meet. And if you're coming from the upscaling doc's tiled-diffusion world, remember this node only computes sizes - the actual tile-based upscaling/denoising still needs the splitter → model → merger chain around it.

CategoryTS/Image/Tiles

Inputs (6)

NameTypeDefaultDescription
tile_countCOMBOTotal number of tiles to split the image into. The grid is chosen to best match the image aspect ratio.
paddingINT640–512Overlap in pixels added between neighbouring tiles to hide seams.
divide_byINT81–512Rounds each tile dimension to a multiple of this value (e.g. 8 for VAE-friendly sizes).
imageoptIMAGEOptional image; its dimensions drive the tile size. Overrides width/height when connected.
widthoptINT51264–8192Fallback image width, used when no image is connected.
heightoptINT51264–8192Fallback image height, used when no image is connected.

Outputs (2)

NameTypeDescription
tile_widthINT
tile_heightINT