seedinteger
The random seed used for the generation process.
bytedance/seedvr/upscale/videoSeedvr Upscale Video by Bytedance - AI-powered video editing and transformation. Apply style transfer, motion control, lip-sync, and visual effects to existing videos with natural language instructions.
Try the model
Customize your input with more control.
What would you like to do next?
Select an example to load its inputs and result into the playground.
{
"video": "https://static.sandbase.ai/examples/7de0d710-8d33-4b43-b1f2-b9b69e54f046/input/f7174bd6-9315-4ac6-865b-eaeaa4c562bf.mp4"
}SeedVR2 video upscale restores and enlarges a video by a factor (default 2×) or to a target resolution, with temporal consistency across frames.
| Field | Type | Default | Notes |
|---|---|---|---|
video | video URL, required | — | Video to upscale. |
output_format | X264 (.mp4) / VP9 (.webm) / PRORES4444 (.mov) / GIF (.gif) | X264 (.mp4) | Output file format. |
seed | integer | random | Fix it to compare prompt changes. |
output_quality | low / medium / high / maximum | high | Encoder quality. |
noise_scale | number 0–1 | 0.1 | Higher values add more restored detail. |
target_resolution | 720p / 1080p / 1440p / 2160p | 1080p | Used in target mode. |
upscale_factor | number 1–10 | 2 | Used in factor mode. |
output_write_mode | fast / balanced / small | balanced | Encoder speed/size trade-off. |
upscale_mode | target / factor | factor | factor multiplies the input size; target upscales to target_resolution. |
Billed on output video data at $0.001 per megapixel (width × height × frames). For 30fps output that is about $0.028 per second at 720p, $0.062 at 1080p, and $0.25 at 4K. The quote before submission assumes 5 seconds of 1080p at 30fps.
| Output at 30fps | 720p | 1080p | 4K |
|---|---|---|---|
| 5s | $0.1382 | $0.311 | $1.2442 |
| 10s | $0.2765 | $0.6221 | $2.4883 |
| 30s | $0.8294 | $1.8662 | $7.465 |
Failed runs are not charged.
Related: bytedance/upscaler/video (per-second pricing), bytedance/seedvr/upscale/image.
Start building
Submit this model through the SandBase Unified Run API.
# The quoted heredoc keeps Unicode and shell metacharacters unchanged.
result=$(curl --fail-with-body --silent \
-X POST "https://api.sandbase.ai/v1/run" \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'SANDBASE_JSON'
{
"model": "bytedance/seedvr/upscale/video",
"video": "https://static.sandbase.ai/examples/bytedance/seedvr/upscale/video/input_video_0.mp4",
"noise_scale": 0.1,
"upscale_mode": "factor",
"output_format": "X264 (.mp4)",
"output_quality": "high",
"upscale_factor": 2,
"output_write_mode": "balanced",
"target_resolution": "1080p"
}
SANDBASE_JSON
)
run_id=$(printf '%s' "$result" | jq -r .id)
for attempt in $(seq 1 120); do
status=$(printf '%s' "$result" | jq -r .status)
case "$status" in completed|failed|timeout) break ;; esac
sleep 2
result=$(curl --fail-with-body --silent \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
"https://api.sandbase.ai/v1/run/$run_id")
done
status=$(printf '%s' "$result" | jq -r .status)
[ "$status" = completed ] || { echo "Generation ended: $status" >&2; exit 1; }
printf '%s\n' "$result"Create a SandBase API key and set it in your server environment. All requests use Bearer authentication.
export SANDBASE_API_KEY="YOUR_API_KEY"Keep the key on your server. Do not expose it in browser code or commit it to a repository.
POST to /v1/run with this model ID and its inputs. The request example above includes submission and polling.
Use the returned run ID to poll until the status is completed, failed or timeout. Read output only after completed.
curl "https://api.sandbase.ai/v1/run/$RUN_ID" \
-H "Authorization: Bearer $SANDBASE_API_KEY"Pass a publicly accessible file URL in the model’s image, video or audio field. Supported formats and limits are shown beside each Playground input.
Use the upload or replace control on supported image fields in the Playground. Video URL fields accept a hosted driving video; they do not imply video-upload support.
seedintegerThe random seed used for the generation process.
videostringrequiredThe input video to be processed
noise_scalenumberThe noise scale to use for the generation process.
Default: 0.1
Minimum: 0
Maximum: 1
upscale_modestringThe mode to use for the upscale. If 'target', the upscale factor will be calculated based on the target resolution. If 'factor', the upscale factor will be used directly.
Default: "factor"
Possible values: "target", "factor"
output_formatstringThe format of the output video.
Default: "X264 (.mp4)"
Possible values: "X264 (.mp4)", "VP9 (.webm)", "PRORES4444 (.mov)", "GIF (.gif)"
output_qualitystringThe quality of the output video.
Default: "high"
Possible values: "low", "medium", "high", "maximum"
upscale_factornumberUpscaling factor to be used. Will multiply the dimensions with this factor when `upscale_mode` is `factor`.
Default: 2
Minimum: 1
Maximum: 10
output_write_modestringThe write mode of the output video.
Default: "balanced"
Possible values: "fast", "balanced", "small"
target_resolutionstringThe target resolution to upscale to when `upscale_mode` is `target`.
Default: "1080p"
Possible values: "720p", "1080p", "1440p", "2160p"
{
"model": "bytedance/seedvr/upscale/video",
"video": "https://static.sandbase.ai/examples/bytedance/seedvr/upscale/video/input_video_0.mp4",
"noise_scale": 0.1,
"upscale_mode": "factor",
"output_format": "X264 (.mp4)",
"output_quality": "high",
"upscale_factor": 2,
"output_write_mode": "balanced",
"target_resolution": "1080p"
}A completed run exposes its result in output. The following is the model’s saved example, not a new generation.
[
{
"poster": "https://static.sandbase.ai/examples/posters/5f3e04e039f48baab255.jpg",
"source": "ByteDance/Volcengine schema mirror",
"source_url": "https://docs.volcengine.com/docs/ark/seedance-2-0",
"url": "https://static.sandbase.ai/examples/7de0d710-8d33-4b43-b1f2-b9b69e54f046/output/70751648-6a01-4141-a2cc-8a5b101cfd7e.mp4"
}
]