---
type: AI Model
id: ming-image
title: Ming Image API
provider: Ant Ling
description: "Ming Image 0.1 is Ant Ling's design-focused image model. It generates posters, UI mockups, infographics and other text-rich layouts with sharp, legible typography from a text prompt, and splits a flattened design into editable transparent layers (text, images, containers and background) that can be moved, restyled or replaced one by one."
resource: https://www.pixazo.ai/models/ming-image
docs_url: https://www.pixazo.ai/models/ming-image
latest_version: 0.1
tags:
  - text-to-image
  - image-to-image
  - image-editing
  - ant-ling
variants:
  - id: ming-image-0-1
    name: Ming Image 0.1
    version: 0.1
    capabilities:
      - Text to Image
      - Image to Image (Layer Decomposition)
timestamp: 2026-10-05T07:21:33.438Z
---

# Ming Image API

> Provider: **Ant Ling**
> Source: https://www.pixazo.ai/models/ming-image

Ming Image 0.1 is Ant Ling's design-focused image model. It generates posters, UI mockups, infographics and other text-rich layouts with sharp, legible typography from a text prompt, and splits a flattened design into editable transparent layers (text, images, containers and background) that can be moved, restyled or replaced one by one.

## Ming Image 0.1

### Text to Image

## Ming Image 0.1 API Documentation

Generate a design-grade image from a text prompt with Ming Image 0.1 — posters, UI mockups, infographics and other text-rich layouts, with sharp, legible typography. Asynchronous: submit returns a `request_id`; poll the status endpoint until the request is `COMPLETED`, then download the image from `output.media_url`. Generation typically takes under two minutes.

```
POST https://gateway.pixazo.ai/ming-image/v1/text-to-image
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## Text to Image - Ming Image 0.1

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/ming-image/v1/text-to-image
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "prompt": "Minimalist event poster, bold title \"PIXAZO SUMMIT 2026\", date line \"October 12\", geometric shapes, warm orange and navy",
  "output_format": "png"
}
```

```
import requests

url = "https://gateway.pixazo.ai/ming-image/v1/text-to-image"
headers = {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
  "prompt": "Minimalist event poster, bold title \"PIXAZO SUMMIT 2026\", date line \"October 12\", geometric shapes, warm orange and navy",
  "output_format": "png"
}

resp = requests.post(url, json=data, headers=headers)
print(resp.json())
```

```
const res = await fetch("https://gateway.pixazo.ai/ming-image/v1/text-to-image", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
  },
  body: JSON.stringify({
  "prompt": "Minimalist event poster, bold title \"PIXAZO SUMMIT 2026\", date line \"October 12\", geometric shapes, warm orange and navy",
  "output_format": "png"
})
});
console.log(await res.json());
```

```
curl -X POST 'https://gateway.pixazo.ai/ming-image/v1/text-to-image' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  --data-raw '{"prompt": "Minimalist event poster, bold title \"PIXAZO SUMMIT 2026\", date line \"October 12\", geometric shapes, warm orange and navy", "output_format": "png"}'
```

## Output

```
{
  "request_id": "ming-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/ming-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

[Try Now](https://api.pixazo.ai/api-details#api=ming-image&operation=text-to-image)

## Webhook (Optional)

Instead of polling, you can receive a Webhook callback when the request reaches a terminal state. Provide a Webhook URL via header on the submit request.

Header

Required

Description

X-Webhook-URL

To enable

HTTPS URL to receive the Webhook callback.

X-Webhook-Mode

No

`terminal` (default, one callback on COMPLETED/ERROR) or `sync` (per-poll callbacks).

### Example: enable Webhook

```
curl -X POST 'https://gateway.pixazo.ai/ming-image/v1/text-to-image' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  -H 'X-Webhook-URL: https://your-server.com/webhook' \
  --data-raw '{"prompt": "Minimalist event poster, bold title \"PIXAZO SUMMIT 2026\", date line \"October 12\", geometric shapes, warm orange and navy", "output_format": "png"}'
```

### Callback Payload (success)

```
{
  "request_id": "ming-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "ming-image",
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output.png"
    ],
    "media_type": "image/png"
  },
  "created_at": "2026-09-24T08:44:03.986Z",
  "completed_at": "2026-09-24T08:45:54.402Z"
}
```

### Failure callback shape

```
{
  "request_id": "ming-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "ming-image",
  "error": "Description of the failure"
}
```

#### Delivery semantics

-   **terminal** mode: one Webhook callback when the request is COMPLETED or ERROR.
-   **sync** mode: a Webhook callback on each status change.
-   Callbacks are idempotent on `request_id` — de-duplicate on it.
-   Respond `200` within a few seconds; the Webhook endpoint must be HTTPS.

## Request Parameters

Parameter

Required

Type

Default

Allowed values / range

Description

`prompt`

Yes

string

—

up to 4,000 characters

What to design: layout, the exact text to render (in quotes), palette and style. Describe the aspect ratio in words — the service chooses the canvas.

`output_format`

No

string

`png`

`png`, `jpeg`, `webp`

Format of the returned image.

### Good to know

-   One request produces one image. There is no batch option: `num_images`, `n`, `count`, `batch_size` and `number_of_images` are rejected.
-   `image_url`, `num_layers`, `size` and `enhance_prompt` belong to Layer Decomposition and are rejected here; the canvas size is chosen by the service.
-   The current rates are in the pricing panel on this page.

## Example Request

```
{
  "prompt": "Minimalist event poster, bold title \"PIXAZO SUMMIT 2026\", date line \"October 12\", geometric shapes, warm orange and navy",
  "output_format": "png"
}
```

## Example Response

```
{
  "request_id": "ming-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/ming-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Request Headers

Header

Required

Description

Content-Type

Yes

`application/json`

Ocp-Apim-Subscription-Key

Yes

Your API subscription key.

X-Webhook-URL

No

Enable Webhook callbacks (see Webhook section).

## Response Handling

Status Code

Meaning

202

Accepted — request queued; returns `request_id` and `polling_url`.

400

Bad request — `prompt` missing or over 4,000 characters, a `size` or other Layer Decomposition field, or a batch field. Anything checkable from the request body alone.

401

Unauthorized — missing or invalid subscription key.

402

Insufficient balance.

429

Too many requests.

500

Internal server error.

Only what can be judged from the request body itself is rejected synchronously. Everything that needs an input to be fetched or the model to run is reported through the status endpoint instead, as `status: "ERROR"`. Failed requests are not billed — the hold is released in full.

Condition

How it surfaces

`prompt` missing, or longer than 4,000 characters

synchronous `400`

`size`, `image_url`, `num_layers` or `enhance_prompt` sent to this operation

synchronous `400`

A batch field (`n`, `num_images`, `count`, `batch_size`, `number_of_images`)

synchronous `400`

A prompt the provider rejects

`status: "ERROR"`

## Retrieving Results

Poll the status endpoint with the `request_id` from the submit response until `status` is `COMPLETED` (or `FAILED`/`ERROR`), then download the result from `output.media_url`. Most requests finish in under two minutes, so poll every 5–10 seconds rather than continuously.

```
curl 'https://gateway.pixazo.ai/v2/requests/status/ming-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'
```

### Completed response

```
{
  "request_id": "ming-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "ming-image",
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output.png"
    ],
    "media_type": "image/png"
  },
  "created_at": "2026-09-24T08:44:03.986Z",
  "completed_at": "2026-09-24T08:45:54.402Z"
}
```

Text to Image returns one image on a canvas the model chooses from your prompt, about 4 megapixels (for example 2048 x 2048 square, or 1440 x 2560 portrait). Layer Decomposition returns one RGBA image per returned layer, front to back, each the full working canvas with transparency around its content; the model can return fewer layers than requested.

## Response Fields

Field

Type

Description

request\_id

string

Unique request identifier.

status

string

QUEUED, PROCESSING, COMPLETED, FAILED, or ERROR.

model\_id

string

The model that handled the request.

output.media\_url

array

One URL for a design; one URL per returned layer, front to back, for a decomposition.

output.media\_type

string

`image/png` by default (`image/jpeg` or `image/webp` when requested).

created\_at

string

Request creation timestamp.

completed\_at

string

Completion timestamp.

error

string

Error message when `status` is FAILED/ERROR.

## Status Values & Flow

`QUEUED` → `PROCESSING` → `COMPLETED` (success) or `FAILED`/`ERROR` (failure).

### How billing is measured

Billing follows what the model actually produced, measured in image tokens. **Text to Image**: the larger the canvas the model chooses, the higher the charge — never more than for a 2048 × 2048 image. **Layer Decomposition**: the source image plus each layer **returned**, at the resolution tier the service used (`512` < `1k` < `2k`). When you submit, a hold is placed for the largest possible charge — every requested layer at the requested tier, with `auto` held at the `2k` rate — and it is settled down to the actual usage when the request completes. If the request fails, the hold is released in full.

The current rates are shown in the pricing panel on this page.

### Image to Image (Layer Decomposition)

## Ming Image 0.1 Layer Decomposition API Documentation

Split a flattened design into editable RGBA layers with Ming Image 0.1 — text, images, containers and background on separate transparent layers. Asynchronous: submit returns a `request_id`; poll the status endpoint until the request is `COMPLETED`, then download the layers from `output.media_url`. Decomposition typically takes under two minutes.

```
POST https://gateway.pixazo.ai/ming-image/v1/layer-decompose
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## Layer Decomposition - Ming Image 0.1

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/ming-image/v1/layer-decompose
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/meshy-7/multi-1.png",
  "num_layers": 2,
  "prompt": "1 statue, 2 background",
  "size": "1k"
}
```

```
import requests

url = "https://gateway.pixazo.ai/ming-image/v1/layer-decompose"
headers = {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
  "image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/meshy-7/multi-1.png",
  "num_layers": 2,
  "prompt": "1 statue, 2 background",
  "size": "1k"
}

resp = requests.post(url, json=data, headers=headers)
print(resp.json())
```

```
const res = await fetch("https://gateway.pixazo.ai/ming-image/v1/layer-decompose", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
  },
  body: JSON.stringify({
  "image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/meshy-7/multi-1.png",
  "num_layers": 2,
  "prompt": "1 statue, 2 background",
  "size": "1k"
})
});
console.log(await res.json());
```

```
curl -X POST 'https://gateway.pixazo.ai/ming-image/v1/layer-decompose' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  --data-raw '{"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/meshy-7/multi-1.png", "num_layers": 2, "prompt": "1 statue, 2 background", "size": "1k"}'
```

## Output

```
{
  "request_id": "ming-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/ming-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

[Try Now](https://api.pixazo.ai/api-details#api=ming-image&operation=layer-decompose)

## Webhook (Optional)

Instead of polling, you can receive a Webhook callback when the request reaches a terminal state. Provide a Webhook URL via header on the submit request.

Header

Required

Description

X-Webhook-URL

To enable

HTTPS URL to receive the Webhook callback.

X-Webhook-Mode

No

`terminal` (default, one callback on COMPLETED/ERROR) or `sync` (per-poll callbacks).

### Example: enable Webhook

```
curl -X POST 'https://gateway.pixazo.ai/ming-image/v1/layer-decompose' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  -H 'X-Webhook-URL: https://your-server.com/webhook' \
  --data-raw '{"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/meshy-7/multi-1.png", "num_layers": 2, "prompt": "1 statue, 2 background", "size": "1k"}'
```

### Callback Payload (success)

```
{
  "request_id": "ming-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "ming-image",
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output_0.png",
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output_1.png"
    ],
    "media_type": "image/png"
  },
  "created_at": "2026-09-24T08:44:03.986Z",
  "completed_at": "2026-09-24T08:45:54.402Z"
}
```

### Failure callback shape

```
{
  "request_id": "ming-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "ming-image",
  "error": "Description of the failure"
}
```

#### Delivery semantics

-   **terminal** mode: one Webhook callback when the request is COMPLETED or ERROR.
-   **sync** mode: a Webhook callback on each status change.
-   Callbacks are idempotent on `request_id` — de-duplicate on it.
-   Respond `200` within a few seconds; the Webhook endpoint must be HTTPS.

## Request Parameters

Parameter

Required

Type

Default

Allowed values / range

Description

`image_url`

Yes

string

—

http(s) URL, up to 20 MB

The flattened design to decompose. Must be publicly reachable.

`num_layers`

No

integer

`4`

1–6

**How many layers to ask for.** The model can return fewer; you are charged only for the layers returned.

`prompt`

No

string

—

up to 4,000 characters

Optional layer plan, front to back, e.g. `1 text, 2 image, 3 background`. If it states a count (`3 layers: …`) that count must equal `num_layers`.

`size`

No

string

`auto`

`512`, `1k`, `2k`, `auto`

**Working resolution, as a pixel budget:** `512` ≈ 512 × 512, `1k` ≈ 1024 × 1024, `2k` ≈ 2048 × 2048 pixels' worth; the service keeps the source aspect ratio. It also sets the rate per image. `auto` lets the service choose from the source, and you are charged at the tier it used.

`output_format`

No

string

`png`

`png`, `webp`

Format of the returned layers. Layers carry transparency, so JPEG is not offered.

`enhance_prompt`

No

boolean

`true`

`true`, `false`

Let the service refine the layer plan. Set `false` when you supply a complete plan and want it followed as written.

### Good to know

-   One request decomposes one image. There is no batch option: `num_images`, `n`, `count`, `batch_size` and `number_of_images` are rejected.
-   Only Text to Image generates from a prompt alone; this operation always needs an `image_url`.
-   The current rates are in the pricing panel on this page.

## Example Request

```
{
  "image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/meshy-7/multi-1.png",
  "num_layers": 2,
  "prompt": "1 statue, 2 background",
  "size": "1k"
}
```

## Example Response

```
{
  "request_id": "ming-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/ming-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Request Headers

Header

Required

Description

Content-Type

Yes

`application/json`

Ocp-Apim-Subscription-Key

Yes

Your API subscription key.

X-Webhook-URL

No

Enable Webhook callbacks (see Webhook section).

## Response Handling

Status Code

Meaning

202

Accepted — request queued; returns `request_id` and `polling_url`.

400

Bad request — `image_url` missing, `num_layers` outside 1–6 or not an integer, a plan whose layer count differs from `num_layers`, an unknown `size`, or JPEG output. Anything checkable from the request body alone.

401

Unauthorized — missing or invalid subscription key.

402

Insufficient balance.

429

Too many requests.

500

Internal server error.

Only what can be judged from the request body itself is rejected synchronously. Everything that needs an input to be fetched or the model to run is reported through the status endpoint instead, as `status: "ERROR"`. Failed requests are not billed — the hold is released in full.

Condition

How it surfaces

`image_url` missing, or not a string

synchronous `400`

`num_layers` outside 1–6 or not an integer; a plan stating a different layer count

synchronous `400`

`size` outside `512`/`1k`/`2k`/`auto`, or `output_format` `jpeg`

synchronous `400`

A batch field (`n`, `num_images`, `count`, `batch_size`, `number_of_images`)

synchronous `400`

An image URL that is not reachable or not an image

`status: "ERROR"`

## Retrieving Results

Poll the status endpoint with the `request_id` from the submit response until `status` is `COMPLETED` (or `FAILED`/`ERROR`), then download the result from `output.media_url`. Most requests finish in under two minutes, so poll every 5–10 seconds rather than continuously.

```
curl 'https://gateway.pixazo.ai/v2/requests/status/ming-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'
```

### Completed response

```
{
  "request_id": "ming-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "ming-image",
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output_0.png",
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output_1.png"
    ],
    "media_type": "image/png"
  },
  "created_at": "2026-09-24T08:44:03.986Z",
  "completed_at": "2026-09-24T08:45:54.402Z"
}
```

Text to Image returns one image on a canvas the model chooses from your prompt, about 4 megapixels (for example 2048 x 2048 square, or 1440 x 2560 portrait). Layer Decomposition returns one RGBA image per returned layer, front to back, each the full working canvas with transparency around its content; the model can return fewer layers than requested.

## Response Fields

Field

Type

Description

request\_id

string

Unique request identifier.

status

string

QUEUED, PROCESSING, COMPLETED, FAILED, or ERROR.

model\_id

string

The model that handled the request.

output.media\_url

array

One URL for a design; one URL per returned layer, front to back, for a decomposition.

output.media\_type

string

`image/png` by default (`image/jpeg` or `image/webp` when requested).

created\_at

string

Request creation timestamp.

completed\_at

string

Completion timestamp.

error

string

Error message when `status` is FAILED/ERROR.

## Status Values & Flow

`QUEUED` → `PROCESSING` → `COMPLETED` (success) or `FAILED`/`ERROR` (failure).

### How billing is measured

Billing follows what the model actually produced, measured in image tokens. **Text to Image**: the larger the canvas the model chooses, the higher the charge — never more than for a 2048 × 2048 image. **Layer Decomposition**: the source image plus each layer **returned**, at the resolution tier the service used (`512` < `1k` < `2k`). When you submit, a hold is placed for the largest possible charge — every requested layer at the requested tier, with `auto` held at the `2k` rate — and it is settled down to the actual usage when the request completes. If the request fails, the hold is released in full.

The current rates are shown in the pricing panel on this page.
