Nodes/ComfyUI-SeedVR2_VideoUpscaler/SeedVR2 (Down)Load DiT Model
ComfyUI Node

SeedVR2 (Down)Load DiT Model

Pick the brain, dial the VRAM

By numz·Created about a year ago·Updated 8 months ago· 2,717
SeedVR2 (Down)Load DiT Model
  • torch_compile_args
  • SEEDVR2_DIT
modelseedvr2_ema_3b_fp8_e4m3fn.safetensors
devicecuda:0
blocks_to_swap0
swap_io_componentsfalse
offload_devicenone
cache_modelfalse
attention_modesdpa

This is the node where every decision that actually matters gets made. SeedVR2 has been the community's default "add real detail" upscaler for about a year now - it's ByteDance's one-step video restoration model, Apache 2.0, and it runs a 3x image upscale on a 6GB card. But the model dropdown and the VRAM knobs all live here, in the loader, not in the upscaler node. Get this node right and the rest of the workflow is plumbing. Get it wrong and you'll be staring at OOM errors or wondering why your skin looks like it's made of plastic.

It does one job: load a DiT (Diffusion Transformer) model, configure how it uses memory, and hand a SEEDVR2_DIT bundle to the SeedVR2 Video Upscaler node's dit input. That's the whole contract.

The two inputs you can't skip

  • model - this is the big one. You're choosing between 3B (faster, lighter) and 7B (higher quality, hungrier), each in a few precisions. Models download automatically from HuggingFace on first use into ComfyUI/models/SEEDVR2, so the first run is slow and then they're cached.
  • device - which GPU to run inference on, e.g. cuda:0. Leave it unless you're juggling multiple cards.

Here's the thing nobody puts in the model card, and it's the single most useful fact about this node: precision matters more than parameter count, and the quant ladder has a trap in it. FP16 is clean. FP8 has a habit of stamping faint tiling grids into the image. GGUF (the 4-bit/8-bit quants) can chew up skin texture. The most-upvoted SeedVR2 thread on r/StableDiffusion landed on FP16 for exactly this reason - GGUF "messed with the skin a lot," FP8 "added those tiling grids." So the rule: run FP16 if it fits. Drop to FP8 or GGUF only when VRAM forces your hand, and if someone tells you SeedVR2 looks bad, ask which quant they ran before you believe them. The 7B "sharp" variants push more detail but can tip plasticky - nice on landscapes, risky on faces.

The low-VRAM triad

If FP16 won't fit, you don't have to give up - you trade speed for headroom with three optional inputs that work together:

  • offload_device - set this to cpu (or another GPU) to park the model in system RAM when it's not actively crunching. This has to be set for the next two to do anything.
  • blocks_to_swap - BlockSwap. Keeps only the transformer blocks you need on the GPU and streams the rest from wherever offload_device points. Start at 16 (half), climb toward 32 for the 3B model or 36 for the 7B if you're still OOMing. Higher = less VRAM, slower. One catch: BlockSwap is dead on macOS - Apple Silicon shares memory between CPU and GPU, so there's nothing to swap to, and the node just disables it with a warning.
  • swap_io_components - squeezes out a bit more by offloading the input/output embedding layers too. The last drop of savings when BlockSwap alone isn't enough.

With FP8 or a GGUF model, blocks_to_swap: 32 and swap_io_components: True, people have run the 7B on 8GB. It's slow, but it runs.

The speed and batch knobs

  • attention_mode - defaults to sdpa, which always works. If you've got the packages installed you can switch to flash_attn_2 (Ampere+), flash_attn_3 (Hopper+), or sageattn_2 / sageattn_3 (Blackwell / RTX 50-series) for faster attention. Leave it on sdpa unless you know you installed the extras - it falls back gracefully anyway.
  • torch_compile_args - connect a SeedVR2 Torch Compile Settings node here for a 20–40% DiT speedup. Only worth it for long videos or big batches; on a single image the compile time eats the gain.
  • cache_model - keeps the model loaded on the offload device between runs so you're not reloading it every time. Handy for batch processing; needs offload_device set.

Install and gotchas

Grab the pack through ComfyUI Manager - search "ComfyUI-SeedVR2_VideoUpscaler," install, restart. Or 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 wants Python 3.12+ and PyTorch 2.0+.

The output SEEDVR2_DIT goes straight into the main upscaler node - this loader on its own does nothing you can see. Pair it with the VAE loader and the Video Upscaler, and remember that the detail-vs-plastic tradeoff you're setting here is the whole ballgame.

CategorySEEDVR2

Inputs (8)

NameTypeDefaultDescription
modelCOMBOseedvr2_ema_3b_fp8_e4m3fn.safetensorsDiT (Diffusion Transformer) model for video upscaling. Models automatically download on first use. Additional models can be added to the ComfyUI models folder.
deviceCOMBOcuda:0GPU device for DiT model inference (upscaling phase)
blocks_to_swapoptINT00–36Number of transformer blocks to swap between devices for VRAM optimization. • 0: Disabled (default) • 3B model: 0-32 blocks • 7B model: 0-36 blocks Requires offload_device to be set and different from device. Not available on macOS (unified memory architecture).
swap_io_componentsoptBOOLEANfalseOffload input/output embeddings and normalization layers to reduce VRAM. Requires offload_device to be set and different from device. Not available on macOS (unified memory architecture).
offload_deviceoptCOMBOnoneDevice to offload DiT model when not actively processing. • 'none': Keep model on inference device (default, fastest) • 'cpu': Offload to system RAM (reduces VRAM usage) • 'cuda:X': Offload to another GPU (good balance if available) Required for BlockSwap (blocks_to_swap or swap_io_components).
cache_modeloptBOOLEANfalseKeep DiT model loaded on offload_device between workflow runs. Useful for batch processing to avoid repeated loading. Requires offload_device to be set.
attention_modeoptCOMBOsdpaAttention computation backend: • sdpa: PyTorch scaled_dot_product_attention (default, stable, always available) • flash_attn_2: Flash Attention 2 (Ampere+, requires flash-attn package) • flash_attn_3: Flash Attention 3 (Hopper+, requires flash-attn with FA3 support) • sageattn_2: SageAttention 2 (requires sageattention package) • sageattn_3: SageAttention 3 (Blackwell/RTX 50xx only, requires sageattn3 package) SDPA is recommended - stable and works everywhere. Flash Attention and SageAttention provide speedup through optimized CUDA kernels on compatible GPUs.
torch_compile_argsoptTORCH_COMPILE_ARGSOptional torch.compile optimization settings from SeedVR2 Torch Compile Settings node. Provides 20-40% speedup with compatible PyTorch 2.0+ and Triton installation.

Outputs (1)

NameTypeDescription
SEEDVR2_DITSEEDVR2_DITDiT model configuration containing model path, device settings, BlockSwap parameters, and compilation options. Connect to Video Upscaler node.