SeedVR2 (Down)Load DiT Model
Pick the brain, dial the VRAM
- torch_compile_args
- SEEDVR2_DIT
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_devicepoints. Start at16(half), climb toward32for the 3B model or36for 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 toflash_attn_2(Ampere+),flash_attn_3(Hopper+), orsageattn_2/sageattn_3(Blackwell / RTX 50-series) for faster attention. Leave it onsdpaunless 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_deviceset.
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.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | seedvr2_ema_3b_fp8_e4m3fn.safetensors | DiT (Diffusion Transformer) model for video upscaling. Models automatically download on first use. Additional models can be added to the ComfyUI models folder. |
| device | COMBO | cuda:0 | GPU device for DiT model inference (upscaling phase) |
| blocks_to_swapopt | INT | 00–36 | Number 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_componentsopt | BOOLEAN | false | Offload 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_deviceopt | COMBO | none | Device 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_modelopt | BOOLEAN | false | Keep DiT model loaded on offload_device between workflow runs. Useful for batch processing to avoid repeated loading. Requires offload_device to be set. |
| attention_modeopt | COMBO | sdpa | Attention 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_argsopt | TORCH_COMPILE_ARGS | Optional torch.compile optimization settings from SeedVR2 Torch Compile Settings node. Provides 20-40% speedup with compatible PyTorch 2.0+ and Triton installation. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SEEDVR2_DIT | SEEDVR2_DIT | DiT model configuration containing model path, device settings, BlockSwap parameters, and compilation options. Connect to Video Upscaler node. |