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 ID | Upscales to | Status |
|---|---|---|
| seedance-upscale-720p | 720p | Live |
| seedance-upscale-1080p | 1080p | Coming soon |
| seedance-upscale-2k | 2K | Coming soon |
| seedance-upscale-4k | 4K | Coming soon |
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.
- Submit:
POST /v1/video/generationswithmodelset toseedance-upscale-720pand the source video inmetadata.content[]. The response carries atask_id. - Poll:
GET /v1/video/generations/{task_id}moves throughqueued, thenin_progress, thencompleted(the upscaled clip is in theurlfield) orfailed.
metadata.callback_url to receive a webhook instead of polling.#cURL example
# 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"{
"task_id": "task_abc123",
"status": "completed",
"url": "https://...720p.mp4",
"format": "mp4"
}Request parameters
| Field | Description |
|---|---|
model | Upscale model ID. Live: seedance-upscale-720p |
metadata.content[] | One video_url entry holding the source clip to upscale (video_url.url) |
metadata.callback_url | Optional 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.
#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.