Wan 2.2 Video Edit
Playground
Try it on WavespeedAI!Wan 2.2 Video Edit lets you modify videos via text prompts (e.g., change clothing or characters). Powered by Wan 2.2, it supports 480p ($0.20/5s) and 720p ($0.40/5s), up to 120s. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Wan 2.2 Video Edit
What is Wan 2.2 Video Edit?
Wan 2.2 Video Edit is a text-driven video editor: describe the change, and the model applies it directly to your footage. Swap identities, change outfits and props, recolor or restyle scenes, and adjust attributes—while keeping motion and continuity consistent across frames.
Pricing
| Output | Price per 5s | Max Length |
|---|---|---|
| 480p | $0.20 | 120 s |
| 720p | $0.40 | 120 s |
Designed for
- Marketing & Brand – Quick wardrobe swaps, colorway tests, and on-brand variations without reshoots.
- E-commerce & Fashion – Try new styles/prints on existing clips; localize looks per market.
- Post/Studios – Fast previz and pickup fixes (outfit tweaks, minor character replacements).
- Creators & Social Teams – Rapid A/B ideas for thumbnails, shorts, and trend edits.
How to Use
-
Upload video (required) – the clip you want to edit.
-
Write prompt (required) – clear edit intent, such as:
- Change the woman’s vest to a bikini.
- Replace the man with a teenage boy.
- Turn the jacket red and add sunglasses.
-
Set resolution – 480p or 720p.
-
Set seed – use a fixed number to reproduce results.
-
Generate – wait a moment, review, and iterate (adjust prompt or seed for variants).
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/wavespeed-ai/wan-2.2/video-edit" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"resolution": "480p",
"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. | |
| prompt | string | Yes | - | The positive prompt for the generation. | |
| resolution | string | No | 480p | 480p, 720p | The resolution of the output video. |
| 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 | 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 |