Pixverse Pixverse V6 Extend
Playground
Try it on WavespeedAI!PixVerse V6 Extend continues and enhances existing video content by analyzing the ending segment and generating new frames forward. Supports 360p to 1080p resolutions, 1-15 second extension duration, optional audio generation, and multiple styles. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
PixVerse V6 Video Extend
PixVerse V6 Video Extend continues an existing video clip with new AI-generated footage, seamlessly picking up where the original ends. Describe where the scene should go next — the model generates a natural, motion-consistent extension with optional style control, negative prompting, and synchronized audio.
- Need to generate from scratch? Try PixVerse V6 Text-to-Video
Why Choose This?
-
Seamless video continuation Extends your existing clip with new AI-generated footage that matches the original motion, style, and scene context.
-
Prompt-guided extension Describe what should happen next — direct the action, camera movement, and atmosphere of the extended segment.
-
Style control Apply a specific visual style to the extension for creative or consistent branded output.
-
Optional audio generation Enable generate_audio_switch to produce synchronized ambient sound alongside the extended video.
-
Negative prompt support Specify what to avoid in the extension for more precise control over the output.
-
Multiple resolution tiers Generate extensions at 360p, 540p, 720p, or 1080p to match your delivery requirements.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text description of what should happen in the extended segment. |
| video | Yes | Source video to extend (URL or file upload). |
| resolution | No | Output resolution: 360p, 540p, 720p (default), or 1080p. |
| duration | No | Length of the extension in seconds. Default: 5. |
| generate_audio_switch | No | Whether to generate synchronized audio for the video. Default: off. |
| negative_prompt | No | Elements to exclude from the extended footage. |
| style | No | Visual style to apply to the extension. |
| seed | No | Random seed for reproducible results. |
How to Use
- Upload your video — provide the source clip to extend via URL or drag-and-drop.
- Write your prompt — describe what should happen next in the scene.
- Select resolution — 360p for drafts, 720p for standard output, 1080p for final production.
- Set duration — choose how many seconds to extend the video by.
- Enable audio (optional) — check generate_audio_switch to generate synchronized sound.
- Add negative prompt (optional) — specify elements you want to avoid in the extension.
- Set style (optional) — apply a specific visual style to the extended footage.
- Set seed (optional) — fix the seed to reproduce a specific result in future runs.
- Submit — generate, preview, and download your extended video.
Pricing
| Resolution | Without Audio | With Audio |
|---|---|---|
| 360p | $0.025/s | $0.035/s |
| 540p | $0.035/s | $0.045/s |
| 720p | $0.045/s | $0.060/s |
| 1080p | $0.090/s | $0.115/s |
Billing Rules
- Billing is calculated per second of extension generated
- Audio generation increases cost per second at each resolution tier
- Examples: 10s extension at 720p (no audio) = $0.45 — 10s at 1080p (no audio) = $0.90
Best Use Cases
- Short Film & Narrative — Extend key scenes to develop story beats without reshooting.
- Social Media Content — Lengthen clips to hit optimal duration for Reels, TikTok, and Shorts.
- Marketing & Advertising — Extend product or campaign videos to fill longer ad slots.
- Creative Exploration — Explore alternate continuations of the same source clip with different prompts.
- Loop & Ambient Video — Generate extended atmospheric footage from a short seed clip.
Pro Tips
- Be specific about what should happen next — camera movement, subject action, and environmental changes.
- Use negative_prompt to prevent the extension from repeating or contradicting the source footage.
- Use 360p at short durations to test your prompt direction before committing to a high-resolution extension.
- Fix the seed once you find a direction you like to iterate consistently across different durations.
Notes
- Both prompt and video are required fields; all other parameters are optional.
- Ensure video URLs are publicly accessible if using a link rather than a direct upload.
- Please follow PixVerse’s content usage policies when crafting prompts.
Related Models
- PixVerse V6 Text-to-Video — Generate video from text prompts from scratch.
- PixVerse V6 Image-to-Video — Animate a reference image into a cinematic video clip.
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/pixverse/pixverse-v6/extend" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"resolution": "720p",
"duration": 5,
"generate_audio_switch": false
}'
# 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 |
|---|---|---|---|---|---|
| prompt | string | Yes | - | Text description of the desired video. | |
| video | string | Yes | - | URL of the input video to extend | |
| resolution | string | No | 720p | 360p, 540p, 720p, 1080p | The resolution of the generated video |
| duration | integer | No | 5 | 1 ~ 15 | The duration of the generated video in seconds. v6 supports values from 1 to 15 seconds |
| generate_audio_switch | boolean | No | false | - | Enable audio generation for the video. |
| negative_prompt | string | No | - | The negative prompt for the generation. | |
| style | string | No | - | anime, 3d_animation, clay, comic, cyberpunk | The style of the extended video |
| seed | integer | No | - | -1 ~ 2147483647 | Random seed for generation. |
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 | string | 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 |