> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crazyrouter.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Qwen Image

> Use the Qwen Image family through the OpenAI Images-compatible public contract

> Last updated: 2026-06-06

# Qwen Image

```
POST /v1/images/generations
```

Crazyrouter exposes the first batch of `Qwen Image` generation models through the OpenAI Images-compatible public contract. Clients keep using `/v1/images/generations`; Alibaba official and third-party channels stay internal as providers only.

## Public Models

| Model             | Upstream execution shape | Customer-facing capability | Verification |
| ----------------- | ------------------------ | -------------------------- | ------------ |
| `qwen-image-plus` | async generation         | text-to-image              | verified     |
| `qwen-image-max`  | sync generation          | text-to-image              | verified     |
| `qwen-image-2.0`  | sync generation          | text-to-image              | verified     |
| `qwen-image-2.0`  | sync generation          | text-to-image              | Beta         |

<Note>
  `qwen-image-2.0` is already aligned in protocol and code, but the production carrier evidence is still being closed, so it remains Beta for now.
</Note>

## Public Contract

### Request Parameters

| Parameter         | Type    | Required | Description                                                                |
| ----------------- | ------- | -------- | -------------------------------------------------------------------------- |
| `model`           | string  | Yes      | `qwen-image-plus`, `qwen-image-max`, `qwen-image-2.0`, or `qwen-image-2.0` |
| `prompt`          | string  | Yes      | text-to-image prompt                                                       |
| `size`            | string  | No       | output size; use sizes currently exposed by the model page or playground   |
| `n`               | integer | No       | number of images, default `1`                                              |
| `response_format` | string  | No       | `url` or `b64_json`                                                        |

### Request Example

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.crazyrouter.com/v1/images/generations \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -d '{
      "model": "qwen-image-max",
      "prompt": "A premium perfume poster with soft studio lighting and the title Morning Mist in Chinese",
      "size": "1024x1024",
      "n": 1,
      "response_format": "url"
    }'
  ```

  ```python Python theme={null}
  from openai import OpenAI

  client = OpenAI(
      api_key="YOUR_API_KEY",
      base_url="https://api.crazyrouter.com/v1"
  )

  response = client.images.generate(
      model="qwen-image-max",
      prompt="A premium perfume poster with soft studio lighting and the title Morning Mist in Chinese",
      size="1024x1024",
      n=1
  )

  print(response.data[0].url)
  ```
</CodeGroup>

### Response Example

```json theme={null}
{
  "created": 1709123456,
  "data": [
    {
      "url": "https://crazyrouter.com/files/qwen_image_abc123.png"
    }
  ]
}
```

## Official Billing Truth

The current official truth for Qwen Image is billing per successfully generated image, not input/output token display pricing.

| Model             | Official billing | Official price  | Current doc state |
| ----------------- | ---------------- | --------------- | ----------------- |
| `qwen-image-plus` | per image        | `¥0.20 / image` | verified          |
| `qwen-image-max`  | per image        | `¥0.50 / image` | verified          |
| `qwen-image-2.0`  | per image        | `¥0.20 / image` | verified          |
| `qwen-image-2.0`  | per image        | `¥0.50 / image` | Beta              |

## Scope Notes

* This first batch commits only the public `text-to-image` capability. Additional upstream multimodal abilities are not exposed as separate customer protocols yet.
* Providers may run async or sync upstream paths internally, but the customer-facing contract remains the same OpenAI Images request/response shape.
* The edit model `qwen-image-plus` is not part of this first-batch generation closure. Treat editing as a separate capability decision.
