Alibaba Wan 2.6 Image Edit
Playground
Try it on WavespeedAI!Alibaba WAN 2.6 Image-Edit turns prompts into precise photo edits—adjusting color and lighting, restyling aesthetics, replacing backgrounds, removing objects, and refining details while preserving subject identity. Built for stable, repeatable image-to-image pipelines. Ready-to-use REST API, best performance, no cold starts, affordable pricing.
Features
Alibaba WAN 2.6 Image Edit
Alibaba WAN 2.6 Image Edit (alibaba/wan-2.6/image-edit) is a prompt-driven image-to-image editing model for making targeted changes to an existing image. Upload one or more reference images, describe the edit in plain English, and the model returns an updated image while aiming to preserve the original structure, subject identity, and composition.
It’s a strong fit for fast creative iteration: changing clothing, colors, materials, background mood, adding/removing simple objects, and applying style adjustments without rebuilding the entire scene.
Why it stands out
- Prompt-based edits with strong intent-following for common creative workflows.
- Designed to preserve composition and key subject features while applying localized changes.
- Multi-image reference support for style/subject/background guidance (useful for fusion edits).
- Seed control for repeatable outputs and more consistent iteration.
- Negative prompting support to reduce artifacts (text, watermarks, extra fingers, etc.).
Capabilities
- Image-to-image editing from natural-language instructions
- Multi-image reference editing (1–4 inputs recommended, depending on workflow)
- Style shifts, background swaps, object addition/removal, and material/color changes
- More stable iterative refinement when using a fixed seed
Parameters
| Parameter | Description |
|---|---|
| prompt* | The edit instruction describing what to change and what to keep (e.g., “change the jacket to leather, keep face and pose unchanged”). |
| images* | One or more input images to edit (uploaded files or public URLs). |
| seed | Optional integer for reproducibility; use a fixed seed to iterate with smaller prompt changes. |
| negative_prompt | Optional list of things you don’t want (e.g., “text, watermark, extra fingers, blurry face”). |
How to use
-
Upload one or more images (the main image to edit; optionally add style/background references).
-
Write a clear prompt with two parts:
- What to change (the edit)
- What must stay the same (constraints) Example: “Replace the background with a rainy Tokyo street at night, keep the person’s face and pose unchanged.”
-
Optional: add a negative_prompt to reduce unwanted artifacts.
-
Optional: set a fixed seed to make iterations more comparable.
-
Run the model, preview the output, and iterate step-by-step if needed.
Pricing
- $0.035 per run
Notes
-
If edits spill into areas you want to preserve, strengthen constraints: “keep the face unchanged”, “keep the background intact”, “do not alter the text”.
-
If outputs look inconsistent, try:
- simplifying the prompt
- using a fixed seed
- iterating with smaller changes
Related Models
- Alibaba WAN 2.5 Image Edit — Previous WAN image-edit model with a similar prompt-driven workflow for fast image revisions.
- Qwen Image Edit — General-purpose AI image editing with strong prompt adherence for everyday creative and product workflows.
- Qwen Image Edit Plus — Higher-quality image editing variant for cleaner results and better detail retention on complex scenes.
- Google Nano Banana Pro (Edit) — High-fidelity image editing with strong composition preservation and reliable text handling.
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/image-edit" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"seed": -1,
"enable_prompt_expansion": 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 | - | The positive prompt for the generation. | |
| images | array | Yes | [] | 1 ~ 3 items | List of URLs of input images for editing. The maximum number of images is 3. |
| seed | integer | No | -1 | -1 ~ 2147483647 | The random seed to use for the generation. -1 means a random seed will be used. |
| enable_prompt_expansion | boolean | No | false | - | If set to true, the prompt optimizer will be enabled. |
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 |