π§ SeedVR Calculate Tiles
The author calls it 'probably useless.' It's actually the part people forget.
- image
- rows
- cols
- suggested_overlap
The README for ComfyUI-SuperNodes lists this one with the honest one-liner: "Probably useless." The π§ SeedVR Calculate Tiles node doesn't upscale anything and doesn't process pixels - it just computes numbers. But those numbers are exactly what people hand-roll wrong, and it earns its place in a tiled upscaling graph.
Here's the job. When you tile an image so it fits in VRAM, you're really imposing a pixel budget: every tile must stay under some maximum area, or you're back to OOM. This node measures your source image, applies the upscale factor you plan to use, and figures out how many rows and columns of tiles keep each tile under a target area - then also hands you the overlap you should set. For a SeedVR2-style upscale where a single 2MP+ pass is too much for a 6GB card, that's the planning step you'd otherwise do with a spreadsheet.
How it works
It computes the final upscaled dimensions (source Γ upscale_by), sets a target area of target_tile_sizeΒ² (1024 β roughly 1MP per tile), and iteratively splits the grid, keeping tiles as square as possible, until the estimated tile area fits under the budget with a 10% tolerance. The overlap formula is the important part: it's min(1.0, 0.05 Γ max(rows, cols)), and the tile-size math mirrors Create Tiles' own logic (tile = base + 0.5 Γ base Γ overlap). The node was deliberately written to match the sibling node's geometry, so its numbers plug straight in.
Three inputs, three outputs - a clean, boring interface:
imageβ the source to measure.target_tile_sizeβ the per-tile pixel budget, as a side length.upscale_byβ the scale factor you intend to apply before tiling (tiling is calculated on the upscaled dimensions, which is the trap most people fall into).
Outputs: rows, cols, and suggested_overlap. Wire all three into Create Tiles and you have a self-sizing tiled pipeline.
Installing it
Part of ComfyUI-SuperNodes (GitHub: sonnybox/ComfyUI-SuperNodes) by SuperCC. ComfyUI Manager β search SuperNodes β install β restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/sonnybox/ComfyUI-SuperNodes
# restart ComfyUI
Just matplotlib as a dependency; needs a current ComfyUI (comfy_api extension API).
Where people get burned
The biggest mistake is feeding it the original resolution while also upscaling later - if you ignore upscale_by (leaving it at 1) and upscale tiles 4x downstream, every tile blows past your budget and you're back to OOM. Set upscale_by to what you'll actually do. Note that a 1Γ1 grid gets zero overlap by design, and it's called "suggested" for a reason - the 5%-of-grid formula is a starting point, not a law. And it's only as smart as its inputs: it has no idea what your actual VRAM is, so target_tile_size is your knob, not a detected value.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | The source image to measure. | |
| target_tile_size | INT | 1024256β8192 | Target resolution side length (e.g. 1024 = 1MP limit). |
| upscale_by | FLOAT | 1.01β1024 | The scale factor you intend to use. Tiling is calculated relative to the upscaled dimensions. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| rows | INT | β |
| cols | INT | β |
| suggested_overlap | FLOAT | β |