Microsoft Mai Image 2.5 Pro Edit

Microsoft Mai Image 2.5 Pro Edit

Playground

Try it on WaveSpeedAI!

Microsoft MAI Image 2.5 Pro Image Edit transforms source images with natural-language instructions, applying precise edits while preserving the details that should remain unchanged for creative design, product visuals, marketing assets, and production workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Microsoft MAI Image 2.5 Pro Edit transforms a source image with natural-language instructions. It is built for precise visual changes, layout-aware refinement, and preservation-focused editing where identity, composition, or important source details should remain unchanged.


Why Choose This?

  • Instruction-based image editing
    Edit an existing image by describing the desired change in natural language.

  • Preservation-focused results
    Modify selected visual details while keeping important source elements unchanged.

  • Layout-aware refinement
    Apply edits to background, objects, lighting, style, or composition while maintaining a coherent final image.

  • Flexible aspect ratios
    Use auto for model-selected framing or choose a specific aspect ratio when needed.

  • Standard output formats
    Export edited images as jpeg, png, or webp.


Parameters

ParameterRequiredDescription
promptYesText instruction describing how to edit the source image.
imageYesSource image to edit. Public image URLs and uploaded images are supported.
aspect_ratioNoOutput aspect ratio. Use auto to let the model choose a suitable ratio.
output_formatNoOutput format: jpeg, png, or webp.

How to Use

  1. Upload your source image — Provide the image you want to edit.
  2. Write your edit prompt — Describe the requested change and clearly state what should remain unchanged.
  3. Choose aspect ratio — Select a fixed aspect ratio or use auto for model-selected framing.
  4. Choose output format — Select jpeg, png, or webp when needed.
  5. Submit — Generate the edited image and retrieve the output URL.

Pricing

Pricing includes a base image editing cost plus a prompt length surcharge.

ItemPrice
Base image edit$0.29

Example Costs

Prompt LengthPrice
10 characters$0.290075
100 characters$0.29075
500 characters$0.29375
1,000 characters$0.2975
2,000 characters$0.305

Best Use Cases

  • Background editing — Change, clean up, or restyle image backgrounds.
  • Object and lighting changes — Modify objects, colors, lighting, mood, or scene details.
  • Product image refinement — Improve product visuals for marketing, ecommerce, and presentation.
  • Portrait and scene edits — Adjust style, composition, atmosphere, or visual details while preserving key identity.
  • Layout-aware image iteration — Refine existing images for campaigns, social media, and design workflows.

Pro Tips

  • Describe both the requested change and the details that must stay unchanged.
  • Use a clear source image with the main subject visible.
  • Keep the edit instruction focused and specific.
  • Use auto when the source composition should guide the output ratio.
  • Use png for high-quality general output, jpeg for smaller files, and webp for web-friendly images.

## Authentication

For authentication details, please refer to the [Authentication Guide](/api-authentication).

## API Endpoints

### Submit Task & Query Result

<ApiTabs submitUrl={model.submitUrl} resultUrl={model.resultUrl} payload={model.defaultValues} />

## Parameters

### Task Submission Parameters

#### Request Parameters

<RequestParams params={model.params} />

#### Response Parameters

<SubmitResponse />

#### 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 |
| data.model | string | Model ID used for the prediction |
| data.outputs | array&lt;string \| object&gt; | Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model. |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to poll for the prediction result |
| data.status | string | Status: `created`, `processing`, `completed`, or `failed` |
| data.created_at | string | ISO timestamp of when the request was created |
| 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 |
© 2026 WaveSpeedAI. All rights reserved.