Nodes/ComfyUI-SeedVR2-TilingWrapper/SeedVR2 Tile Splitter (VRAM Aware)
ComfyUI Node

SeedVR2 Tile Splitter (VRAM Aware)

Your SeedVR2 is OOMing because of the tile size, not the model

By turinastudio·Created 6 months ago·Updated 6 months ago· 1
SeedVR2 Tile Splitter (VRAM Aware)
  • image
  • tiles
  • tile_resolution
  • tile_max_resolution
  • tile_info
upscale_by2.0
overlap128
noise_injection0.05
vram_modeAuto

SeedVR2 is the best image upscaler most people can run - a ByteDance model that does restoration detail work on a 6GB card, which is why it became the default. The catch is the official node was "famous for its OOM errors" before tiling options settled it down, and manually picking tile sizes is where beginners lose an evening. This node is the tiling, done for you: it looks at your VRAM, picks a sane tile size, slices your image into overlapping tiles, and hands them to the SeedVR2 node in one batch.

It's a pre-processor, not an upscaler. This pack contains no model weights and doesn't ship the SeedVR2 node - you still need numz/ComfyUI-SeedVR2_VideoUpscaler installed for the actual upscaling. The Tile Splitter sits in front of it, and this pack's Tile Stitcher goes after it. In a graph: splitter → SeedVR2 node → stitcher.

How it works

The vram_mode dropdown is the whole trick. In Auto it reads your GPU's total VRAM: under 8.5GB it targets ~0.75 megapixel tiles (about 864px a side), up to 12.5GB gets ~1.2MP (~1088px), and 16GB+ gets ~2.0MP (~1408px). Sensible defaults - those numbers sit right where the community lands after trial and error. You can override manually with Low (8GB) / Medium (12GB) / High (16GB+).

A few mechanics worth knowing:

  • Tiles are rounded to a multiple of 8 pixels, which keeps the model's attention windows happy.
  • The image is reflect-padded at the borders so edge tiles don't get cut mid-texture.
  • All tiles come out the same size in a single stacked batch - that's what lets the SeedVR2 node process them in one go.
  • If you turn on noise_injection, it adds noise scaled by luminance (rec. 709 luma weights), so pure-black areas stay clean. It's meant for detail-adding img2img passes, not restoration.
  • Tiles are emitted as bfloat16 when your GPU supports it, leaving headroom for the model.

The inputs that matter

You'll actually touch three things:

  • upscale_by (default 2.0) - set this to the same factor you give the SeedVR2 node. It doesn't resize anything itself; it's what the node uses to compute the two INT outputs below.
  • overlap (default 128) - how many pixels tiles share. Higher = smoother blending downstream and less chance of seams, at the cost of recomputing more pixels. 128 is a fine starting point; drop it if you're still tight on VRAM.
  • noise_injection (default 0.05) - leave at 0 for plain restoration; turn it up only when you want the diffusion pass to invent more detail. If you see speckle, this is the first suspect.

vram_mode speaks for itself: if Auto OOMs you, force the next step down.

Outputs

  • tiles (IMAGE) - feed this into the SeedVR2 node's image input.
  • tile_info (TILE_INFO) - this pack's custom type; it carries the grid layout, overlap, and original dimensions to the Tile Stitcher. Without it the stitcher can't reconstruct anything.
  • tile_resolution / tile_max_resolution (INT) - the subtle bit. The SeedVR2 node wants to know its output resolution, and if you let it auto-size each tile it'll get edge tiles wrong. Feed these into the node's resolution inputs so every tile upscales to the same target. Exact wiring varies by SeedVR2 node version, but "give it the min and max tile resolution" is the rule.

Installing

It's one of the rare packs with zero extra dependencies - the repo has no requirements.txt; it's pure torch and torch.nn.functional.

ComfyUI Manager: search "SeedVR2 TilingWrapper" (or "SeedVR2") and install. Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/turinastudio/ComfyUI-SeedVR2-TilingWrapper.git

Then restart ComfyUI - the four nodes appear under the SeedVR2_Tiling category.

One real gotcha: the README's own clone command still points at a stale shikasensei-dev/... URL from before the repo changed hands to Turina Studio. Use the turinastudio one above (or let Manager resolve it), and don't panic when the README's link 404s.

Common issues

  • It OOMs anyway. You're on an 8GB card and Auto picked Medium-ish sizes - force vram_mode to Low. Also drop overlap to 64–96; that removes real pixels from the batch.
  • "This node does nothing." Correct - it doesn't upscale. Missing the numz SeedVR2 node is the usual cause, not a bug in this pack.
  • Tile size mismatch between what you set and what the SeedVR2 node outputs. Re-check that upscale_by matches the node's scale and the two INT outputs actually reached it - a wiring miss always shows up as grid artifacts.
CategorySeedVR2_Tiling

Inputs (5)

NameTypeDefaultDescription
imageIMAGE
upscale_byFLOAT2.01–4
overlapINT1280–512
noise_injectionFLOAT0.050–0.5
vram_modeCOMBOAuto4 options: Auto, Low (8GB), Medium (12GB), High (16GB+)

Outputs (4)

NameTypeDescription
tilesIMAGE
tile_resolutionINT
tile_max_resolutionINT
tile_infoTILE_INFO