Seedream 5.0 Pro уже здесь | Попробуйте в Генераторе изображений →
Войти

Wan 2.5 Video Extend

alibaba /

WAN 2.5 Video-Extend turns short clips into longer videos with preserved or generated synchronized audio for continuity. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

video-extend
Ввод

Ожидание

$0.25за запуск·~40 / $10

ПримерыСмотреть всё

Suddenly the car on fire ran away and a superman flew over.

everyone is dancing with DJ Santa

The blue Toyota Supra (A90), having just finished a right-hand drift, violently whips its tail back to initiate an opposite-lock drift to the left (a 'pendulum' or 'S-drift'). The rear wheels spin wildly on the wet track, kicking up a massive spray of water and white smoke. Its taillights create long red light trails in the night. The camera follows closely behind the car, capturing the intense sense of speed and edge-of-control. CG render, racing game style, 4K.

The companions laughed cheerfully.

A soldier, prone in war-torn urban ruins, continues to fire his assault rifle intensely. Bright muzzle flashes flicker repeatedly. Bullets (incoming fire) impact the ground and debris all around him, kicking up a dense shower of sparks and dust. In the background behind him, a new, larger explosion detonates, illuminating the smoke. The camera shakes violently, high-tension, cinematic war scene.

Похожие модели

README

WAN 2.5 — Video Extender

Video Extender is a specialization built on top of ’s WAN 2.5 model that adds length-extension capabilities. It faithfully inherits all core parameters, behaviors, and quality characteristics of the original WAN 2.5—and operates under the same licensing and copyright terms. Output resolutions remain 480p, 720p, and 1080p.

✨ Why This endpoint is special

  • Seamless extension: Extends videos naturally — no abrupt cuts or looping artifacts. The motion flow and scene lighting stay coherent frame to frame.
  • Flexible duration control: Choose any target length from 3 s – 10 s (3, 4, 5, 6, 7, 8, 9, 10 s all supported).
  • One-pass A/V sync: Automatically aligns audio and mouth movements, ensuring natural speech and rhythm without manual editing.
  • Multilingual friendly: Supports prompts in Chinese and English for synchronized video generation with accurate lip-sync.
  • Custom audio option: You can upload your own audio (music or voice) or let the model generate one for you — plug-and-play.
  • Lightweight and affordable: Built for creators and teams who need fast, consistent, and cost-effective video outputs.

🧩 Designed For

  • Content creators & storytellers: Extend scenes smoothly to fit a beat, dialogue, or camera motion.
  • Marketing teams: Produce multiple ad variations from a single core clip — faster, cheaper, consistent.
  • Corporate training teams: Expand short clips into complete learning segments without reshooting.
  • Global enterprises: Generate localized, multilingual video extensions for different audiences.

⚙️ How to Use

  1. Upload your base video clip.
  2. (Optional) Upload an audio file (.wav / .mp3, ≤ 15 MB, 3–30 s).
  3. Enter your prompt or description (supports Chinese / English).
  4. Select the output duration (3 s – 10 s).
  5. Choose resolution (480p / 720p / 1080p).
  6. Submit the job — wait a few moments, preview, and download your extended video.

💡 Audio Handling

  • If audio > chosen video length: Only the first segment (3 s, 5 s, 10 s etc.) is used.
  • If audio < chosen video length: Remaining video plays silently.
  • If no audio: WAN 2.5 can auto-generate one or leave it silent.

💰 Pricing

ResolutionPrice per secondExample (3 s)Example (5 s)
480p$0.05$0.15$0.25
720p$0.10$0.30$0.50
1080p$0.15$0.45$0.75

🧠 Pro Tips

  • Start with 5 s for testing — balance between cost and quality.
  • Upload high-quality input videos to maximize motion consistency.
  • Keep your prompt concise but descriptive: include mood, motion, and scene intent.
  • For multilingual videos, specify the desired spoken language in your prompt.

📎 Note

  • If you didn’t upload your image or video locally, please ensure that the media URL is publicly accessible. A successfully accessible file will display a preview in the interface.
Примечание:Этот сайт использует модели ИИ, предоставляемые третьими лицами.

Wan 2.5 Video Extend API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/alibaba/wan-2.5/video-extend 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 Wan 2.5 Video Extend below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "video": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4",
    "resolution": "720p",
    "duration": 5,
    "enable_prompt_expansion": false,
    "seed": -1
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/alibaba/wan-2.5/video-extend" \
  -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/alibaba/wan-2.5/video-extend";
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({
        "prompt": "A cinematic shot of a city at sunset, soft golden light",
        "video": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4",
        "resolution": "720p",
        "duration": 5,
        "enable_prompt_expansion": false,
        "seed": -1
}),
});
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 = {
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "video": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4",
    "resolution": "720p",
    "duration": 5,
    "enable_prompt_expansion": False,
    "seed": -1
}

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/alibaba/wan-2.5/video-extend", 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)

Wan 2.5 Video Extend API — Frequently asked questions

What is the Wan 2.5 Video Extend API?

Wan 2.5 Video Extend is a Alibaba model for video extension, exposed as a REST API on WaveSpeedAI. WAN 2.5 Video-Extend turns short clips into longer videos with preserved or generated synchronized audio for continuity. 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 Wan 2.5 Video Extend 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/alibaba/alibaba-wan-2.5-video-extend.

How much does Wan 2.5 Video Extend cost per run?

Wan 2.5 Video Extend starts at $0.25 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 Wan 2.5 Video Extend accept?

Key inputs: `prompt`, `video`, `audio`, `resolution`, `duration`, `seed`. 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/alibaba/alibaba-wan-2.5-video-extend.

How long does Wan 2.5 Video Extend take to generate?

Median end-to-end generation time on WaveSpeedAI is around 119 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 Wan 2.5 Video Extend outputs commercially?

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

Wan 2.5 Video Extend | AI Video Extension API | WaveSpeedAI