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
720p and native 4K upscaling are live now, via seedance-upscale-720p and seedance-upscale-4k. 1080p and 2K 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 | Live |
seedance-upscale-720p or seedance-upscale-4k. The 1080p and 2K 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-720porseedance-upscale-4kand the source video inmetadata.content[]. Nopromptis needed. 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"
}4K example
Same shape, different model: set it to seedance-upscale-4k to get native 4K output instead.
curl https://relaydance.com/v1/video/generations \
-H "Authorization: Bearer $RELAYDANCE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-upscale-4k",
"metadata": {
"content": [
{
"type": "video_url",
"video_url": { "url": "https://example.com/my-720p-clip.mp4" },
"role": "reference_video"
}
]
}
}'
# -> { "task_id": "task_xyz789", "status": "queued" }
curl https://relaydance.com/v1/video/generations/task_xyz789 \
-H "Authorization: Bearer $RELAYDANCE_API_KEY"{
"task_id": "task_xyz789",
"status": "completed",
"url": "https://...4k.mp4",
"format": "mp4"
}Request parameters
| Field | Description |
|---|---|
model | Upscale model ID. Live: seedance-upscale-720p, seedance-upscale-4k |
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 |
seedance-upscale-4k is also live and uses the exact same request shape shown above: just set model to seedance-upscale-4k instead. See Auto-upscale from the console below.#Auto-upscale from the console
The video generation screen in the RelayDance console has a “automatically upscale to 4K after generation” checkbox. It is not a special API parameter: there is no auto_upscale flag on POST /v1/video/generations. Checking it automates two separate calls: once your generation task succeeds, the console submits a second task with model: "seedance-upscale-4k" and your finished clip's URL as the source, with no extra confirmation. If you are calling the API directly, do the same thing yourself: generate normally, then submit the result URL to seedance-upscale-4k as a follow-up call.
#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.
seedance-upscale-4k is usually cheaper than generating natively at 4K with Seedance 2.0 Pro, trading a small amount of fidelity for a lower total cost.#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[]. The live paths today are 720p and native 4K output, via seedance-upscale-720p and seedance-upscale-4k.
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 aren't 1080p and 2K live yet?
The 720p and native-4K workflows are the ones that are built and verified end to end. The 1080p and 2K 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.
Related guides
- Which video model to use: Seedance 2.0 vs 1.5 Pro vs HappyHorse: A head-to-head comparison to help you pick the right model for your use case.
- How to generate video with audio through an API: Turn on generated audio and which models support it.
- Multi-reference image fusion for video generation: Blend up to 9 reference images, 3 videos and 3 audio tracks into one generation.