Alibaba Wan 2.7 Image Edit Pro
Playground
Try it on WavespeedAI!Alibaba WAN 2.7 Image Edit Pro performs prompt-driven image editing with multi-image reference support and up to 4K output. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing.
Features
Alibaba Wan 2.7 Image Edit Pro
Alibaba Wan 2.7 Image Edit Pro (alibaba/wan-2.7/image-edit-pro) is the professional tier of Alibaba’s WanXiang 2.7 image-to-image editing model, supporting output resolutions up to 2048×2048 for higher-fidelity results. 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 ideal for production-grade creative workflows where output quality and resolution matter: retouching product shots, high-res background swaps, detailed style transfers, and any editing task where the standard model’s resolution isn’t enough.
Why it stands out
-
Higher resolution output (up to 2048×2048) Generate edited images at up to 2048×2048 pixels for print-ready assets, large-format displays, and high-DPI screens.
-
Prompt-based edits with strong intent-following Designed to preserve composition and key subject features while applying localized changes.
-
Multi-image reference support (1–9 inputs) Upload multiple images for style/subject/background guidance and fusion edits.
-
Seed control for repeatable outputs Use a fixed seed to refine edits with more consistent iteration.
Capabilities
- Image-to-image editing from natural-language instructions
- Multi-image reference editing (1–9 inputs for flexible workflows)
- Style shifts, background swaps, object addition/removal, and material/color changes
- Higher-fidelity output for detail-sensitive workflows
- 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 (1–9 images, uploaded files or public URLs). |
| seed | Optional integer for reproducibility; use a fixed seed to iterate with smaller prompt changes (-1 for random). |
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: set a fixed seed to make iterations more comparable.
-
Run the model, preview the output, and iterate step-by-step if needed.
Pricing
- $0.075 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
-
Higher resolutions will take longer to generate than standard sizes.
Related Models
- Wan 2.7 Image Edit — Standard version at lower cost for everyday editing needs.
- Alibaba Wan 2.6 Image Edit — Previous generation Wan image-edit model with a similar prompt-driven workflow.
- Qwen Image Edit — General-purpose AI image editing with strong prompt adherence for everyday creative and product workflows.
- 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.7/image-edit-pro" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"size": "1024*1024",
"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 |
|---|---|---|---|---|---|
| images | array | Yes | [] | 1 ~ 9 items | List of URLs of input images for editing (1-9 images). |
| prompt | string | Yes | - | The positive prompt for the generation. | |
| size | string | No | 1024*1024 | 768 ~ 2048 per dimension | The size of the generated image in pixels (width*height). Pro supports up to 2048*2048 for image editing. |
| 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. |
| 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 |