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

> ## Agent Instructions
> Public hosts only: console https://omnimux.ai/dashboard · API https://api.omnimux.ai · docs https://docs.omnimux.ai.
> Gateway auth is Authorization: Bearer sk-… on https://api.omnimux.ai/v1 (OpenAI-compatible Chat Completions and related paths).
> Discover pages from /llms.txt; full site dump /llms-full.txt; product skill /skill.md; docs search MCP /mcp. Prefer .md page URLs for Markdown.
> Default docs locale is en; zh mirrors the same relative paths. Do not invent model ids not present on live pricing or the complete API pages.

# GPT Image · Image generation

> Generate images with the GPT Image 2.5 per-call models.

<Warning>
  Since September 10, 2026, `gpt-image-2` and `gpt-image-2-hd` have been renamed to `gpt-image-2.5` and `gpt-image-2.5-hd`. The old model IDs are no longer accepted. Update the `model` in your requests; these are not compatibility aliases.
</Warning>

The base prices for these per-call models are USD 0.0441/call and USD 0.005479/call, respectively; group multipliers may affect the final charge. This rename does not change prices.

Read image results when `data` is returned. An `image.generation.task` response means an asynchronous task was submitted, not that an image is ready. The response shape depends on the route; do not treat task acceptance as the final result.

Flare and Sunburst are separate token-billed models. They are not part of this per-call contract and are not yet available.

## Reference image limits

The reference-image field is `images` (an array of image URLs or base64 strings); `image`, `image_urls` and `input_reference` are accepted aliases and are normalized to `images`.

* `gpt-image-2.5`: up to 16 images per request; no minimum (omit `images` for text-to-image); the vendor publishes no accepted-format list or per-file size limit for reference images.
* `gpt-image-2.5-hd`: no model spec exists yet, so its reference-image limits are **unverified** and no image count, format or per-file size limit is stated here.
* `gpt-image-2.5-flare`: discounted tier image model route; reference image specifications follow baseline.
* `gpt-image-2.5-sunburst`: economy tier image model route; reference image specifications follow baseline.

The 50 MB figure in the vendor's image guide is scoped to the image being edited together with its mask, not to a single reference image; no per-file ceiling is stated here.

<Panel>
  <RequestExample>
    ```bash curl theme={null}
    curl --request POST \
      --url https://api.omnimux.ai/v1/images/generations \
      --header 'Authorization: Bearer <token>' \
      --header 'Content-Type: application/json' \
      --data '{"model": "gpt-image-2.5", "prompt": "A product photo on a white background", "n": 1}'
    ```
  </RequestExample>

  <ResponseExample>
    ```json 200 — illustrative async task theme={null}
    {"id":"task_example","object":"image.generation.task","model":"gpt-image-2.5-hd","status":"pending","created":0}
    ```

    ```json 402 theme={null}
    {"error":{"message":"Insufficient quota","type":"insufficient_quota"}}
    ```
  </ResponseExample>
</Panel>


## OpenAPI

````yaml openapi/ops/image/en/gpt-image.json POST /v1/images/generations
openapi: 3.0.3
info:
  title: GPT Image · Image generation
  version: 1.0.0
servers:
  - url: https://api.omnimux.ai
security: []
paths:
  /v1/images/generations:
    post:
      summary: GPT Image · Image generation
      description: Generate images with the GPT Image 2.5 per-call models.
      operationId: generateGPTImage
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - prompt
              properties:
                model:
                  type: string
                  enum:
                    - gpt-image-2.5
                    - gpt-image-2.5-hd
                    - gpt-image-2.5-flare
                    - gpt-image-2.5-sunburst
                  default: gpt-image-2.5
                prompt:
                  type: string
                'n':
                  type: integer
                  description: Image count, subject to the selected model and route limits.
                size:
                  type: string
                  description: >-
                    Accepted sizes depend on the selected model and route; not
                    every size is guaranteed.
                quality:
                  type: string
                  description: Quality options depend on the selected model and route.
                images:
                  type: array
                  items:
                    type: string
                  description: >-
                    Reference images: image URL or base64. image / image_urls /
                    input_reference are accepted aliases and are normalized to
                    images.
            example:
              model: gpt-image-2.5
              prompt: A product photo on a white background
              'n': 1
      responses:
        '200':
          description: Image results or an accepted asynchronous task.
          content:
            application/json:
              schema:
                type: object
                description: >-
                  The response can contain image results or an asynchronous
                  task; handle the returned shape.
                properties:
                  created:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        url:
                          type: string
                        b64_json:
                          type: string
                  id:
                    type: string
                    description: Asynchronous task ID, when returned.
                  object:
                    type: string
                  model:
                    type: string
                  status:
                    type: string
        '400':
          description: Invalid request
        '401':
          description: Authentication required
        '402':
          description: Insufficient quota
        '403':
          description: Forbidden
        '429':
          description: Rate limit exceeded
        '500':
          description: Server error
      security:
        - BearerAuth: []
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````