SeedVR2 Video Upscale

bytedance/seedvr/upscale/video

Seedvr 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.

Base price
$0.31USD / run
Execution
async
Model type
video
Input fields
9
Production route

Try the model

Playground

Open playground
Input
The input video to be processed
The format of the output video. Allowed values: X264 (.mp4), VP9 (.webm), PRORES4444 (.mov), GIF (.gif).
The random seed used for the generation process.
The quality of the output video. Allowed values: low, medium, high, maximum.
01
The noise scale to use for the generation process. Range: 0 to 1.
The target resolution to upscale to when `upscale_mode` is `target`. Allowed values: 720p, 1080p, 1440p, 2160p.
110
Upscaling factor to be used. Will multiply the dimensions with this factor when `upscale_mode` is `factor`. Range: 1 to 10.
The write mode of the output video. Allowed values: fast, balanced, small.
The 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. Allowed values: target, factor.
OutputExample

Examples

Select an example to load its inputs and result into the playground.

Model card

Specifications

Pricing

Base price
$0.31 / run

Context & modalities

Input
Schema-defined
Output
video

Capabilities

Chat
Not supported
Vision
Not supported
Reasoning
Not supported
Structured output
Not supported
Function calling
Not supported
Audio input
Not supported

Access

Provider
ByteDance
Model ID
bytedance/seedvr/upscale/video
Execution
async
Base URL
https://api.sandbase.ai
API
Unified Run API
Endpoint
/v1/run

API README

SeedVR2 Video Upscale

SeedVR2 video upscale restores and enlarges a video by a factor (default 2×) or to a target resolution, with temporal consistency across frames.

Fields

FieldTypeDefaultNotes
videovideo URL, required—Video to upscale.
output_formatX264 (.mp4) / VP9 (.webm) / PRORES4444 (.mov) / GIF (.gif)X264 (.mp4)Output file format.
seedintegerrandomFix it to compare prompt changes.
output_qualitylow / medium / high / maximumhighEncoder quality.
noise_scalenumber 0–10.1Higher values add more restored detail.
target_resolution720p / 1080p / 1440p / 2160p1080pUsed in target mode.
upscale_factornumber 1–102Used in factor mode.
output_write_modefast / balanced / smallbalancedEncoder speed/size trade-off.
upscale_modetarget / factorfactorfactor multiplies the input size; target upscales to target_resolution.

Billing

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 30fps720p1080p4K
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.

Limits

  • Higher factors on long clips can be expensive; check the output size first.

Also on SandBase

Related: bytedance/upscaler/video (per-second pricing), bytedance/seedvr/upscale/image.

Start building

Send your first request

OpenAI-compatible endpoint with unified authentication and usage tracking.

Production API
Unified Run API endpoint
https://api.sandbase.ai/v1/run
Model ID
bytedance/seedvr/upscale/video
# 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"

Choose your model

Compare models

All image & video models
ModelTypeDefault priceReleased
ByteDanceVideo$0.31 / runSep 22, 2025
ByteDanceVideo$0.53 / runOct 15, 2026
ByteDanceVideo$1.80 / runJul 1, 2026
ByteDanceVideo$1.80 / runJul 1, 2026
ByteDanceVideo$1.80 / runJul 1, 2026
ByteDanceVideo$0.60 / runJun 24, 2026

Questions

FAQ

How do I call ByteDance SeedVR2 Video Upscale through SandBase?

Create a SandBase API key, then send requests with the model ID "bytedance/seedvr/upscale/video" to Unified Run API (/v1/run) at https://api.sandbase.ai. The request examples on this page show the exact payload.

Do I need a separate ByteDance account?

No. One SandBase API key and balance gives you access to ByteDance SeedVR2 Video Upscale and the other models in the catalog; you do not need to sign up with ByteDance separately.