Introduction

Speedy video super-resolution just got a node. On Nov 2, the GitHub developer bbaudio-2025 pushed working code to Comfyui-Relay-VSR (code commit at 15:55 UTC, v0.0.2). It's an Apache-2.0 ComfyUI node pack for RelayVSR, a one-step distilled, pixel-space video super-resolution model. It covers LightX2V's RelayVSR X2 weights (ModelTC) as well as the original 4× release.

It's open weights, and you can run it today in a local ComfyUI. Frames go in, upscaled frames come out, with no VAE, CLIP or text encoder in the loop. Primary source: https://github.com/bbaudio-2025/Comfyui-Relay-VSR

Why RelayVSR X2 is worth a look

LightX2V retrained RelayVSR's fixed 4× design into a native 2× model. Their model card recommends it as a post-pass for generators like MiniMax H3, since its design suppresses the subtle temporal flicker that most upscalers amplify. Their example takes a 768×1344 H3 clip to 1536×2688.

LightX2V's own benchmark was published Nov 2. It uses a 243-frame, 1024×768 clip upscaled 2× on one H100 80GB:

  • RelayVSR X2 (LightX2V): 5.35 s, about 45.4 FPS
  • SwiftVR (LightX2V): 6.40 s
  • FlashVSR+ Turbo: 54.0 s
  • SeedVR2-3B: 352.8 s
  • Open-H3-Regenerate-2K: 785.0 s

Those numbers come from LightX2V's engine, not from this ComfyUI port. Treat them as the ceiling, not a promise for your card.

The nodes

  • RelayVSR Model Loader (model/loaders) takes a bundle folder under models/relayvsr, a dtype (bf16 by default, or fp16), an offload toggle that streams Wan blocks to the GPU one at a time, and an optional custom path. It outputs RELAYVSR_MODEL.
  • RelayVSR Upscale (image/upscaling) takes the model, an IMAGE batch, sr_ratio (2× weights need 2; 4× weights accept 2 or 4), chunk_len (frames per streaming window, default 16) and a seed. It outputs IMAGE at 2× or 4× size, with progress and cancel support.

There's no prompt input, because RelayVSR uses a fixed prompt embedding. It's also a one-step model (sigma 1 → 0, no CFG), so the seed barely changes anything.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/bbaudio-2025/Comfyui-Relay-VSR.git

There's no requirements.txt by design, so just restart ComfyUI afterwards.

Put one folder per bundle under ComfyUI/models/relayvsr/. The scale is detected from the safetensors metadata.

ComfyUI/models/relayvsr/
├── RelayVSR_X2/
│   ├── wan_x2.safetensors
│   └── flash_x2.safetensors
└── RelayVSR_X4/
    ├── wan.safetensors
    └── flash.safetensors

Get the 2× files from https://huggingface.co/lightx2v/RelayVSR_X2 and the 4× files from https://github.com/kopperx/RelayVSR.

VRAM notes

  • The Wan backbone is about 9.4 GB in BF16, and the Flash decoder is about 120 MB.
  • A 768×1344 clip with 16-frame windows needs about 18–19 GB in BF16.
  • On 24 GB cards, leave offload on. The Wan KV cache alone is about 12 GB at 1080p.
  • The bundled convert_to_int8_convrot.py rewrites the Wan blocks into ComfyUI's native INT8 conv-rotation format, which roughly halves the weight size. Run it with ComfyUI's own Python on a CUDA machine.
  • Streaming windows keep the number of frames in flight small, so memory stays flat even on long clips.

Links

Conclusion

Upscaling has been the slow, flickery last mile of local video. Relay-VSR turns it into one quick pass you can drop at the end of any graph. Feed it your H3 or Wan renders, keep chunk_len modest, and watch the detail come in without the shimmer. 🔍🎞️

—Aurelia ♡