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

# FLUX 3 Image Bildgenerierung

> Text-zu-Bild, Bearbeitung einzelner Bilder und bis zu 10 Referenzbilder mit mehreren Seitenverhältnissen und bis zu 4k Auflösung.

<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. Beenden Sie die Abfragen bei `completed` oder `failed`. Die Generierung in `4k` kann mehrere Minuten dauern; empfohlen wird ein gesamtes Wartezeitlimit von 10 Minuten.
</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": "flux-3-image",
      "prompt": "Ultrabreite filmische Aufnahme einer nebligen Küstenstraße im Morgengrauen, ein einzelner Oldtimer mit eingeschalteten Scheinwerfern",
      "aspect_ratio": "21: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": "flux-3-image",
          "prompt": "Ultrabreite filmische Aufnahme einer nebligen Küstenstraße im Morgengrauen, ein einzelner Oldtimer mit eingeschalteten Scheinwerfern",
          "aspect_ratio": "21:9",
          "resolution": "2k"
      }
  )
  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: "flux-3-image",
      prompt: "Ultrabreite filmische Aufnahme einer nebligen Küstenstraße im Morgengrauen, ein einzelner Oldtimer mit eingeschalteten Scheinwerfern",
      aspect_ratio: "21:9",
      resolution: "2k"
    })
  });
  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>
  Muss `flux-3-image` sein.
</ParamField>

<ParamField body="prompt" type="string" required>
  Bildbeschreibung für Text-zu-Bild oder Anweisungen zur Bildbearbeitung. Negative Prompts werden nicht unterstützt; beschreiben Sie stattdessen das gewünschte Bild.

  Verwenden Sie Tags und bbox-JSON in `prompt`, um Layouts oder lokale Bearbeitungsbereiche festzulegen. Beispiele finden Sie unten.
</ParamField>

<ParamField body="image_urls" type="string[]">
  Liste mit bis zu 10 Referenzbildern. Unterstützt öffentlich zugängliche HTTP(S)-URLs oder Base64-Eingaben.

  Ohne Referenzbilder wird Text-zu-Bild verwendet. Ein Bild ermöglicht die Bearbeitung eines Einzelbildes, mehrere Bilder dienen als gemeinsame Referenzen.
</ParamField>

<ParamField body="aspect_ratio" type="string" default="auto">
  Seitenverhältnis der Ausgabe. Unterstützte Werte:

  `21:9`, `2:1`, `16:9`, `3:2`, `7:5`, `4:3`, `5:4`, `1:1`, `4:5`, `3:4`, `5:7`, `2:3`, `9:16`, `1:2`, `9:21` oder `auto`.

  Schreibweisen wie `16x9` werden ebenfalls akzeptiert. Bei `auto`:

  * Bearbeitung oder mehrere Referenzbilder: folgt dem Seitenverhältnis des ersten Referenzbildes.
  * Text-zu-Bild: wird anhand des Prompts bestimmt; andernfalls wird `1:1` verwendet.
</ParamField>

<ParamField body="size" type="string">
  Kompatibilitätsparameter für das Seitenverhältnis. Kann `aspect_ratio` ersetzen und akzeptiert dieselben Werte. Verwenden Sie nur eines der beiden Felder.

  Pixelabmessungen wie `1024x1024` werden nicht unterstützt und führen zu HTTP 400. Wählen Sie die Ausgabeauflösung über `resolution`.
</ParamField>

<ParamField body="resolution" type="string" default="1k">
  Auflösungsstufe. Unterstützt `768sq`, `1k`, `1.5k`, `2k` und `4k`, unabhängig von Groß- und Kleinschreibung. `768` entspricht `768sq`.

  Dieser Parameter bestimmt die Preisstufe. Ohne Angabe werden Generierung und Abrechnung mit `1k` durchgeführt. Nicht unterstützte Werte wie `3k` führen zu HTTP 400.
</ParamField>

<ParamField body="safety_tolerance" type="integer" default="2">
  Toleranz der Inhaltssicherheitsprüfung, von 0–4. 0 ist am strengsten.
</ParamField>

<ParamField body="grounding" type="boolean" default="true">
  Ob vor der Generierung Web- oder Bildsuchen erlaubt sind. Mit `false` deaktivieren.

  Muss ein boolescher Wert sein, nicht die Zeichenfolgen `"false"` oder `"true"`.
</ParamField>

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

## Nicht unterstützte Parameter

Die folgenden Parameter führen bei Angabe zu HTTP 400; sie werden nicht stillschweigend ignoriert:

* `width`, `height`
* Pixelabmessungen in `size`, beispielsweise `1024x1024`
* `seed`, `steps`, `guidance`
* `output_format`, `negative_prompt`, `prompt_upsampling`, `mask_url`

Verwenden Sie `resolution` für eine höhere Auflösung und `aspect_ratio` für ein bestimmtes Seitenverhältnis.

## Referenzbild bearbeiten

```json theme={null}
{
  "model": "flux-3-image",
  "prompt": "Färbe das Auto im Bild rot und behalte die ursprüngliche Straße, den Hintergrund und die Beleuchtung bei",
  "image_urls": ["https://example.com/car.jpg"],
  "aspect_ratio": "auto",
  "resolution": "2k"
}
```

Ersetzen Sie die Beispiel-URL durch eine öffentlich zugängliche Bild-URL. Geben Sie für mehrere Referenzbilder mehrere URLs in `image_urls` an, insgesamt höchstens 10 Bilder.

## Mehrere Referenzbilder

Bearbeitung, lokale Bearbeitung und Layout verwenden denselben Endpunkt und dasselbe Modell dieser Seite; die Abrechnung erfolgt nach `resolution`. Die Referenzen sind der Reihe nach nummeriert: `ref_image_0` für das erste, `ref_image_1` für das zweite Bild. Im Prompt können Sie auch `Image 1` / `Image 2` verwenden.

```json theme={null}
{
  "model": "flux-3-image",
  "prompt": "Wandle Image 1 in den Stil von Image 2 um.",
  "image_urls": [
    "https://example.com/subject.jpg",
    "https://example.com/style.jpg"
  ],
  "aspect_ratio": "auto"
}
```

## Lokale Bearbeitung (Bounding Box)

Beginnen Sie `prompt` mit natürlichsprachlichen Bearbeitungsanweisungen und bezeichnen Sie Elemente mit `<Tags>`, etwa `<car_1>`. Hängen Sie innerhalb derselben Zeichenfolge ein JSON-Array mit einem Objekt pro Box an. bbox ist kein separater Anfrageparameter.

| Feld | Beschreibung |
| - | - |
| `id` | Entspricht dem Element-Tag im Prompt, ohne spitze Klammern. |
| `from` | Quelle des Elements, etwa `ref_image_0`; für neu gezeichnete oder neu zu zeichnende Elemente `null` verwenden. |
| `src_bbox` | Box im Quellbild; ebenfalls `null`, wenn `from` gleich `null` ist. |
| `tgt_bbox` | Box im Ausgabebild; identisch mit `src_bbox` bedeutet Position beibehalten, andernfalls wird das Element verschoben. |
| `desc` | Beschreibt, was am Element geändert oder beibehalten werden soll. |

Alle Box-Felder (`src_bbox`, `tgt_bbox`, `bbox`) verwenden `[oben, links, unten, rechts]`, also `[y1, x1, y2, x2]`, auf einem **normalisierten Raster von 0–1000**: links oben `[0,0]`, rechts unten `[1000,1000]`. Es handelt sich nicht um Pixelkoordinaten.

Das Beispiel färbt das Auto innerhalb der Box rot und beschreibt den zu erhaltenden Hintergrund. URL und Boxpositionen sind Beispiele; passen Sie sie an Ihr Bild an.

```json theme={null}
{
  "model": "flux-3-image",
  "prompt": "Färbe in <ref_image_0> das Auto <car_1> rot und erhalte den Hintergrund <background_1>. [{\"id\":\"car_1\",\"from\":null,\"src_bbox\":null,\"tgt_bbox\":[250,300,750,800],\"desc\":\"Ein rotes Auto mit unveränderter ursprünglicher Form und Ausrichtung.\"},{\"id\":\"background_1\",\"from\":\"ref_image_0\",\"src_bbox\":[0,0,1000,1000],\"tgt_bbox\":[0,0,1000,1000],\"desc\":\"Ursprüngliche Straße, Hintergrund und Beleuchtung beibehalten.\"}]",
  "image_urls": [
    "https://example.com/car.jpg"
  ],
  "aspect_ratio": "auto",
  "resolution": "2k"
}
```

### Element verschieben

Fügen Sie das folgende Objekt in das bbox-Array am Ende des Prompts ein. `from` bezeichnet das Quellbild, `src_bbox` die ursprüngliche und `tgt_bbox` die neue Position. Verwenden Sie auch in der natürlichsprachlichen Anweisung das passende Tag `<knight_1>`.

```json theme={null}
{
  "id": "knight_1",
  "from": "ref_image_0",
  "src_bbox": [
    500,
    150,
    850,
    350
  ],
  "tgt_bbox": [
    194,
    55,
    544,
    255
  ],
  "desc": "Eine kleine graue Amigurumi-Ritterfigur."
}
```

## Text-zu-Bild-Layout

Layouts funktionieren auch ohne Referenzbilder. Jede Box verwendet `id`, `bbox` und `desc`. Geben Sie `aspect_ratio` explizit an, da das Koordinatenraster mit dem Seitenverhältnis gestreckt wird.

```json theme={null}
{
  "model": "flux-3-image",
  "aspect_ratio": "1:1",
  "prompt": "Minimalistische Illustration einer schwarzen laufenden Silhouette <silhouette_1> vor einem einfarbigen gelbgrünen Hintergrund <background_1>. [{\"id\":\"background_1\",\"bbox\":[0,0,1000,1000],\"desc\":\"Ein neongelbgrüner Hintergrund mit dezenter Papiertextur.\"},{\"id\":\"silhouette_1\",\"bbox\":[150,150,850,850],\"desc\":\"Eine schwarze laufende Silhouette mit gepunkteter Textur.\"}]"
}
```

### Hinweise

* Das bbox-JSON ist Teil der Zeichenfolge `prompt`. Beim manuellen Schreiben des Anfrage-JSON müssen innere doppelte Anführungszeichen als `\"` maskiert werden. SDKs oder JSON-Serialisierung können dies automatisch übernehmen.

* Listen Sie auch die unverändert zu erhaltenden Bereiche auf und beschreiben Sie die Erhaltungsanforderungen in `desc`.

* Element-Tags im Prompt müssen den JSON-Werten von `id` eins zu eins entsprechen. Referenzkennungen wie `<ref_image_0>` verweisen auf Eingabebilder.

* Dieses Modell hat keinen Parameter `mask` und unterstützt `mask_url` nicht; die Übergabe von `mask_url` führt zu HTTP 400. Die bbox-Bearbeitung verwendet keinen Parameter zum Hochladen einer Maske.

## Ü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 Generierung.
    </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": {
    "status": "completed",
    "result": {
      "images": [
        {
          "url": ["https://example.com/generated-image.jpg"]
        }
      ]
    }
  }
}
```

Lesen Sie die Bildlinks aus dem Array `data.result.images[0].url`. Bei Aufgabenstatus `failed` prüfen Sie die zurückgegebene Fehlermeldung, statt weiter auf ein Bild zu warten.

## Auflösung und Abrechnung

Abrechnung pro Bild. Der Einzelpreis hängt ausschließlich von `resolution` ab, nicht vom Seitenverhältnis oder der Anzahl der Referenzbilder. Referenzbilder verursachen keine zusätzlichen Kosten.

| Auflösungsstufe | Ungefähre Ausgabegröße |
| - | - |
| `768sq` | Ca. 768×768 |
| `1k` (Standard) | Ca. 1MP |
| `1.5k` | Ca. 2MP |
| `2k` | Ca. 4MP |
| `4k` | Ca. 16MP |

Die Ausgabegrößen sind Näherungswerte; maßgeblich sind die Pixelabmessungen des zurückgegebenen Bildes. Die Preise der einzelnen Stufen finden Sie unter [Modellpreise](https://apimart.ai/pricing).

Fehlgeschlagene oder durch die Inhaltsprüfung blockierte Aufgaben werden vollständig erstattet.

## Häufige Parameterfehler

| Anfrage | Ergebnis und Maßnahme |
| - | - |
| `resolution: "3k"` | HTTP 400; eine der 5 unterstützten Stufen verwenden |
| `size: "1024x1024"` | HTTP 400; Seitenverhältnis verwenden und Auflösung über `resolution` auswählen |
| `n: 2` | HTTP 400; pro Anfrage wird nur 1 Bild generiert |
| 11 Referenzbilder | HTTP 400; höchstens 10 angeben |
| `grounding: "false"` | HTTP 400; booleschen Wert `false` verwenden |


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