> ## Documentation Index
> Fetch the complete documentation index at: https://gccai.heqingsong.uk/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.

> [!NOTE]
>
> Dieser Endpunkt arbeitet asynchron. Nach erfolgreicher Übermittlung wird eine `task_id` zurückgegeben. Rufen Sie Status und Bilder über die [Aufgabenabfrage](https://gccai.heqingsong.uk/de/api-reference/tasks/status.md) 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.

```bash cURL theme={null}
curl --request POST \
  --url https://gccai.heqingsong.uk/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://gccai.heqingsong.uk/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://gccai.heqingsong.uk/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());
```

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

## Anfrage-Header

**Authorization** `string` *required*

Bearer-Authentifizierung im Format `Bearer <token>`, wobei `<token>` Ihr GccAi API Key ist.

## Anfrageparameter

**model** `string` *required*

Muss `flux-3-image` sein.

**prompt** `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.

**image\_urls** `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.

**aspect\_ratio** `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.

**size** `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`.

**resolution** `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.

**safety\_tolerance** `integer` (default: 2)

Toleranz der Inhaltssicherheitsprüfung, von 0–4. 0 ist am strengsten.

**grounding** `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"`.

**n** `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.

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

**code** `integer`

Antwortstatuscode. `200` bedeutet Erfolg.

**data** `array`

Ergebnis der Aufgabenübermittlung.

**Aufgabenfelder anzeigen**

**status** `string`

`submitted` bedeutet erfolgreiche Übermittlung, nicht abgeschlossene Generierung.

**task\_id** `string`

Aufgaben-ID zur Abfrage von Status und Ergebnissen.

## Aufgabenergebnisse abfragen

```bash theme={null}
curl --request GET \
  --url https://gccai.heqingsong.uk/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://gccai.heqingsong.uk/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.