> ## 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.

# Nano banana 2.1 Bildgenerierung

> Text-zu-Bild und Bearbeitung von Referenzbildern mit 1K / 2K / 4K und 10 Seitenverhältnissen, als offizielle und Ext-Version.

## Modellauswahl

| Modell-ID | Abrechnung | Bilder pro Anfrage | Größe der Referenzbilder |
| - | - | - | - |
| `gemini-nano-banana-2.1` | Tatsächlicher Tokenverbrauch | 1–4 | Maximal 20MB pro Bild |
| `gemini-nano-banana-2.1-ext` | Pro Bild nach Auflösungsstufe | Nur 1 | Maximal 20MB pro Bild, insgesamt 50MB |

Beide Modelle bieten dieselben Ausgabeabmessungen und dieselbe Bildqualität. Wählen Sie die offizielle Version für mehrere Bilder pro Anfrage oder Ext für eine bildbasierte Kostenschätzung. Maßgeblich sind die [Modellpreise](https://apimart.ai/pricing).

<Info>
  Dieser Endpunkt arbeitet asynchron. Nach erfolgreicher Übermittlung wird eine `task_id` zurückgegeben. Rufen Sie Status und Bilder über die [Aufgabenabfrage](/de/api-reference/tasks/status) ab. Empfohlen werden Abfragen alle 3–5 Sekunden und eine gesamte Wartezeit von mindestens 3 Minuten vor einem Timeout.
</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": "gemini-nano-banana-2.1",
      "prompt": "Eine orangefarbene Katze auf einem Holztisch neben einer Tasse Kaffee, sanftes Morgenlicht, realistische Fotografie",
      "size": "16:9",
      "resolution": "2K",
      "n": 1
    }'
  ```

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

  response = requests.post(
      "https://api.apimart.ai/v1/images/generations",
      headers={"Authorization": "Bearer <token>"},
      json={
          "model": "gemini-nano-banana-2.1",
          "prompt": "Eine orangefarbene Katze auf einem Holztisch neben einer Tasse Kaffee, sanftes Morgenlicht, realistische Fotografie",
          "size": "16:9",
          "resolution": "2K",
          "n": 1
      }
  )
  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: "gemini-nano-banana-2.1",
      prompt: "Eine orangefarbene Katze auf einem Holztisch neben einer Tasse Kaffee, sanftes Morgenlicht, realistische Fotografie",
      size: "16:9",
      resolution: "2K",
      n: 1
    })
  });
  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: `gemini-nano-banana-2.1` oder `gemini-nano-banana-2.1-ext`.
</ParamField>

<ParamField body="prompt" type="string" required>
  Textbeschreibung für die Bildgenerierung oder -bearbeitung. Chinesisch und Englisch werden unterstützt.
</ParamField>

<ParamField body="size" type="string" default="auto">
  Seitenverhältnis der Ausgabe. Unterstützt werden `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9` und `21:9`. Schreibweisen wie `16x9` sind ebenfalls zulässig.

  Bei Auslassung oder `auto` entscheidet das Modell. Bei Bild-zu-Bild folgt die Ausgabe dem Seitenverhältnis des Referenzbildes.

  Andere Verhältnisse wie `1:4`, `4:1`, `1:8` und `8:1` werden nicht unterstützt. Nicht unterstützte Werte führen zum Fehlschlagen der Aufgabe und zur Erstattung.
</ParamField>

<ParamField body="resolution" type="string" default="1K">
  Auflösungsstufe: `1K`, `2K` oder `4K`. Kleinschreibung wird akzeptiert. Der Wert beeinflusst auch die Abrechnung.

  `0.5K` und `512` werden nicht unterstützt und führen bei der Übermittlung zu HTTP 400. Andere unbekannte Werte wie `3K` werden für Generierung und Abrechnung als `1K` behandelt. Verwenden Sie nur die oben genannten unterstützten Werte.
</ParamField>

<ParamField body="n" type="integer" default="1">
  Anzahl der generierten Bilder: 1–4 bei der offiziellen Version, nur 1 bei Ext.

  Werte über 4 führen sofort zu HTTP 400. Ext-Anfragen mit 2–4 schlagen während der Ausführung fehl und werden vollständig erstattet. Senden Sie für mehrere Bilder separate Ext-Aufgaben oder verwenden Sie die offizielle Version.
</ParamField>

<ParamField body="image_urls" type="string[]">
  Liste der Referenzbilder. Ohne diese Liste wird Text-zu-Bild verwendet, mit ihr Bild-zu-Bild oder Bildbearbeitung. Jeder Eintrag unterstützt:

  * Eine öffentlich zugängliche HTTP(S)-Bild-URL.
  * Eine Base64-Data-URL wie `data:image/png;base64,...`.

  PNG, JPEG oder WEBP wird empfohlen. Die offizielle Version erlaubt maximal 20MB pro Bild. Ext erlaubt maximal 20MB pro Bild und insgesamt 50MB.

  Die Plattform legt keine feste Höchstzahl für Referenzbilder fest. Das bedeutet jedoch nicht unbegrenzte Uploads: Wird die Modellgrenze überschritten, kann die Aufgabe fehlschlagen und erstattet werden. Mehr Referenzbilder benötigen normalerweise mehr Zeit.
</ParamField>

<ParamField body="official_fallback" type="boolean" default="false">
  Gilt nur für `gemini-nano-banana-2.1-ext`. Bei Aktivierung wird nach einem Ext-Fehler versucht, die Aufgabe mit der offiziellen Version abzuschließen.

  **Wird tatsächlich die offizielle Version verwendet, erfolgt die Abrechnung nach deren tatsächlichem Tokenverbrauch und nicht nach dem Ext-Preis pro Bild.**
</ParamField>

<ParamField body="webhook" type="string">
  Callback-URL für die Benachrichtigung nach Aufgabenende. Siehe [Aufgaben-Webhooks](/de/api-reference/tasks/webhook).
</ParamField>

## Referenzwerte für Ausgabeabmessungen

| Seitenverhältnis | 1K | 2K | 4K |
| - | - | - | - |
| 1:1 | 1024×1024 | 2048×2048 | 4096×4096 |
| 2:3 | 848×1264 | 1696×2528 | 3392×5056 |
| 3:2 | 1264×848 | 2528×1696 | 5056×3392 |
| 3:4 | 896×1200 | 1792×2400 | 3584×4800 |
| 4:3 | 1200×896 | 2400×1792 | 4800×3584 |
| 4:5 | 928×1152 | 1856×2304 | 3712×4608 |
| 5:4 | 1152×928 | 2304×1856 | 4608×3712 |
| 9:16 | 768×1376 | 1536×2752 | 3072×5504 |
| 16:9 | 1376×768 | 2752×1536 | 5504×3072 |
| 21:9 | 1584×672 | 3168×1344 | 6336×2688 |

Diese Abmessungen umfassen Messwerte und Referenzwerte der Modellfamilie. Nicht alle Kombinationen wurden getestet. Maßgeblich sind die tatsächlichen Pixelabmessungen des zurückgegebenen Bildes.

## Referenzbild bearbeiten

```json theme={null}
{
  "model": "gemini-nano-banana-2.1-ext",
  "prompt": "Setze der Katze im Bild eine rote Strickmütze auf und lasse alles andere unverändert",
  "image_urls": ["https://example.com/cat.jpg"],
  "resolution": "1K"
}
```

Ersetzen Sie die Beispiel-URL durch eine zugängliche Bild-URL. Ohne `size` folgt die Ausgabe dem Seitenverhältnis des Referenzbildes.

## Stapelgenerierung (nur offizielle Version)

```json theme={null}
{
  "model": "gemini-nano-banana-2.1",
  "prompt": "Cyberpunk-Stadt bei Nacht, Neonlichter, Straßen nach dem Regen",
  "size": "16:9",
  "resolution": "2K",
  "n": 4
}
```

## Übermittlungsantwort

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

<ResponseField name="data" type="array">
  Ergebnis der Aufgabenübermittlung. `status` ist `submitted`. `task_id` dient zur Abfrage von Status und Ergebnis und ist nicht die endgültige Bild-URL.
</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"],
          "expires_at": 1791417625
        }
      ]
    }
  }
}
```

| Aufgabenstatus | Bedeutung |
| - | - |
| `pending` | In der Warteschlange |
| `processing` | Wird generiert |
| `completed` | Erfolgreich; Bild-URL-Array aus `data.result.images[0].url` lesen |
| `failed` | Fehlgeschlagen; Ursache in `data.error.message`. Vollständige Erstattung; `data.cost` ist 0 |

Alle fertigen Bildlinks stehen im Array `data.result.images[0].url`. Bei 4 generierten Bildern enthält es 4 Links. Es werden nur fertige Bilder zurückgegeben; `n=1` entspricht 1 fertigen Bild.

Links laufen 24 Stunden nach Aufgabenabschluss ab, wie in `expires_at` angegeben. Laden Sie die Bilder rechtzeitig herunter und speichern Sie sie. Die Ausgabe ist PNG oder JPEG; maßgeblich ist der tatsächliche Dateiinhalt. `data.cost` im Abfrageergebnis ist der endgültige Betrag in USD.

## Abrechnung

* **Offizielle Version**: Abrechnung nach tatsächlichen Eingabe- und Ausgabetokens. Prompts und Referenzbilder zählen zur Eingabe. Bei Übermittlung wird anhand der Auflösungsstufe und `n` vorab abgebucht; nach Abschluss erfolgt je nach tatsächlichem Verbrauch eine Erstattung oder Nachbelastung.
* **Ext-Version**: Preis der Auflösungsstufe × tatsächlich generierte Bildanzahl. Das Seitenverhältnis beeinflusst die Stufe nicht. Ist `official_fallback` aktiviert und wird tatsächlich die offizielle Version verwendet, gilt deren Tokenabrechnung.
* Die Einzelpreise finden Sie unter [Modellpreise](https://apimart.ai/pricing). Bei Übermittlung abgelehnte Anfragen erstellen keine Aufgabe und verursachen keine Kosten. Fehlgeschlagene Aufgaben werden vollständig erstattet.

## Häufige Fehler

| Situation | Maßnahme |
| - | - |
| HTTP 400 | Auf `0.5K` / `512`, `n` über 4 oder Überschreitung der Größe pro Referenzbild prüfen |
| HTTP 401 | API Key prüfen |
| HTTP 402 | Prüfen, ob das Guthaben für die Vorabbuchung ausreicht |
| HTTP 429 | Ratenlimit erreicht; mit zunehmender Wartezeit erneut versuchen |
| Aufgabe fehlgeschlagen: nicht unterstütztes Seitenverhältnis | Eines der 10 unterstützten `size`-Verhältnisse oder `auto` verwenden |
| Aufgabe fehlgeschlagen: mehrere Bilder mit Ext angefordert | `n` auf 1 setzen oder die offizielle Version verwenden |
| Aufgabe fehlgeschlagen: Inhaltssicherheitsprüfung | Prompt oder Referenzbilder ändern und erneut versuchen |
| Aufgabe fehlgeschlagen: Referenzbild konnte nicht heruntergeladen werden | Öffentliche Erreichbarkeit der Bild-URL prüfen |

<Warning>
  Nano banana 2.1 und Gemini 3.1 Flash Image sind unterschiedliche Modelle; ihre Namen sind keine austauschbaren Aliasse. Entfernen Sie beim Wechsel vom letzteren Modell die Auflösung `0.5K` und die vier extremen Verhältnisse `1:4`, `4:1`, `1:8` und `8:1`.
</Warning>


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