Nodes/ComfyUI_SeedVR2_Tiler/SeedVR2 Tile Splitter (Longest Edge)
ComfyUI Node

SeedVR2 Tile Splitter (Longest Edge)

Hit your longest edge exactly

By BacoHubo·Created 6 months ago·Updated 6 months ago· 45
SeedVR2 Tile Splitter (Longest Edge)
  • image
  • tiles
  • tile_metadata
  • resolution
tile_size_mp1.0
longest_edge_px2048
overlap_percent10
feather_blend1.00

Sometimes "2x" isn't the question. The question is "does this end up 3840 wide," because you're delivering for a 4K screen, or a print house wants a specific longest side, or you just know what the destination is. That's what SeedVR2TileSplitterByLongestEdge is for: a version of the tile splitter where instead of an upscale ratio you hand it the pixel length you want the longest edge of the final image to be, and the stitcher makes sure you land on it.

It's one of the three alternative splitters BacoHubo added in v1.1.0 of the SeedVR2 Tiler pack after people asked for concrete output targets instead of megapixel math. Same core tiling engine as the base SeedVR2TileSplitter - same grid selection, same edge-replication padding, same overlap handling - with the target-size parameter swapped in.

The input that matters

  • longest_edge_px - the pixel length of the longest edge in the final stitched output. Default 2048, range 64–16384, snaps to 8-pixel steps.

The node derives the upscale factor from your number: target ÷ current longest edge. A 1024×1024 square to 3840 becomes a 3.75× upscale; a portrait that's 2048 wide gets a gentler ratio. Because it works from the image's actual dimensions, the same longest_edge_px produces different effective upscales for different aspect ratios - which is correct behavior, and why "longest edge" nodes are the standard way print and delivery specs are written.

The rest of the inputs are the shared splitter set: tile_size_mp (0.5–1.0 on 8GB), overlap_percent (10 default, 15–20 if seams), feather_blend (1.0 smooth). Outputs stay tiles, tile_metadata, resolution.

Wiring

Identical to the base node - tiles to SeedVR2's image input, resolution to its resolution input, tile_metadata to the stitcher, and set max_resolution to 0 on the SeedVR2 node so its own longest-edge cap doesn't fight your target. The stitcher does the exact final resize to hit longest_edge_px, which is the whole point: the base MP splitter returns whatever SeedVR2 produces; this one nails the number.

Install

ComfyUI Manager, search SeedVR2 Tiler, or:

cd ComfyUI/custom_nodes
git clone https://github.com/BacoHubo/ComfyUI_SeedVR2_Tiler

No extra dependencies, no model files of its own. You still need the numz SeedVR2 node with FP16 weights - quantized GGUFs mess with skin and FP8 adds its own tiling grids, so don't judge the pipeline on anything but FP16.

Choosing between the edge splitters

If your requirement is "no wider than 3840," you want this one - it caps the longest edge. If your requirement is "the short side must be at least 1080" (say, a social cut where height is the constraint), the Shortest Edge sibling is the matching tool. For a pure ratio, the Upscale Factor variant. All three share the same machinery; you're just choosing which number is the one that must be true.

Categoryimage/upscaling

Inputs (5)

NameTypeDefaultDescription
imageIMAGE
tile_size_mpFLOAT1.00.1–16Maximum size of each tile in megapixels. Lower = less VRAM per pass.
longest_edge_pxINT204864–16384Desired pixel length of the longest edge in the final stitched output.
overlap_percentFLOAT100–40Overlap between adjacent tiles as a % of tile size.
feather_blendFLOAT1.000–11.0 = smooth feather blend. 0.0 = hard cut.

Outputs (3)

NameTypeDescription
tilesIMAGE
tile_metadataTILE_METADATA
resolutionINT