Alibaba Wan 2.6 Video Extend
Playground
Try it on WavespeedAI!Alibaba WAN 2.6 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.
Features
Alibaba Wan 2.6 Video Extend
Wan 2.6 Video Extend is Alibaba’s video extension model that seamlessly extends existing videos by generating additional frames. Upload a video clip and describe the continuation — the model generates smooth, coherent footage that naturally extends your original content by 5, 10, or 15 seconds.
Why Choose This?
-
Seamless extension Generates new frames that naturally continue the motion and style of your original video.
-
Flexible duration Extend videos by 5, 10, or 15 seconds based on your needs.
-
Multi-resolution support Output in 720p or 1080p to match your source footage.
-
Audio support Optional audio input for synchronized video extension.
-
Prompt-guided generation Describe how the video should continue for precise control over the extension.
-
Negative prompt support Specify elements to avoid in the extended footage.
-
Prompt Enhancer Built-in tool to automatically improve your descriptions.
Parameters
| Parameter | Required | Description |
|---|---|---|
| video | Yes | Source video to extend (URL or upload) |
| prompt | Yes | Describe how the video should continue |
| audio | No | Audio file for synchronized extension (URL or upload) |
| negative_prompt | No | Elements to avoid in the extended video |
| resolution | No | Output resolution: 720p (default), 1080p |
| duration | No | Extension length: 5, 10, or 15 seconds (default: 5) |
| shot_type | No | Shot composition: single (default) or multi |
| enable_prompt_expansion | No | Enable prompt optimizer (default: disabled) |
| seed | No | Random seed for reproducibility |
How to Use
- Upload your video — provide the source video you want to extend.
- Write your prompt — describe how the video should continue (motion, action, scene changes).
- Add audio (optional) — upload audio for synchronized extension.
- Add negative prompt (optional) — specify elements you want to avoid.
- Choose resolution — select 720p or 1080p based on your source footage.
- Set duration — choose 5, 10, or 15 seconds of extension.
- Run — submit and download your extended video.
Pricing
| Duration | 720p | 1080p |
|---|---|---|
| 5 s | $0.50 | $0.75 |
| 10 s | $1.00 | $1.50 |
| 15 s | $1.50 | $2.25 |
Billing Rules
- 720p rate: $0.50 per 5 seconds (2× base)
- 1080p rate: $0.75 per 5 seconds (3× base)
Best Use Cases
- Content Extension — Extend short clips into longer sequences for storytelling.
- Social Media — Transform brief moments into full-length videos for TikTok, Reels, or Shorts.
- Film & Production — Extend establishing shots or B-roll footage.
- Looping Content — Create extended versions of clips for backgrounds or displays.
- Creative Projects — Continue scenes beyond their original capture.
Pro Tips
- Use detailed prompts describing how the motion, camera, and scene should continue.
- Match the resolution setting to your source video for consistent quality.
- Enable prompt expansion for automatically enhanced descriptions.
- Use negative_prompt to avoid unwanted elements or style changes in the extension.
- For best results, use source videos with clear motion direction that can be naturally continued.
- Keep the seed consistent if you want to iterate on the same extension.
Notes
- Both video and prompt are required fields.
- Extension duration options: 5, 10, or 15 seconds.
- Ensure uploaded video URLs are publicly accessible.
- 1080p resolution costs 1.5× the 720p rate.
Related Models
- Wan 2.6 Image-to-Video — Generate video from still images.
- Wan 2.6 Image-to-Video Pro — Pro tier with 4K support.
- Wan 2.6 Text-to-Video — Generate videos from text prompts.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/alibaba/wan-2.6/video-extend" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"resolution": "720p",
"duration": 5,
"shot_type": "single",
"enable_prompt_expansion": false,
"seed": -1
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| video | string | Yes | - | The video for generating the output. | |
| audio | string | No | - | - | Audio URL to guide generation (optional). |
| prompt | string | Yes | - | The positive prompt for the generation. | |
| negative_prompt | string | No | - | The negative prompt for the generation. | |
| resolution | string | No | 720p | 720p, 1080p | The resolution of the generated media. |
| duration | integer | No | 5 | 5, 10, 15 | The duration of the generated media in seconds. |
| shot_type | string | No | single | single, multi | The type of shots to generate. |
| enable_prompt_expansion | boolean | No | false | - | If set to true, the prompt optimizer will be enabled. |
| seed | integer | No | -1 | -1 ~ 2147483647 | The random seed to use for the generation. -1 means a random seed will be used. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Array of URLs to the generated content (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | object | Array of URLs to the generated content (empty when status is not completed). |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |