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

# MAI-Image-2.6 Bildgenerierung

> Text-zu-Bild, Einzelbildbearbeitung, Komposition mit bis zu 5 Referenzbildern und Web-Grounding. Verfügbar als hochwertige und Flash-Version.

## Modellauswahl

| Modell-ID | Eigenschaften |
| - | - |
| `mai-image-2.6` | Hochwertige Version für qualitätsorientierte Anwendungen |
| `mai-image-2.6-flash` | Schnellere, günstigere Version mit etwas geringerer Bildqualität |

Beide Modelle bieten dieselben Funktionen und Parameter und erzeugen nur 1 Bild pro Anfrage. Maßgeblich sind die [Modellpreise](https://apimart.ai/pricing).

<Info>
  Dieser Endpunkt arbeitet asynchron. Lesen Sie nach der Übermittlung die ID aus `data[0].task_id` und rufen Sie Ergebnisse über die [Aufgabenabfrage](/de/api-reference/tasks/status) ab. Empfohlen: Abfragen alle 3–5 Sekunden und ein gesamtes Wartezeitlimit von 3 Minuten. Bei `completed` oder `failed` beenden.
</Info>

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url https://api.apimart.ai/v1/images/generations \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
      "model": "mai-image-2.6",
      "prompt": "Fotorealistisches Poster eines Universitätscampus bei Sonnenuntergang, filmische Beleuchtung",
      "size": "16:9",
      "resolution": "2K"
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.apimart.ai/v1/images/generations",
      headers={"Authorization": "Bearer <token>"},
      json={
          "model": "mai-image-2.6",
          "prompt": "Fotorealistisches Poster eines Universitätscampus bei Sonnenuntergang, filmische Beleuchtung",
          "size": "16:9",
          "resolution": "2K"
      }
  )
  response.raise_for_status()
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.apimart.ai/v1/images/generations", {
    method: "POST",
    headers: {
      Authorization: "Bearer <token>",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      model: "mai-image-2.6",
      prompt: "Fotorealistisches Poster eines Universitätscampus bei Sonnenuntergang, filmische Beleuchtung",
      size: "16:9",
      resolution: "2K"
    })
  });
  if (!response.ok) throw new Error(await response.text());
  console.log(await response.json());
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "code": 200,
    "data": [
      {
        "status": "submitted",
        "task_id": "task_01K..."
      }
    ]
  }
  ```
</ResponseExample>

## Anfrage-Header

<ParamField header="Authorization" type="string" required>
  Bearer-Authentifizierung im Format `Bearer <token>`, wobei `<token>` Ihr APIMart API Key ist.
</ParamField>

## Anfrageparameter

<ParamField body="model" type="string" required>
  Modell-ID: `mai-image-2.6` oder `mai-image-2.6-flash`.
</ParamField>

<ParamField body="prompt" type="string" required>
  Bildbeschreibung oder Bearbeitungsanweisung. Unterstützt Chinesisch und Englisch, bis zu etwa 32.000 Tokens (nicht Zeichen).
</ParamField>

<ParamField body="size" type="string" default="1:1">
  Akzeptiert ein Seitenverhältnis (etwa `16:9`), Pixelabmessungen (etwa `1536x1024`) oder `auto`.

  * Seitenverhältnis: beliebiges ganzzahliges Verhältnis von `1:4` bis `4:1`, zusammen mit `resolution`.
  * Pixelabmessungen: `BreitexHöhe`, `Breite*Höhe` oder `Breite×Höhe`. Dabei bestimmt `resolution` nicht die Abmessungen.
  * `auto`: Das Modell wählt das Seitenverhältnis anhand des Prompts.

  Nur für Text-zu-Bild. Bei Referenzbildern bestimmt das Modell die Ausgabeabmessungen.
</ParamField>

<ParamField body="resolution" type="string" default="1K">
  Unterstützt `1K` und `2K`, auch in Kleinschreibung. Andere Stufen wie `4K` werden nicht unterstützt und führen zu HTTP 400.

  Bei Text-zu-Bild mit Seitenverhältnis bestimmt dieser Parameter die Größenstufe. Bei exakten Pixelangaben wird er nicht zur Größenberechnung verwendet. Bild-zu-Bild-Abmessungen lassen sich damit nicht festlegen.
</ParamField>

<ParamField body="width" type="integer">
  Exakte Pixelbreite. Muss zusammen mit `height` angegeben werden. Dieses Paar hat bei Text-zu-Bild Vorrang vor `size` und `resolution`.

  Breite und Höhe müssen jeweils mindestens 768 betragen, bei maximal 2.359.296 Pixeln insgesamt. Verwenden Sie Vielfache von 32; andernfalls wird jede Abmessung auf ein Vielfaches von 32 abgerundet.

  Dieser Parameter bestimmt nicht die Ausgabeabmessungen bei Bild-zu-Bild.
</ParamField>

<ParamField body="height" type="integer">
  Exakte Pixelhöhe. Zusammen mit `width` angeben; es gelten die obigen Grenzen. Bestimmt nicht die Ausgabeabmessungen bei Bild-zu-Bild.
</ParamField>

<ParamField body="image_urls" type="string[]">
  Liste mit maximal 5 Referenzbildern. Ohne Angabe: Text-zu-Bild; ein Bild: Einzelbildbearbeitung; mehrere Bilder: Komposition.

  Jeder Eintrag unterstützt eine öffentlich zugängliche HTTP(S)-Bild-URL oder eine Base64-Data-URL wie `data:image/png;base64,...`.

  JPEG und PNG werden unterstützt; WEBP und GIF werden automatisch in PNG umgewandelt. Bild-URLs müssen öffentlich erreichbar sein, sonst schlägt die Aufgabe fehl.

  **Bei Bild-zu-Bild bestimmt das Modell die Abmessungen anhand der Referenzen**: etwa 1 Million Pixel mit ähnlichem Seitenverhältnis. `size`, `resolution`, `width` und `height` können diese Abmessungen nicht festlegen.
</ParamField>

<ParamField body="auto_aspect_ratio" type="boolean" default="false">
  Mit `true` wählt das Modell das Seitenverhältnis anhand des Prompts, entsprechend `size: "auto"`.
</ParamField>

<ParamField body="web_grounding" type="boolean" default="false">
  Mit `true` werden vor der Generierung aktuelle Informationen recherchiert, etwa für reale Personen, Orte oder Ereignisse.
</ParamField>

<ParamField body="n" type="integer" default="1">
  Nur `1` wird unterstützt. Senden Sie für mehrere Bilder separate Aufgaben. Werte über 1 führen zu HTTP 400.
</ParamField>

## Text-zu-Bild-Abmessungen

| Anforderung | Parameter |
| - | - |
| Standardquadrat | Größenparameter weglassen: `1:1` + `1K`, Ausgabe 1024×1024 |
| Auflösungsstufe + Seitenverhältnis | `size: "16:9"`, `resolution: "2K"` |
| Exakte Pixel | `size: "1536x1024"` oder `width: 1536`, `height: 1024` |
| Automatisches Seitenverhältnis | `size: "auto"` oder `auto_aspect_ratio: true` |

Priorität bei Text-zu-Bild: gemeinsam angegebene `width` / `height` → `size` als Pixelabmessungen → `size` als Seitenverhältnis kombiniert mit `resolution`.

### Auflösungsstufen und Seitenverhältnisse

| Seitenverhältnis | 1K | 2K |
| - | - | - |
| 1:1 | 1024×1024 | 1536×1536 |
| 4:3 / 3:4 | 1152×864 / 864×1152 | 1760×1312 / 1312×1760 |
| 3:2 / 2:3 | 1248×832 / 832×1248 | 1856×1248 / 1248×1856 |
| 16:9 / 9:16 | 1344×768 / 768×1344 | 2048×1152 / 1152×2048 |
| 2:1 / 1:2 | 1536×768 / 768×1536 | 2144×1056 / 1056×2144 |
| 21:9 / 9:21 | 1792×768 / 768×1792 | 2336×992 / 992×2336 |
| 4:1 / 1:4 | 3072×768 / 768×3072 | 3072×768 / 768×3072 |

Die Abmessungen werden in Vielfache von 32 umgerechnet. Da die kürzere Seite mindestens 768 beträgt, können extreme Seitenverhältnisse selbst bei `1K` etwa 1 Million Pixel überschreiten. Abgerechnet wird der Tokenverbrauch für die tatsächlichen Ausgabepixel.

### Grenzen für exakte Pixel

* Breite und Höhe müssen jeweils mindestens 768 betragen.
* Breite × Höhe darf 2.359.296 (1536 × 1536) nicht überschreiten.
* Jede Abmessung wird auf ein Vielfaches von 32 abgerundet. `1000x1000` ergibt beispielsweise `992x992`. Verwenden Sie Vielfache von 32 für exakte Größen.

`1536x1024`, `2048x1152` und `3072x768` werden unterstützt. `512x512` wird wegen zu kleiner Seiten abgelehnt, `2048x2048` wegen Überschreitung der Gesamtpixelzahl.

<Warning>
  Die Obergrenze gilt für die **Gesamtpixelzahl**, nicht für eine maximale Seitenlänge von 1536. Daher sind `2048x1152` und `3072x768` gültig, die 4K-Stufe jedoch nicht. Diese Größeneinstellungen gelten nur für Text-zu-Bild.
</Warning>

## Anfragebeispiele

### Exakte Pixel und Web-Grounding

```json theme={null}
{
  "model": "mai-image-2.6-flash",
  "prompt": "Der Eiffelturm bei Nacht mit Feuerwerk im Stil eines Reiseplakats",
  "width": 2048,
  "height": 1152,
  "web_grounding": true
}
```

### Einzelbildbearbeitung

```json theme={null}
{
  "model": "mai-image-2.6",
  "prompt": "Färbe das Fahrrad blau und füge daneben einen kleinen Hund hinzu",
  "image_urls": ["https://example.com/bicycle.png"]
}
```

### Komposition mehrerer Bilder

```json theme={null}
{
  "model": "mai-image-2.6-flash",
  "prompt": "Kombiniere beide Referenzbilder zu einem klaren futuristischen Produktfoto",
  "image_urls": [
    "https://example.com/first.png",
    "https://example.com/second.jpg"
  ]
}
```

Ersetzen Sie die Beispiel-Bild-URLs durch tatsächlich erreichbare URLs.

## Nicht unterstützte Parameter

`quality`, `style`, `background`, `output_format`, `response_format` und `mask_url` werden nicht unterstützt und bei Angabe ignoriert. Die Ausgabe ist immer PNG. Maskenbearbeitung wird nicht unterstützt.

## Übermittlungsantwort

<ResponseField name="code" type="integer">
  Antwortstatuscode. `200` bedeutet Erfolg.
</ResponseField>

<ResponseField name="data" type="array">
  Ergebnis der Aufgabenübermittlung.

  <Expandable title="Aufgabenfelder anzeigen">
    <ResponseField name="status" type="string">
      `submitted` bedeutet erfolgreiche Übermittlung, nicht abgeschlossene Bildgenerierung.
    </ResponseField>

    <ResponseField name="task_id" type="string">
      Aufgaben-ID zur Abfrage von Status und Ergebnissen.
    </ResponseField>
  </Expandable>
</ResponseField>

## Aufgabenergebnisse abfragen

```bash theme={null}
curl --request GET \
  --url https://api.apimart.ai/v1/tasks/task_01K... \
  --header 'Authorization: Bearer <token>'
```

Beispiel einer erfolgreichen Antwort (die Bild-URL ist ein Platzhalter):

```json theme={null}
{
  "code": 200,
  "data": {
    "id": "task_01K...",
    "status": "completed",
    "progress": 100,
    "result": {
      "images": [
        {
          "url": ["https://example.com/generated-image.png"]
        }
      ]
    }
  }
}
```

| Status | Vorgehen |
| - | - |
| `pending` | In der Warteschlange; weiter abfragen |
| `processing` | In Verarbeitung; weiter abfragen |
| `completed` | Erfolgreich; Bildlinks aus dem Array `data.result.images[0].url` lesen |
| `failed` | Fehlgeschlagen; Ursache in `data.error.message`, Abfragen beenden. Vollständige Erstattung |

## Abrechnung

Abrechnung nach tatsächlichem Eingabe- und Ausgabetokenverbrauch. Einzelpreise siehe [Modellpreise](https://apimart.ai/pricing).

* Bildausgabetokens = tatsächliche Ausgabebreite × Höhe ÷ 1024. 1024×1024 entspricht 1024 Tokens, 1536×1536 entspricht 2304 Tokens.
* Eingabetokens je Referenzbild entsprechen ungefähr dessen Breite × Höhe ÷ 1024. Textprompts zählen ebenfalls zur Eingabe.
* Bei Übermittlung wird nach Stufe vorab abgebucht; nach Erfolg erfolgt eine Erstattung oder Nachbelastung anhand des tatsächlichen Tokenverbrauchs.
* Fehlgeschlagene Aufgaben werden automatisch vollständig erstattet. Bei Übermittlung abgelehnte Parameterfehler erstellen keine Aufgabe und verursachen keine Kosten.

## Häufige Fehler

| HTTP | Ursache und Maßnahme |
| - | - |
| 400 | Nicht unterstützte `resolution`, etwa `4K`; `1K` oder `2K` verwenden |
| 400 | Breite oder Höhe unter 768 oder Gesamtpixelzahl über 2.359.296 |
| 400 | Nur `width` oder `height` angegeben; beide müssen gemeinsam angegeben werden |
| 400 | Seitenverhältnis außerhalb `1:4` bis `4:1` oder unbekanntes `size`-Format |
| 400 | `n` über 1 oder mehr als 5 Referenzbilder |

Prüfen Sie bei Fehlern den Bilddownload und die Inhaltssicherheitsprüfung. Ändern Sie Prompt oder Referenzen vor einem erneuten Versuch. Die Bearbeitung fotorealistischer Bilder mit Minderjährigen kann durch Sicherheitsrichtlinien blockiert werden.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.