ComfyUI Extension: ComfyUI_SeedVR2_Tiler
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
Tile Splitter and Stitcher nodes for SeedVR2 upscaling in ComfyUI
Looking for a different extension?
Custom Nodes (5)
README
ComfyUI SeedVR2 Tiler
<img width="512" height="512" alt="SeedVR2 Tiler Workflow" src="https://github.com/user-attachments/assets/5987e2ce-6885-4618-9aa0-7b1382cdd0aa" />A ComfyUI custom node pack for tiling large images through SeedVR2 with overlap blending. Allows SeedVR2 to upscale images of any size by splitting them into tiles, processing each tile, and seamlessly stitching them back together.
Updates
v1.2.0
- Fixed single tile passthrough — output is now identical to running SeedVR2 directly
- Switched from canvas resize to edge-replication padding, preserving original pixel values
v1.1.0
- Added Longest Edge, Shortest Edge, and Upscale Factor splitter nodes
v1.0.0
- Initial release with Tile Splitter and Tile Stitcher nodes
Nodes
SeedVR2 Tile Splitter
Splits an image into a batch of overlapping tiles sized for SeedVR2's resolution constraints. When the image fits in a single tile, it is passed through completely untouched — output is identical to running SeedVR2 directly.
Inputs
image— source imagetile_size_mp— maximum tile size in megapixels (default 1.0). Lower = less VRAM per passtile_upscale_mp— target resolution for SeedVR2 to upscale each tile to, in megapixelsoverlap_percent— overlap between adjacent tiles as a percentage (default 10)feather_blend— blend width for overlap stitching (0–1)
Outputs
tiles— IMAGE batch ready for SeedVR2tile_metadata— internal metadata needed by the Stitcherresolution— INT hint to wire into SeedVR2's resolution input
SeedVR2 Tile Splitter (Longest Edge)
Same as the standard Tile Splitter but lets you specify your desired output size as a longest edge in pixels. The Stitcher will resize the final output to hit the exact target dimensions.
Inputs
image— source imagetile_size_mp— maximum tile size in megapixels. Lower = less VRAM per passlongest_edge_px— desired pixel length of the longest edge in the final stitched outputoverlap_percent— overlap between adjacent tiles as a percentage (default 10)feather_blend— blend width for overlap stitching (0–1)
SeedVR2 Tile Splitter (Shortest Edge)
Same as the standard Tile Splitter but lets you specify your desired output size as a shortest edge in pixels. The Stitcher will resize the final output to hit the exact target dimensions.
Inputs
image— source imagetile_size_mp— maximum tile size in megapixels. Lower = less VRAM per passshortest_edge_px— desired pixel length of the shortest edge in the final stitched outputoverlap_percent— overlap between adjacent tiles as a percentage (default 10)feather_blend— blend width for overlap stitching (0–1)
SeedVR2 Tile Splitter (Upscale Factor)
Same as the standard Tile Splitter but lets you specify a simple upscale multiplier instead of megapixels. The Stitcher will resize the final output to hit the exact target dimensions.
Inputs
image— source imagetile_size_mp— maximum tile size in megapixels. Lower = less VRAM per passupscale_factor— upscale multiplier (e.g. 2.0 = 2× output, 1.5 = 1.5× output)overlap_percent— overlap between adjacent tiles as a percentage (default 10)feather_blend— blend width for overlap stitching (0–1)
SeedVR2 Tile Stitcher
Reassembles the upscaled tile batch back into a single image using feathered blending over the overlap regions.
Inputs
upscaled_tiles— IMAGE batch from SeedVR2tile_metadata— from the Splitter
Outputs
image— final stitched image
Workflow
Load Image → Tile Splitter → tiles ──────────────────→ SeedVR2
→ tile_metadata ───────────→ Tile Stitcher
→ resolution ─────────────→ SeedVR2
SeedVR2 → Tile Stitcher → Save Image
<img width="2240" height="954" alt="Workflow" src="https://github.com/user-attachments/assets/6b3265bf-8230-4b26-85b0-9075b2a77e12" />
- Connect
resolutionto SeedVR2'sresolutioninput. Setmax_resolutionto 0 to disable the longest edge cap.
For multi-pass upscaling, run the pipeline multiple times feeding the output back as input. Each pass progressively increases resolution.
Installation
Via ComfyUI Manager
Search for SeedVR2 Tiler in the ComfyUI Manager node list.
Manual
cd ComfyUI/custom_nodes
git clone https://github.com/BacoHubo/ComfyUI_SeedVR2_Tiler
No additional dependencies — uses only PyTorch and standard ComfyUI libraries.
Requirements
- ComfyUI
- SeedVR2 custom node installed separately
- PyTorch (included with ComfyUI)
Notes
tile_size_mpof 0.5–1.0 works well for most 8GB VRAM GPUs- For poor quality source images, setting
tile_upscale_mpclose totile_size_mpcauses SeedVR2 to behave more as a restorer than an upscaler, often producing better results - The Longest Edge, Shortest Edge, and Upscale Factor nodes apply a final resize to hit exact output dimensions. The base MP node does not — it returns whatever SeedVR2 produces
- Multi-pass upscaling works well — each pass feeds back into the Splitter as the new source image
Support
If you find this useful, consider buying me a coffee!
Development
This node pack was developed with the assistance of Claude (Anthropic). The architecture, design decisions, and testing were directed by the author; the code was written collaboratively with AI. Shared here in the spirit of transparency.
Acknowledgements
Inspired by tiling approaches in the ComfyUI community, including Moonwhaler and the Steudio upscaling workflow. SeedVR2 itself is by TencentARC — this node pack just makes it easier to use on larger images.
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.