Source: https://docs.sogni.ai/models/relayvsr/

# RelayVSR video upscaling

Sogni runs the open-weight **RelayVSR** video super-resolution models on the Sogni Supernet as a standalone job, beside [FlashVSR](https://docs.sogni.ai/models/flashvsr/). Give it one finished video, such as a MiniMax H3, LTX, or Wan render or a clip you upload, and it returns a larger copy at **1080p, 1440p, or 2160p on the short edge**. It is promptless: the output size is the only choice you make.

The result keeps the source's frame count, its exact frame rate, the full aspect ratio, and the original audio track. RelayVSR is opt-in: a request that does not name it runs FlashVSR as before.

## [#](https://docs.sogni.ai/models/relayvsr/#workflow-ids)Workflow IDs

| Task | Model ID | Enlarges up to | Largest source (short × long edge) |
| --- | --- | --- | --- |
| RelayVSR 2x Video Upscale | `relayvsr_x2_lightx2v_int8_convrot` | 2 times | 1080 × 1920 |
| RelayVSR 4x Video Upscale | `relayvsr_x4_int8_convrot` | 4 times | 768 × 1344 |

Both take one source video (`referenceVideo`) and the output short edge (`upscaleResolution`: `1080`, `1440`, or `2160`). Use the 2x model when the target is no more than twice the source's short edge, and the 4x model otherwise.

## [#](https://docs.sogni.ai/models/relayvsr/#product-availability)Product availability

-   **Sogni Web:** Video → **Upscale Video (Enhance)**, then choose **RelayVSR** as the model. Sogni Web picks the 2x or 4x model for you.
-   **Sogni API and SDKs:** the exact model IDs above.
-   **Sogni Intelligence** (hosted chat and durable workflows): the promptless `upscale_video` tool with `model: 'relayvsr'`, which picks the 2x or 4x model for you. See [Media Utilities](https://docs.sogni.ai/api-reference/media-utilities/#upscale-a-video).

## [#](https://docs.sogni.ai/models/relayvsr/#choosing-a-target)Choosing a target

The target must be larger than the source's short edge and no more than the model's scale times that short edge. The output's long edge follows the source's shape, rounded to an even number of pixels, up to **3840×2160** (2160×3840 in portrait). A target that would make the long edge longer than 3840 px is refused, so a 600×1344 source reaches 1440 but not 2160.

| Source short edge | Targets |
| --- | --- |
| 270–359 px | 1080 |
| 360–539 px | 1080, 1440 |
| 540–768 px | 1080, 1440, 2160 |
| 769–1079 px | 1080, 1440 |
| 1080 px | 1440, 2160 |

A source that is longer than 1344 px on its long edge can use the 2x model only, so targets above twice its short edge are out of reach.

## [#](https://docs.sogni.ai/models/relayvsr/#source-requirements)Source requirements

-   Within the limits of the model the target needs, as listed above.
-   **1–900 frames** at **1 to 60 fps**.
-   SDR, **100 MB or less**. HDR sources are refused; convert them to SDR first.
-   Variable-frame-rate, rotated and non-square-pixel clips need no re-export. The server conforms them before upscaling, and every limit here applies to the clip as it plays. A variable-rate clip gets a steady frame rate, so its frame count can change.
-   You do not send the source's frame count, frame rate, or size: the server probes the upload and uses its verified values. Any `frames`, `fps`, `width`, or `height` you do send must match those values.

## [#](https://docs.sogni.ai/models/relayvsr/#pricing)Pricing

An upscale is priced on the source's length and pixel area, in the same Spark units as every other model, and **every target costs the same for a given source and model** because the model does the same work for all of them. Sogni shows the exact estimate before the job runs.

## [#](https://docs.sogni.ai/models/relayvsr/#worker-hardware)Worker hardware

Workers need Comfy Worker **1.0.263** or newer on the CUDA 13 image and a GPU with at least **23 GB** of memory. The fleet's standard system RAM floor applies. See [hardware requirements](https://docs.sogni.ai/run-a-worker/fast-worker/hardware-requirements/).

## [#](https://docs.sogni.ai/models/relayvsr/#javascript-sdk-example)JavaScript SDK example

```
import { SogniClient } from '@sogni-ai/sogni-client';
import fs from 'node:fs';

const sogni = await SogniClient.createInstance({ appId: 'my-app', network: 'fast' });
await sogni.account.login('username', 'password');

const project = await sogni.projects.create({
  type: 'video',
  network: 'fast',
  modelId: 'relayvsr_x2_lightx2v_int8_convrot', // a 1080p source to 4K
  positivePrompt: '',
  numberOfMedia: 1,
  referenceVideo: fs.readFileSync('./clip.mp4'),
  upscaleResolution: 2160 // or 1080, 1440: the output's short edge
});

const [upscaledUrl] = await project.waitForCompletion(); // MP4 with the original audio
```

To show a price first, call `estimateVideoCost()` with the output `width`/`height` (the source scaled so its short edge equals the target, both edges rounded to even pixels), the source's `frames` and `fps`, `steps: 1`, and `sourceWidth`/`sourceHeight`; the job itself is charged from the verified source.

## [#](https://docs.sogni.ai/models/relayvsr/#credits)Credits

RelayVSR is by kopperx, with LightX2V for the 2x model. Sogni runs the [Comfy-Org repackaging](https://huggingface.co/Comfy-Org/RelayVSR) under the Apache 2.0 license.
