Nodes/ComfyUI-SeedVR2_VideoUpscaler/SeedVR2 Video Upscaler
ComfyUI Node

SeedVR2 Video Upscaler

The all-in-one detail upscaler

By numz·Created about a year ago·Updated 7 months ago· 2,707
SeedVR2 Video Upscaler
  • images
  • block_swap_config
  • image
modelseedvr2_ema_3b_fp8_e4m3fn.safetensors
seed100
new_resolution1072
batch_size5
preserve_vramfalse

SeedVR2 is the upscaler you reach for when you want real detail added to an image - pores, lashes, fabric weave - without the model reinventing the subject the way SUPIR does. It's ByteDance's one-step video restoration model, released Apache 2.0 (so it's fine in commercial pipelines), and it's been the community's default "add detail" upscaler for about a year. Despite the "Video Upscaler" name, most people run it on single images, because a 3x image upscale runs on a 6GB card while the video path really wants a rented datacenter GPU.

This particular node is the original all-in-one version: model choice, resolution, batch size, and memory settings all live in one box. Newer releases of the pack split that job across separate loader and upscaler nodes for finer control, but if you found this one, it still does the whole thing end to end - feed it frames, get upscaled frames back. Simpler to wire, less to think about.

What it is and how it works

Under the hood SeedVR2 is a one-step diffusion restoration model with window attention that adapts to your input resolution. "One-step" is the important part: it's fast enough to sit inside a normal generation workflow instead of being a separate overnight job. It preserves what's already in the picture and rebuilds fine detail on top, which is exactly why it took over restoration work involving real faces - it adds detail without swapping identities.

Where it beats the old tile-based upscalers is that it's often both faster and better than something like Ultimate SD Upscale, which is not the usual trade. Where it's the wrong tool: genuinely damaged sources (heavy compression, blur) where you want repair, not preservation - that's still SUPIR's job.

The inputs that matter

  • images - your input frames as an image batch. A single image is fine.
  • model - pick your weights. You get 3B (faster, lighter on VRAM) and 7B (higher quality, hungrier), each in FP16 or FP8, plus two 7B "sharp" variants for extra detail. FP16 is the clean one; FP8 is smaller but can stamp faint tiling grids into the image, so reach for FP16 if it fits. The sharp models push detail harder but can tip plasticky on faces - great for landscapes, careful with portraits. Weights auto-download from HuggingFace on first use into ComfyUI/models/SEEDVR2, so the first run is slow, then cached.
  • new_resolution - target for the shortest edge (default 1072), aspect ratio preserved. This is your "how big" dial.
  • batch_size - default 5, and it has a hard rule: it must follow the 4n+1 formula - 1, 5, 9, 13, 17, 21… The model needs that shape for its temporal consistency math. Use 1 for a single still; for video, bigger batches are actually faster per frame and more coherent, but cost more VRAM.

seed (default 100) just makes results reproducible - same seed, same input, same output.

Fitting it on your GPU

Two inputs handle memory pressure:

  • preserve_vram - a toggle that trims peak VRAM at the cost of some speed. Flip it on if you're close to the edge.
  • block_swap_config - the optional BlockSwap input. Connect a block-swap config and it streams transformer blocks between GPU and CPU during inference, which is what lets big models run on small cards. This is the heavy lever for genuine low-VRAM setups. (Note: BlockSwap is meaningless on Apple Silicon Macs, where CPU and GPU already share memory.)

The output is a single image batch, normalized for ComfyUI and matching your input's RGB/RGBA format - wire it into Save Image.

Install and the honest caveats

Install through ComfyUI Manager (search "ComfyUI-SeedVR2_VideoUpscaler," install, restart) or clone it manually: cd ComfyUI && git clone https://github.com/numz/ComfyUI-SeedVR2_VideoUpscaler.git custom_nodes/seedvr2_videoupscaler, install its requirements.txt with your ComfyUI Python, and restart. It expects Python 3.12+ and PyTorch 2.0+.

The three things that catch people: it was famous for OOM errors early on - if you hit one, turn on preserve_vram and connect a block_swap_config before you go reducing resolution or batch size. It lifts contrast, sometimes enough that the output reads as more obviously AI-generated than the input, so compare before/after. And on close-up faces it can turn skin plasticky or scaly - the community's bluntest verdict was "human to lizard upscaler." Give recognizable faces their own pass with ADetailer or inpainting rather than trusting one run on a portrait. Judge SeedVR2 on an FP16 model on a clean source and it earns the hype; judge it on a heavy quant of a damaged face and you'll wonder what everyone's on about.

CategorySEEDVR2

Inputs (7)

NameTypeDefaultDescription
imagesIMAGE
modelCOMBOseedvr2_ema_3b_fp8_e4m3fn.safetensors6 options: seedvr2_ema_3b_fp16.safetensors, seedvr2_ema_3b_fp8_e4m3fn.safetensors, seedvr2_ema_7b_fp16.safetensors, seedvr2_ema_7b_fp8_e4m3fn.safetensors, seedvr2_ema_7b_sharp_fp16.safetensors, seedvr2_ema_7b_sharp_fp8_e4m3fn.safetensors
seedINT1000–4294967295Random seed for generation reproducibility
new_resolutionINT107216–4320Target new resolution for upscaled video
batch_sizeINT51–2048Number of frames to process per batch (recommend 4n+1 format)
preserve_vramBOOLEANfalse
block_swap_configoptblock_swap_configOptional BlockSwap configuration for low VRAM mode

Outputs (1)

NameTypeDescription
imageIMAGE