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

# GPT Image 2 Bildgenerierung

> - Das GPT Image 2 (gpt-image-2) Modell unterstützt Text-zu-Bild, Bild-zu-Bild, Bildbearbeitung und andere Generierungsmodi
- Asynchroner Verarbeitungsmodus, verwenden Sie die zurückgegebene Aufgaben-ID zur [Abfrage](/de/api-manual/task-management/get-task-detail)
- Generierte Bildlinks sind 24 Stunden gültig, bitte speichern Sie diese umgehend



## OpenAPI

````yaml de/api-manual/image-series/gpt-image-2/gpt-image-2-image-generation.json POST /v1/images/generations
openapi: 3.1.0
info:
  title: gpt-image-2 API
  description: >-
    Bildaufgaben mit KI-Modellen erstellen, mit Unterstützung für mehrere
    Modelle und Parameterkonfigurationen
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: Produktion
security:
  - bearerAuth: []
tags:
  - name: Bildgenerierung
    description: APIs für KI-Bildgenerierung
paths:
  /v1/images/generations:
    post:
      tags:
        - Bildgenerierung
      summary: gpt-image-2 API
      description: >-
        - Das GPT Image 2 (gpt-image-2) Modell unterstützt Text-zu-Bild,
        Bild-zu-Bild, Bildbearbeitung und andere Generierungsmodi

        - Asynchroner Verarbeitungsmodus, verwenden Sie die zurückgegebene
        Aufgaben-ID zur
        [Abfrage](/de/api-manual/task-management/get-task-detail)

        - Generierte Bildlinks sind 24 Stunden gültig, bitte speichern Sie diese
        umgehend
      operationId: createImageGenerationGptImage2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImageGenerationRequest'
            examples:
              text_to_image:
                summary: Text zu Bild (einfach)
                value:
                  model: gpt-image-2
                  prompt: Ein wunderschöner bunter Sonnenuntergang über dem Ozean
              text_to_image_hd:
                summary: Text zu Bild (HD 16:9)
                value:
                  model: gpt-image-2
                  prompt: >-
                    Filmische Weitwinkelaufnahme einer futuristischen
                    Stadtsilhouette in der Abenddämmerung
                  size: '16:9'
                  resolution: 4K
                  quality: high
                  'n': 1
              text_to_image_pixel:
                summary: Text zu Bild (explizite Pixel)
                value:
                  model: gpt-image-2
                  prompt: Minimalistisches Logo-Design
                  size: 1024x1024
                  quality: medium
              image_edit:
                summary: Bild zu Bild / Bearbeitung
                value:
                  model: gpt-image-2
                  prompt: Füge eine süße Katze neben ihr hinzu
                  size: '1:1'
                  resolution: 1K
                  quality: medium
                  image_urls:
                    - https://example.com/input.png
                  callback_url: https://your-domain.com/webhook/image-done
              image_inpaint:
                summary: Inpainting (mit Maske)
                value:
                  model: gpt-image-2
                  prompt: Ersetze den Himmel durch einen Sternenhimmel
                  size: '1:1'
                  resolution: 1K
                  quality: medium
                  image_urls:
                    - https://example.com/input.png
                  mask_url: https://example.com/mask.png
              batch_generation:
                summary: Batch-Generierung
                value:
                  model: gpt-image-2
                  prompt: Ein süßer Roboter im Pixel-Art-Stil
                  size: '1:1'
                  resolution: 2K
                  quality: high
                  'n': 4
      responses:
        '200':
          description: Bildaufgabe erfolgreich erstellt
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageGenerationResponse'
        '400':
          description: Ungültige Anfrageparameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: invalid_request
                  message: Invalid request parameters
                  type: invalid_request_error
        '401':
          description: Nicht authentifiziert, Token ungültig oder abgelaufen
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Unzureichendes Guthaben, Aufladung erforderlich
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: insufficient_quota
                  message: Insufficient quota. Please top up your account.
                  type: insufficient_quota
        '403':
          description: Zugriff verweigert
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: model_access_denied
                  message: 'Token does not have access to model: gpt-image-2'
                  type: invalid_request_error
        '429':
          description: Ratenlimit überschritten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: rate_limit_exceeded
                  message: Too many requests, please try again later
                  type: rate_limit_error
        '500':
          description: Interner Serverfehler
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: internal_error
                  message: Internal server error
                  type: api_error
components:
  schemas:
    ImageGenerationRequest:
      type: object
      required:
        - model
        - prompt
      properties:
        model:
          type: string
          description: >-
            Name des Bildgenerierungsmodells, offizieller Kanal, bessere
            Stabilität und Steuerbarkeit, geeignet für kommerzielle Szenarien
          enum:
            - gpt-image-2
          default: gpt-image-2
          example: gpt-image-2
        prompt:
          type: string
          description: >-
            Prompt, der das zu generierende Bild beschreibt oder wie das
            Eingabebild bearbeitet werden soll


            **Beschränkungen:**

            - Maximal `32000` Zeichen (gezählt nach Unicode-Codepunkten,
            funktioniert für CJK und andere Sprachen)

            - Wenn der Prompt `8000` Tokens überschreitet, entspricht das
            generierte Bild möglicherweise nicht den Erwartungen; eine Kürzung
            des Prompts wird empfohlen
          example: Ein wunderschöner bunter Sonnenuntergang über dem Ozean
          maxLength: 32000
        image_urls:
          type: array
          description: >-
            Referenzbild-URL-Liste für Bild-zu-Bild- und
            Bildbearbeitungsfunktionen


            **Hinweis:**

            - Anzahl der Eingabebilder pro Anfrage: `1~16`

            - Größe eines einzelnen Bildes: nicht mehr als `50MB`

            - Pixel eines einzelnen Bildes: Breite × Höhe nicht mehr als
            `178.956.970` px

            - Seitenlänge eines einzelnen Bildes: Breite / Höhe jeweils nicht
            mehr als `23170` px; bei Überschreitung können Fehler auftreten

            - Unterstützte Dateiformate: `.jpeg`, `.jpg`, `.png`, `.webp`

            - Bild-URLs müssen direkt vom Server abrufbar sein oder die Bild-URL
            sollte beim Zugriff direkt heruntergeladen werden (typischerweise
            enden diese URLs mit Bilddateiendungen wie `.png`, `.jpg`)

            - In Bild-zu-Bild- / Bildbearbeitungs-Szenarien verursachen die
            übergebenen Referenzbilder zusätzlichen Image-Input-Token-Verbrauch
          items:
            type: string
            format: uri
          example:
            - https://example.com/image1.png
            - https://example.com/image2.png
        mask_url:
          type: string
          format: uri
          description: >-
            Inpainting-Maske URL — markiert die Region des Referenzbildes, die
            neu generiert werden soll. **Nur im Bildbearbeitungsmodus wirksam**
            (muss zusammen mit `image_urls` verwendet werden); bei reiner
            Text-zu-Bild-Generierung wird die Maske stillschweigend ignoriert.


            **Format-Anforderungen:**

            - **Muss ein PNG mit Alphakanal sein**: transparente Pixel (`alpha <
            255`) = neu zu generierende Bereiche, undurchsichtige Pixel =
            bleiben erhalten

            - **Maskenabmessungen müssen exakt mit dem Referenzbild
            übereinstimmen** (Breite × Höhe in Pixeln)

            - Eine Maske pro Anfrage


            **Hinweis:**

            - Mindestens ein Referenzbild in `image_urls` ist erforderlich; eine
            Maske allein hat keine Wirkung

            - Häufige Fehler:
                - `Invalid mask image format - mask image missing alpha channel`: Das hochgeladene Bild hat keinen Alphakanal (JPEG, undurchsichtiges PNG usw.). Exportieren Sie die Maske erneut als PNG mit transparenten Bereichen.
                - `Invalid mask image format - mask size does not match image size`: Die Maskenabmessungen stimmen nicht mit dem Referenzbild überein. Skalieren Sie die Maske auf die gleichen Pixelabmessungen wie Ihr Referenzbild.
          example: https://example.com/mask.png
        size:
          type: string
          description: >-
            Größe des generierten Bildes. Unterstützt sowohl
            **Verhältnisformat** als auch **explizites Pixelformat**, Standard
            `auto`


            **① Verhältnisformat (empfohlen, 15 Optionen)**


            - `1:1`: Quadrat

            - `1:2` / `2:1`: Extrem hoch / breit

            - `1:3` / `3:1`: Ultra hoch / breit (3:1-Grenze)

            - `2:3` / `3:2`: Standard hoch / quer

            - `3:4` / `4:3`: Klassisch hoch / quer

            - `4:5` / `5:4`: Gängige Social-Media-Formate

            - `9:16` / `16:9`: Mobil / Desktop-Widescreen

            - `9:21` / `21:9`: Ultra-Wide


            **② Explizites Pixelformat**: `WxH` (oder `W×H`), z. B. `1024x1024`,
            `1536x1024`, `3840×2160`


            - Breite und Höhe müssen jeweils Vielfache von `16` sein

            - Jede Kante im Bereich: `[16, 3840]`

            - Pixel-Budget: `655.360 ≤ width × height ≤ 8.294.400` (ca. 0,65 MP
            ~ 8,29 MP)

            - Seitenverhältnis: `≤ 3:1`


            **③ `auto`**: Modell bestimmt die Größe automatisch (`resolution`
            greift in diesem Modus nicht)


            **Überschreitungsbehandlung:**

            - Wenn eine Kombination aus Verhältnis + `resolution` das
            Pixel-Budget überschreitet, werden die Maße proportional auf das
            Maximum herunterskaliert (z. B. 4K 2:1 → 3840×1920)
          default: auto
          example: auto
        resolution:
          type: string
          description: >-
            Schneller Parameter für die Auflösungsstufe, wirkt nur, wenn `size`
            im Verhältnisformat angegeben ist; im expliziten Pixelformat wird
            dieses Feld ignoriert


            **Pixel-Budget-Regel** (die Abmessungen werden aus der
            Ziel-Pixelzahl und dem `size`-Verhältnis berechnet und auf Vielfache
            von 16 ausgerichtet):


            - `1K`: ~1 MP (1024² = 1.048.576 Pixel)

            - `2K`: ~4 MP (2048² = 4.194.304 Pixel)

            - `4K`: ~8,29 MP (3840×2160 = 8.294.400 Pixel, das Maximum)


            **Querformat-/Quadrat-Ausgabegrößen** (Hochformat-Maße sind die
            Breite/Höhe des entsprechenden Querformats vertauscht, z. B. `2:3` =
            `3:2` umgekehrt):


            | Verhältnis | 1K | 2K | 4K |

            |---|---|---|---|

            | `1:1` | 1024×1024 | 2048×2048 | 2880×2880 |

            | `2:1` | 1456×720 | 2896×1456 | 3840×1920 \* |

            | `3:1` | 1776×592 | 3552×1184 | 3840×1280 \* |

            | `3:2` | 1248×832 | 2512×1680 | 3520×2352 |

            | `4:3` | 1184×880 | 2368×1776 | 3312×2480 \* |

            | `5:4` | 1152×912 | 2288×1824 | 3216×2576 |

            | `16:9` | 1360×768 | 2736×1536 | 3840×2160 (UHD) |

            | `21:9` | 1568×672 | 3136×1344 | 3840×1632 \* |


            \* Markiert Kombinationen, die wegen des Pixel-Budgets automatisch
            herunterskaliert werden. Werte sind
            Groß-/Kleinschreibungsunabhängig.
          enum:
            - 1K
            - 2K
            - 4K
          default: 1K
          example: 1K
        quality:
          type: string
          description: >-
            Rendering-Qualität, steuert die "Denktiefe" des Modells und
            beeinflusst direkt die Anzahl der Ausgabe-Token und die Kosten.
            Standard `medium`


            | Wert | Tile-Basis | Relative Kosten (1024²) |

            |---|---|---|

            | `low` | 16 | ~0,11× |

            | `medium` | 48 | 1,0× |

            | `high` | 96 | ~4,0× |
          enum:
            - low
            - medium
            - high
          default: medium
          example: medium
        'n':
          type: integer
          description: |-
            Anzahl der zu generierenden Bilder, jedes wird einzeln abgerechnet

            **Hinweis:**
            - Text-Input-Tokens skalieren linear mit `n`
          minimum: 1
          maximum: 10
          default: 1
          example: 1
        callback_url:
          type: string
          description: >-
            HTTPS-Callback-Adresse nach Aufgabenabschluss


            **Callback-Zeitpunkt:**

            - Wird ausgelöst, wenn die Aufgabe abgeschlossen, fehlgeschlagen
            oder abgebrochen wurde

            - Wird nach Abschluss der Abrechnungsbestätigung gesendet


            **Sicherheitsbeschränkungen:**

            - Nur HTTPS-Protokoll wird unterstützt

            - Callback an interne IP-Adressen ist verboten (127.0.0.1, 10.x.x.x,
            172.16-31.x.x, 192.168.x.x, usw.)

            - URL-Länge darf `2048` Zeichen nicht überschreiten


            **Callback-Mechanismus:**

            - Timeout: `10` Sekunden

            - Maximal `3` Wiederholungsversuche bei Fehler (Wiederholung nach
            `1` Sekunde/`2` Sekunden/`4` Sekunden)

            - Das Format des Callback-Antwortkörpers entspricht dem
            Antwortformat der Aufgabenabfrage-API

            - Ein 2xx-Statuscode der Callback-Adresse gilt als erfolgreich,
            andere Statuscodes lösen eine Wiederholung aus
          format: uri
          example: https://your-domain.com/webhooks/image-task-completed
    ImageGenerationResponse:
      type: object
      properties:
        created:
          type: integer
          description: Zeitstempel der Aufgabenerstellung
          example: 1757156493
        id:
          type: string
          description: Aufgaben-ID
          example: task-unified-1757156493-imcg5zqt
        model:
          type: string
          description: Tatsächlich verwendeter Modellname
          example: gpt-image-2
        object:
          type: string
          enum:
            - image.generation.task
          description: Spezifischer Aufgabentyp
        progress:
          type: integer
          description: Aufgabenfortschritt in Prozent (0-100)
          minimum: 0
          maximum: 100
          example: 0
        status:
          type: string
          description: Aufgabenstatus
          enum:
            - pending
            - processing
            - completed
            - failed
          example: pending
        task_info:
          $ref: '#/components/schemas/TaskInfo'
          description: Asynchrone Aufgabeninformationen
        type:
          type: string
          enum:
            - text
            - image
            - audio
            - video
          description: Ausgabetyp der Aufgabe
          example: image
        usage:
          $ref: '#/components/schemas/Usage'
          description: Nutzungs- und Abrechnungsinformationen
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Fehlercode-Identifikator
            message:
              type: string
              description: Fehlerbeschreibung
            type:
              type: string
              description: Fehlertyp
    TaskInfo:
      type: object
      properties:
        can_cancel:
          type: boolean
          description: Ob die Aufgabe abgebrochen werden kann
          example: true
        estimated_time:
          type: integer
          description: Geschätzte Fertigstellungszeit (Sekunden)
          minimum: 0
          example: 100
    Usage:
      type: object
      description: Nutzungs- und Abrechnungsinformationen
      properties:
        billing_rule:
          type: string
          description: Abrechnungsregel
          enum:
            - per_call
            - per_token
            - per_second
          example: per_call
        credits_reserved:
          type: number
          description: Geschätzt verbrauchte Credits
          minimum: 0
          example: 2.5
        user_group:
          type: string
          description: Benutzergruppenkategorie
          example: default
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Alle APIs erfordern Bearer-Token-Authentifizierung##


        **API-Schlüssel erhalten:**


        Besuchen Sie die
        [API-Schlüsselverwaltungsseite](https://evolink.ai/dashboard/keys), um
        Ihren API-Schlüssel zu erhalten


        **Zum Anfrage-Header hinzufügen:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````