Nodes/ComfyUI-SeedVR2_VideoUpscaler/SeedVR2 Video Upscaler (v2.5.24)
ComfyUI Node

SeedVR2 Video Upscaler (v2.5.24)

The node where the upscale actually happens

By numz·Created about a year ago·Updated 7 months ago· 2,707
SeedVR2 Video Upscaler (v2.5.24)
  • image
  • dit
  • vae
  • IMAGE
seed42
resolution1080
max_resolution0
batch_size5
uniform_batch_sizefalse
color_correctionlab
temporal_overlap0
prepend_frames0
input_noise_scale0.000
latent_noise_scale0.000
offload_devicecpu
enable_debugfalse

This is the business end of SeedVR2 - the node that takes your frames, the model, and the VAE, and gives you back the upscaled result. SeedVR2 is ByteDance's one-step video restoration model that the ComfyUI crowd adopted as the best "add real detail" upscaler going: Apache 2.0, no non-commercial rider, and it preserves the picture instead of reinventing it the way SUPIR does. This node is the current v2.5 main node - despite the name it's what most people run on single images, because the video path really does want a datacenter GPU.

The important thing to understand up front: this node doesn't hold a model. It's the assembly point. You feed it a DiT bundle from the SeedVR2 (Down)Load DiT Model node and a VAE bundle from the SeedVR2 (Down)Load VAE Model node, and it orchestrates the four-phase pipeline (encode → upscale → decode → color-correct) across your frames.

What wires in

  • image - your input frames, as an image batch. One image or a whole video's worth; both work.
  • dit - the SEEDVR2_DIT output from the DiT loader. This is where 3B-vs-7B and the FP16/FP8/GGUF choice actually got made.
  • vae - the SEEDVR2_VAE output from the VAE loader.

No dit, no vae, no upscale. That's the shape of it.

The settings a beginner actually touches

  • resolution - target for the shortest edge, default 1080. Aspect ratio is preserved automatically, so this is your "how big" dial.
  • batch_size - default 5, and this one has a rule that bites: it must follow the 4n+1 formula - 1, 5, 9, 13, 17, 21… The model processes each batch together for temporal consistency, so it needs that shape. Set it to 1 for a single still; for video, match your shot length if you can (a 21-frame shot likes batch_size: 21). Bigger batches are actually faster per frame and more temporally coherent - but they cost VRAM.
  • color_correction - defaults to lab, which is the right default. LAB does full perceptual color matching and keeps output faithful to the source. The alternatives (wavelet, wavelet_adaptive, hsv, adain, none) exist if you want to tune, but lab is where to start.

That's genuinely it for a first run. seed (default 42) makes results reproducible; max_resolution (0 = no cap) auto-scales down if any edge blows past a limit you set.

The VRAM and video knobs

The optional inputs are where you fight OOM and video seams:

  • offload_device - defaults to cpu. Where intermediate tensors get parked between phases. cpu is the safe choice for long videos; none keeps everything on the GPU (fastest, hungriest).
  • enable_debug - turn this on the moment anything goes wrong. It prints per-phase memory and timing, which tells you which phase OOMed - and that's what decides your fix (encode phase → VAE encode tiling; upscale phase → BlockSwap on the DiT loader; decode phase → VAE decode tiling).
  • temporal_overlap (0–16) and prepend_frames (0–32) - video tools. Overlap blends between batches to kill the seam where one batch meets the next; prepend feeds reversed frames at the start to reduce the artifact you'd otherwise get on frame one. Leave both at 0 for stills.
  • input_noise_scale / latent_noise_scale - small nudges (try 0.1–0.3 and 0.05–0.15 respectively) if you see artifacts at very high output resolutions. Most people never touch them.
  • uniform_batch_size - pads the final batch so it matches the others, avoiding a temporal hiccup when your frame count isn't a clean multiple of batch_size.

Install and the traps worth knowing

Install the pack via ComfyUI Manager (search "ComfyUI-SeedVR2_VideoUpscaler," install, restart) or clone it: cd ComfyUI && git clone https://github.com/numz/ComfyUI-SeedVR2_VideoUpscaler.git custom_nodes/seedvr2_videoupscaler, install requirements.txt, restart. Models auto-download on first use.

Two things to know before you judge the output. SeedVR2 lifts contrast - enough that some people feel the result reads as more AI-generated than the input, so eyeball it. And on close-up faces it can wreck skin texture (the corpus's bluntest review was "human to lizard upscaler"). It's not a settings bug, it's the model - give recognizable faces their own pass with ADetailer or inpainting rather than trusting one run. For video specifically, fine repeating textures (patterned wallpaper, fabric weave) can shimmer because consecutive frames resolve them differently; that's the temporal problem, and temporal_overlap only softens it.

The output is a plain IMAGE batch, normalized for ComfyUI, matching your input's RGB/RGBA format - wire it into a Save Image or a video combine node and you're done.

CategorySEEDVR2

Inputs (15)

NameTypeDefaultDescription
imageIMAGEInput video frames as image batch. Accepts both RGB (3-channel) and RGBA (4-channel) formats. Output format will match input format.
ditSEEDVR2_DITDiT model configuration from SeedVR2 (Down)Load DiT Model node
vaeSEEDVR2_VAEVAE model configuration from SeedVR2 (Down)Load VAE Model node
seedINT420–4294967295Random seed for reproducible generation (default: 42). Same seed with same inputs produces identical output.
resolutionINT108016–16384Target resolution for the shortest edge in pixels (default: 1080). Automatically maintains aspect ratio of input. Even values required for optimal processing.
max_resolutionINT00–16384Maximum resolution limit for any dimension (default: 0, no limit). If any edge exceeds this after applying resolution, both dimensions are scaled down proportionally. Useful to prevent excessive VRAM usage on extreme aspect ratios.
batch_sizeINT51–16384Number of frames processed together per batch (default: 5). Must follow pattern 4n+1: 1, 5, 9, 13, 17, 21, ... • Higher values: Better temporal consistency and faster processing • Lower values: Reduced VRAM usage Ideally match to shot length for best quality.
uniform_batch_sizeBOOLEANfalsePad final batch to match batch_size (default: False). Prevents temporal artifacts caused by small final batch. Add extra compute but recommended for optimal quality.
color_correctionCOMBOlabCorrects color shifts in upscaled output to match original input (default: lab). The upscaling process may alter colors; this applies color grading to restore them. • lab: Perceptual color matching with detail preservation (recommended) • wavelet: Frequency-based natural colors, preserves fine details • wavelet_adaptive: Wavelet base with targeted saturation correction • hsv: Hue-conditional saturation matching • adain: Statistical style transfer approach • none: No color correction applied
temporal_overlapoptINT00–16Overlapping frames between consecutive batches (default: 0, disabled). Improves temporal consistency across batch boundaries through blending. Values 1-4 work well for most content.
prepend_framesoptINT00–32Number of frames to prepend (reversed from start) before processing (default: 0). Helps reduce artifacts at video beginning. Prepended frames are automatically removed from final output.
input_noise_scaleoptFLOAT0.0000–1Input noise injection scale (default: 0.0, disabled). Adds controlled variation to input images before encoding. Range: 0.0 (no noise) to 1.0 (maximum noise). Can help with certain types of artifacts.
latent_noise_scaleoptFLOAT0.0000–1Latent space noise injection scale (default: 0.0, disabled). Adds controlled variation during the diffusion process. Range: 0.0 (no noise) to 1.0 (maximum noise). Can soften details if input_noise_scale doesn't help.
offload_deviceoptCOMBOcpuDevice for storing intermediate tensors between processing phases (default: cpu). • 'none': Keep all tensors on inference device (fastest but highest VRAM usage) • 'cpu': Offload to system RAM (recommended for long videos, slower transfers) • 'cuda:X': Offload to another GPU (good balance if available, faster than CPU)
enable_debugoptBOOLEANfalseEnable detailed debug logging (default: False). Shows memory usage, timing information, and processing details. Useful for troubleshooting errors and performance issues.

Outputs (1)

NameTypeDescription
IMAGEIMAGEUpscaled video frames with color correction applied. Format (RGB/RGBA) matches input. Range [0, 1] normalized for ComfyUI compatibility.