Microsoft Mai Image 2.5 Edit
Playground
Try it on WavespeedAI!Microsoft MAI Image 2.5 Edit is a fast AI image editing model that transforms input images with natural-language instructions while preserving strong realism, typography, and visual detail. Ready-to-use REST inference API for photo editing, product image updates, marketing assets, brand visuals, typography-aware edits, creative retouching, and professional image editing workflows with simple integration, no coldstarts, and affordable pricing.
Features
Microsoft MAI Image 2.5 Edit
Microsoft MAI Image 2.5 Edit edits an input image using natural-language instructions, with support for optional aspect-ratio control and multiple output formats. It is suitable for image refinement, style changes, composition adjustments, product visuals, and other prompt-driven image editing workflows.
Why Choose This?
-
Prompt-based image editing
Edit an existing image by describing the changes you want in natural language. -
Simple editing workflow
Upload one image, write an instruction, choose the output ratio, and generate the result. -
Flexible output framing
Usesizeto keep the original image ratio or switch to a different preset aspect ratio. -
Multiple output formats
Export results asjpeg,png, orwebp. -
Production-ready API
Suitable for product image refinement, visual cleanup, style changes, and creative variations.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | The instruction describing how to edit the input image. Supports 3–5000 characters. |
| image | Yes | The image to edit. Provide an uploaded image or a public image URL. |
| size | No | Output aspect ratio. Supported values: auto, 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3. Default: auto. |
| output_format | No | The format of the edited image. Supported values: jpeg, png, webp. Default: png. |
How to Use
- Upload your image — provide the source image you want to edit.
- Write your prompt — describe what should change and what should stay consistent.
- Choose size (optional) — keep
autoto preserve the original framing, or select a preset ratio. - Choose output format (optional) — select
jpeg,png, orwebp. - Submit — run the model and download the edited image.
Example Prompt
Turn this product photo into a premium studio advertisement with soft cinematic lighting, a clean neutral background, realistic reflections, and polished commercial styling.
Pricing
Pricing includes a fixed base edit charge plus a small additional processing fee based on prompt length and internal image-token processing.
Billing Rules
- Every request starts with a base price of $0.05 per image
- There is an additional processing charge that increases with prompt length
- The processing charge is billed in small $0.0001 increments
sizeandoutput_formatdo not affect pricing
Example Costs
| Prompt Length | Total Cost |
|---|---|
| 10 chars | $0.0583 |
| 100 chars | $0.0592 |
| 500 chars | $0.0632 |
| 1000 chars | $0.0682 |
| 5000 chars | $0.1082 |
Best Use Cases
- Product photo refinement — Upgrade product shots for ads, listings, and brand materials.
- Style changes — Rework an image into a new visual style or mood.
- Composition adjustments — Use aspect-ratio controls to adapt the edit for different formats.
- Marketing creatives — Produce polished visuals for campaigns, social media, and presentations.
- Creative variations — Generate multiple prompt-driven directions from the same source image.
Pro Tips
- Be specific about what should change and what should stay the same.
- Use
autosize when you want to preserve the original image framing. - Keep prompts concise when you want lower cost and tighter control.
- Use
pngwhen image quality matters more than file size. - Longer prompts may improve direction, but they also increase cost.
Notes
- Both
promptandimageare required. sizedefaults toauto.output_formatdefaults topng.- Pricing includes a fixed base edit charge and an additional prompt-sensitive processing fee.
- Better prompts usually improve both edit quality and consistency.
Related Models
- Microsoft MAI Image 2.5 Text-to-Image — Generate images directly from 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/microsoft/mai-image-2.5/edit" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"size": "auto",
"output_format": "png"
}'
# 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 instruction describing how to edit the input image. | |
| image | string | Yes | - | The image to edit. Provide an uploaded image or a public image URL. | |
| size | string | No | auto | auto, 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3 | The aspect ratio of the edited image. |
| output_format | string | No | png | jpeg, png, webp | The format of the edited image. |
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.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. |
| 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 |