RelayDanceRelayDance
HomeModelsPricingDocs
Get API Key

Docs / Model APIs / Super-Resolution

Super-Resolution

Super-resolution upscales an existing low-resolution clip to a higher output tier using an AI model, so you can render quickly at a low resolution, then sharpen the result. It is a useful alternative to generating at a high resolution from scratch when you want speed.

#Status: what is live

Only 480p to 720p upscaling is live right now, via the model seedance-upscale-720p. Higher tiers are in the catalog but are coming soon: the per-resolution workflow behind them is not built yet.

Model IDUpscales toStatus
seedance-upscale-720p720pLive
seedance-upscale-1080p1080pComing soon
seedance-upscale-2k2KComing soon
seedance-upscale-4k4KComing soon
Today, submit super-resolution requests with seedance-upscale-720p only. The 1080p, 2K and 4K models are reserved and will start accepting requests once their workflow ships.

#How to call it

Super-resolution uses the same asynchronous task API as Video Generation. POST /v1/video/generations with your source clip in metadata.content[] as a video_url entry. The call returns a task_id immediately; poll GET /v1/video/generations/{task_id} until it finishes.

  1. Submit: POST /v1/video/generations with model set to seedance-upscale-720p and the source video in metadata.content[]. The response carries a task_id.
  2. Poll: GET /v1/video/generations/{task_id} moves through queued, then in_progress, then completed (the upscaled clip is in the url field) or failed.
Upscaling runs in the background and takes a short while to finish. Poll every few seconds, or set metadata.callback_url to receive a webhook instead of polling.

#cURL example

terminalbash
# 1) Submit an upscale task (480p source -> 720p output)
curl https://relaydance.com/v1/video/generations \
  -H "Authorization: Bearer $RELAYDANCE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-upscale-720p",
    "metadata": {
      "content": [
        {
          "type": "video_url",
          "video_url": { "url": "https://example.com/my-480p-clip.mp4" }
        }
      ]
    }
  }'
# -> { "task_id": "task_abc123", "status": "queued" }

# 2) Poll until the upscaled clip is ready
curl https://relaydance.com/v1/video/generations/task_abc123 \
  -H "Authorization: Bearer $RELAYDANCE_API_KEY"
response.jsonjson
{
  "task_id": "task_abc123",
  "status": "completed",
  "url": "https://...720p.mp4",
  "format": "mp4"
}

Request parameters

FieldDescription
modelUpscale model ID. Live: seedance-upscale-720p
metadata.content[]One video_url entry holding the source clip to upscale (video_url.url)
metadata.callback_urlOptional webhook: the final task state is POSTed here when the task finishes

#Billing

Super-resolution is pay-as-you-go, billed by the output duration and resolution tier. The models page shows the live, exact rate. Failed requests are never billed: if a task ends in failed, you are not charged for it.

Rendering at 480p and upscaling to 720p is a practical way to keep generation fast while still delivering a sharp 720p clip.

#FAQ

Can it upscale any video?

Super-resolution is built for clips you generated on RelayDance. Pass a clip URL as a video_url entry in metadata.content[]. Today the live path is a 480p source to a 720p output via seedance-upscale-720p.

How is this different from native 4K?

Native 4K (Seedance 2.0 at resolution: "4k") generates a clip directly at 4K from your prompt. Super-resolution instead takes a finished low-resolution clip and upscales it. They are separate paths: generate natively for top quality, or generate low and upscale to trade some fidelity for speed and a lower-tier cost.

Why only 720p for now?

The 480p to 720p workflow is the one that is built and verified end to end. The 1080p, 2K and 4K upscale models exist in the catalog but their per-resolution workflow is not ready yet, so they are marked coming soon and do not accept requests today.