Seedream 5.0 Pro jest już LIVE | Wypróbuj w Generator obrazów →

Upscale V1

runwayml /

RunwayML Upscale V1 upscales videos to 4K via simple file upload, billed at $0.02/sec for fast, high-quality upscaling. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

upscaler
Wejście

Bezczynny

$0.02za uruchomienie·~50 / $1

PrzykładyZobacz wszystkie

Powiązane modele

README

Runway Video Upscaler V1

Enhance your video resolution with Runway's AI-powered upscaling technology. Simply upload a video and get back a higher-resolution version with improved clarity, sharper details, and cleaner edges — no complex settings required.

Why It Looks Great

  • AI-enhanced detail: Reconstructs fine textures, edges, and details that traditional upscaling cannot recover.
  • Temporal consistency: Maintains stable quality across frames, minimizing flickering and artifacts.
  • Motion preservation: Keeps fast action and camera movements smooth without introducing blur.
  • Artifact reduction: Cleans up compression noise and blocky artifacts from lower-quality sources.
  • One-click simplicity: No parameters to tune — just upload and upscale.

Parameters

ParameterRequiredDescription
videoYesSource video file (upload or public URL). Max 10 minutes.

How to Use

  1. Upload your video — drag and drop or paste a public URL.
  2. Run — click the button to start processing.
  3. Download — preview and save your upscaled video.

Pricing

Per-second billing with a 5-second minimum. Maximum video length: 10 minutes.

MetricCost
Per second$0.02
Minimum charge$0.10 (5 seconds)

Billing Rules

  • Minimum charge: 5 seconds ($0.10)
  • Maximum duration: 600 seconds (10 minutes)
  • Billed duration: Video length in seconds (rounded down), with 5-second minimum
  • Total cost: Billed duration × $0.02

Examples

Video LengthBilled DurationTotal Cost
3s5s (minimum)$0.10
15s15s$0.30
1m (60s)60s$1.20
5m (300s)300s$6.00
10m (600s)600s (maximum)$12.00

Best Use Cases

  • Content Restoration — Upscale old or low-resolution footage for modern displays.
  • Social Media — Enhance video quality before posting to platforms that compress uploads.
  • Video Production — Improve B-roll or archival footage for professional projects.
  • Streaming & Broadcast — Prepare lower-resolution content for HD or 4K delivery.
  • Personal Archives — Revive old home videos and memories with improved clarity.

Pro Tips for Best Results

  • Upload the highest-quality source available — avoid heavily compressed inputs when possible.
  • Keep the original frame rate; avoid re-encoding before upload.
  • For videos longer than 10 minutes, split into segments and process separately.
  • Works best on content with clear subjects; extremely noisy or blurry sources may have limited improvement.

Notes

  • If using a URL, ensure it is publicly accessible. A preview thumbnail in the interface confirms successful loading.
  • Processing time varies based on video length and current queue load.
  • For longer videos exceeding the 10-minute limit, split into multiple segments, process each, then merge afterward.
Uwaga:Ta strona korzysta z modeli AI udostępnianych przez podmioty trzecie.

Upscale v1 API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/runwayml/upscale-v1 with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Upscale v1 below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "video": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4"
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/runwayml/upscale-v1" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $WAVESPEED_API_KEY" \
  -d "$REQUEST_BODY")

TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "$TASK" | jq -r '.urls.get // empty')
if [ -z "$RESULT_URL" ]; then
  RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
    -H "Authorization: Bearer $WAVESPEED_API_KEY")
  RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
  STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
  case "$STATUS" in
    completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "$STATUS" >&2; exit 1 ;;
  esac
done
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/runwayml/upscale-v1";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "video": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4"
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
  `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;

// 2. Poll until the prediction finishes.
while (true) {
  const resultBody = await requestJson(resultUrl, {
    headers: { "Authorization": `Bearer ${apiKey}` },
  });
  const result = resultBody.data ?? resultBody;
  if (result.status === "completed") {
    console.log(result.outputs);
    break;
  }
  if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
  if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
  await new Promise(resolve => setTimeout(resolve, 2000));
}
Python example
import json
import os
import time
from urllib.request import Request, urlopen

api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "video": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4"
}

def request_json(url, data=None):
    request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
    with urlopen(request) as response:
        return json.load(response)

# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/runwayml/upscale-v1", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
    raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"

# 2. Poll until the prediction finishes.
while True:
    result_body = request_json(result_url)
    result = result_body.get("data", result_body)
    status = result.get("status")
    if status == "completed":
        print(result.get("outputs", []))
        break
    if status in {"failed", "cancelled", "timeout"}:
        raise RuntimeError(result)
    if status not in {"created", "processing"}:
        raise RuntimeError(f"Unexpected status: {status}")
    time.sleep(2)

Upscale v1 API — Frequently asked questions

What is the Upscale v1 API?

Upscale v1 is a Runwayml model for upscaling, exposed as a REST API on WaveSpeedAI. RunwayML Upscale V1 upscales videos to 4K via simple file upload, billed at $0.02/sec for fast, high-quality upscaling. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Upscale v1 API?

POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/runwayml/runwayml-upscale-v1.

How much does Upscale v1 cost per run?

Upscale v1 starts at $0.020 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.

What inputs does Upscale v1 accept?

Key inputs: `video`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/runwayml/runwayml-upscale-v1.

How long does Upscale v1 take to generate?

Median end-to-end generation time on WaveSpeedAI is around 262 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.

Can I use Upscale v1 outputs commercially?

Commercial usage rights depend on the model's license, set by its provider (Runwayml). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.

Upscale V1 | AI Video Upscaler API | WaveSpeedAI