> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.

# RelayVSR: 2x and 4x video upscaling in ComfyUI

> Upscale footage 2x or 4x in ComfyUI with RelayVSR, a one-step Wan2.2 model that restores keyframes and fills in every frame with a Flash decoder.

RelayVSR upscales real footage in one pass. A one-step Wan2.2 5B model writes reference latents every 15th frame, and a small Flash decoder fills the frames between them from those latents and the original low-quality clip. ComfyUI support landed in [ComfyUI #17511](https://github.com/Comfy-Org/ComfyUI/pull/17511).

Frame rate and audio pass through untouched, so only the picture is rescaled. The scale factor comes from the checkpoint rather than a widget: a 2x model only works with the 2x VAE, and mixing pairs fails.

> [!TIP]
>
> > [tab] Local users
> >
> > Make sure your ComfyUI is updated.
> >
> > * [Download ComfyUI](https://www.comfy.org/download)
> > * [Update Guide](https://docs.comfy.org/installation/update_comfyui.md)
> >
> > Workflows in this guide can be found in the [Workflow Templates](https://docs.comfy.org/interface/features/template.md).
> > If you can't find them in the template, your ComfyUI may be outdated.
> >
> > If nodes are missing when loading a workflow, possible reasons:
> >
> > 1. You are not using the latest ComfyUI version (Nightly version)
> > 2. Some nodes failed to import at startup
>
> > [tab] Cloud users
> >
> > * [Cloud](https://cloud.comfy.org) will update after ComfyUI stable release.
> >
> > So, if you find any core node missing in this document, it might be because the new core nodes have not yet been released in the latest stable version. Please wait for the next stable release.

## Models

Download the pair for the scale you want and place each file in the folder shown on its card.

> [card] [Diffusion Model (2x)](https://huggingface.co/Comfy-Org/RelayVSR/resolve/main/diffusion_models/relayvsr_x2_lightx2v_int8_convrot.safetensors)
>
> relayvsr\_x2\_lightx2v\_int8\_convrot.safetensors → ComfyUI/models/diffusion\_models/

> [card] [VAE (2x)](https://huggingface.co/Comfy-Org/RelayVSR/resolve/main/vae/relayvsr_flash_vae_x2_fp32.safetensors)
>
> relayvsr\_flash\_vae\_x2\_fp32.safetensors → ComfyUI/models/vae/

> [card] [Diffusion Model (4x)](https://huggingface.co/Comfy-Org/RelayVSR/resolve/main/diffusion_models/relayvsr_x4_int8_convrot.safetensors)
>
> relayvsr\_x4\_int8\_convrot.safetensors → ComfyUI/models/diffusion\_models/

> [card] [VAE (4x)](https://huggingface.co/Comfy-Org/RelayVSR/resolve/main/vae/relayvsr_flash_vae_x4_fp32.safetensors)
>
> relayvsr\_flash\_vae\_x4\_fp32.safetensors → ComfyUI/models/vae/

The 2x pair was retrained by [LightX2V](https://huggingface.co/lightx2v/RelayVSR_X2) for the step after video generation, so a 768 x 1344 clip from MiniMax-H3 comes out at 1536 x 2688. The 4x pair is the original RelayVSR scale.

## Video Upscale: RelayVSR 2x

Upscale a clip 2x with the workflow below. The upscaler runs inside a subgraph, so the canvas only shows the video going in and coming out.

![RelayVSR 2x video upscale workflow preview](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/main/templates/utility_relayvsr_video_x2_upscale-1.webp)

> [card] [Download Workflow](https://github.com/Comfy-Org/workflow_templates/blob/main/templates/utility_relayvsr_video_x2_upscale.json)
>
> Download JSON or search "RelayVSR 2x" in Template Library

**Input materials**

> [card] [utility\_relayvsr\_video\_x2\_upscale\_input.mp4](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/main/input/utility_relayvsr_video_x2_upscale_input.mp4)
>
> `LoadVideo` · `utility_relayvsr_video_x2_upscale_input.mp4`

1. Load your clip in the `Load Video` node. The template trims it to the first 5 seconds with a `Trim Video` node, so raise that duration for longer clips or upscale long footage in passes.
2. Run the workflow. The result is saved by `Save Video` under `ComfyUI/output/video/`.

For 4x, swap the two loader values in the subgraph: `UNETLoader` to `relayvsr_x4_int8_convrot.safetensors` and `VAELoader` to `relayvsr_flash_vae_x4_fp32.safetensors`. Nothing else changes.

If a pass runs out of memory, trim the clip and upscale it in several passes.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.