Video Tile Slicer (fixed size)
Fixed-size tiling for when your upscaler demands exact 512×512 tiles
- images
- tiles
- tile_config
- visualization
- tile_count
- layout_label
Some tiled upscale branches don't care how you cut the grid - some are picky. If your video super-resolution model wants its input at a specific tile size, like 512×512, Video Tile Slicer (fixed size) is the node you want. It's the sibling of the pack's variable-grid slicer, with one different philosophy: instead of "how many tiles," you tell it "how big are the tiles."
How it works
You set tile_width and tile_height, plus a minimum fractional overlap (1/8, 1/4, 3/8, or 1/2). The node lays out a grid of fixed-size tiles that covers the frame, choosing the fewest tiles that still satisfy your overlap requirement on each axis. Everything gets snapped to the multiple grid (default 32) so positions stay aligned for models that care about divisibility. Outputs are identical to the variable slicer: tiles (list), tile_config, visualization, tile_count, layout_label.
One thing worth knowing: this slicer emits tile_config v5, and the pack still merges legacy v3 configs from older saved workflows. So an old graph doesn't break when you upgrade the pack - nice, given how often "upgraded the pack, everything broke" is the ComfyUI experience.
Which slicer should you reach for?
Think of it as two workflows:
- Var. size (
VideoTileSlice) - you want an explicit grid, say 2×3, and you control seam thickness directly. Great for uniform content and fine control. - Fixed size (
VideoTileSliceFixed) - you want a constant tile resolution. Use this when your upscale model has a sweet spot, or when you want the overlap to scale with the tile rather than being an absolute pixel count.
The pattern input is a real knob, not decoration
row, column, spiral, double_spiral - this sets traversal order. It matters for two reasons: the visualization's traversal gradient, and (for alpha_over merging) the paint order of overlapping tiles, which can change which tile "wins" a conflict region. The weighted_average blend mode largely sidesteps this, which is part of why it's the safer default in the merge node.
The overlap you set is a minimum, not an exact value - the layout picks the fewest tiles that satisfy it, so a 1024-wide frame with 1/2 overlap on 512 tiles doesn't double your tile count if fewer will do. That's usually what you want (fewer tiles = less seam blending = faster), but if you specifically want uniform overlap everywhere, check the visualization output before committing to the expensive pass.
Install & caveats
Same pack install as the whole comfyui-video-tiler set:
cd ComfyUI/custom_nodes
git clone https://github.com/maDcaDDie2000/comfyui-video-tiler
No extra dependencies, no model downloads. The pack is Apache 2.0 and vibe-coded for personal use - tested against LTX-2.3 and MiniMax H3 tiled upscaling, not guaranteed elsewhere, and not actively maintained. Keep the tile_config from this slicer paired with the merge node; don't swap in a config from the other slicer, or your reconstruction will be garbage. And the usual tiling reminder: per-step VRAM drops, but the final merged frame still has to live somewhere, so long clips can still want a lot of RAM - the pack's disk-backed nodes handle that case.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | Video or image batch [B,H,W,C]. | |
| tile_width | INT | 51264–8192 | Tile width in pixels (step 8). |
| tile_height | INT | 51264–8192 | Tile height in pixels (step 8). |
| multiple | INT | 321–64 | Stride/overlap positions snap to this pixel grid. |
| overlap | COMBO | 1/4 | Minimum neighbour overlap as a fraction of tile width/height per axis (layout chooses fewest tiles that satisfy it). |
| pattern | COMBO | row | Tile visitation order (affects traversal viz and merge paint order for overlaps). |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| tiles | IMAGE | Tile list for list-mode processing → Video Tile Merge. |
| tile_config | TILE_CONFIG | TILE_CONFIG v5 for Merge / Get Tile / Reference Tile Slice. |
| visualization | IMAGE | Preview: labels + traversal gradient (not final output). |
| tile_count | INT | Tile count. |
| layout_label | STRING | Layout string + memory hints. |