GPT Image 2 & Gemini Bilder-APIs

Erzeuge Bilder mit GPT Image 2 über die OpenAI-kompatible Images API oder mit Nano Banana Pro und Nano Banana 2 über die native Gemini API.

Diese Seite bündelt zwei getrennte API-Verträge zur Bilderzeugung. Beide verwenden denselben Modelflare-API-Schlüssel und dieselben Credits, ihre Anfrage- und Antwortformate sind jedoch nicht austauschbar.

  • gpt-image-2 verwendet die OpenAI-kompatiblen Verträge /v1/images/generations und /v1/images/edits.
  • gemini-3-pro-image und gemini-3.1-flash-image verwenden Geminis nativen Vertrag generateContent.

Wählen Sie zuerst die Modellfamilie und mischen Sie keine Gemini- und GPT-Images-Felder.

1. GPT Image 2 — OpenAI-kompatible Images API

Erzeuge PNGs oder bearbeite Referenzbilder aus einer öffentlichen URL oder einem lokalen Upload mit gpt-image-2 über die OpenAI-kompatible Images API. Jede Anfrage liefert ein Bild und unterstützt mittlere oder hohe Qualität, kurzlebige signierte URLs oder Base64 sowie optionales SSE.

Endpunkt und Modus wählen

  • Nutze https://origin.modelflare.dev/v1 für synchrone JSON-Anfragen, die mehrere Minuten dauern können.
  • Nutze https://modelflare.dev/v1 mit stream=true für lange Cloudflare-Anfragen; SSE-Heartbeats halten die Verbindung bis zum fertigen Bild offen.
  • Leite einen laufenden POST nicht zwischen Hosts um.

Synchrone Anfrage

curl https://origin.modelflare.dev/v1/images/generations \
  -H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-image-2","prompt":"Eine ruhige Hütte am See im Morgenlicht","n":1,"quality":"medium","size":"1024x1024","response_format":"url","output_format":"png"}'

Die URL-Antwort enthält einen privaten signierten Modelflare-Link, der nach einer Stunde abläuft. Mit response_format=b64_json erhältst du das validierte PNG ohne gespeichertes API-Ausgabeobjekt.

Die aktuelle Seite Modelle & Preise zeigt medium- und high-Preispunkte für gängige Größen. Abgerechnet werden die exakt angeforderte Qualität und Abmessungen, ohne normale Routing-Gruppenmultiplikatoren; die endgültige Gebühr steht im Nutzungsprotokoll.

Referenzbild bearbeiten

Sende eine oder mehrere öffentlich erreichbare HTTP(S)-Bild-URLs an POST /v1/images/edits. Jeder Eintrag in images enthält genau eine image_url:

curl https://origin.modelflare.dev/v1/images/edits \
  -H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-image-2","prompt":"Ersetze den Hintergrund durch ein sauberes weißes Fotostudio","images":[{"image_url":"https://example.com/input.png"}],"size":"2048x2048","response_format":"url"}'

Alternativ kannst du eine lokale PNG-, JPEG- oder WebP-Datei mit multipart/form-data hochladen:

curl https://origin.modelflare.dev/v1/images/edits \
  -H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
  -F "model=gpt-image-2" \
  -F "prompt=Ersetze den Hintergrund durch ein sauberes weißes Fotostudio" \
  -F "image=@/path/to/input.png" \
  -F "size=2048x2048" \
  -F "response_format=url"

Die Multipart-Anfrage muss genau eine Bilddatei enthalten und insgesamt höchstens 20 MiB groß sein. Die Referenz-URL oder hochgeladene Datei wird an den ausgewählten Upstream-Anbieter gesendet; die URL muss während des Abrufs erreichbar bleiben. Modelflare speichert keine der beiden Referenzeingaben als API-Ausgabeobjekt.

SSE-Anfrage

curl -N https://modelflare.dev/v1/images/generations \
  -H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-image-2","prompt":"Eine weiße Katze rennt im Regen durch eine Neonstraße","n":1,"quality":"high","size":"1024x1024","response_format":"url","stream":true}'

SSE-Kommentare sind nur Heartbeats. Beende nach image_generation.completed und data: [DONE].

Unterstützt werden model, prompt, n=1, quality=medium|high, gültiges WIDTHxHEIGHT, response_format=url|b64_json, output_format=png und optionales stream. /v1/images/edits akzeptiert entweder ein nicht leeres images-Array mit öffentlichen HTTP(S)-Werten in image_url oder genau eine gültige PNG-, JPEG- oder WebP-Datei im Multipart-Feld image. Generierungsanfragen lehnen Referenzbilder ab; mehrere Upload-Dateien, data/base64-Eingaben, Masken, input_fidelity, Variationen, Teilbilder und unbekannte Felder werden abgelehnt. Reservierte Credits fehlgeschlagener Anfragen werden über den Request-ID-idempotenten Erstattungspfad zurückgegeben.

Verwende einen normalen API-Key. An einen Kanal gebundene Keys werden abgelehnt; bei aktivierter Modellbegrenzung muss gpt-image-2 freigegeben sein.


2. Gemini Image — native Gemini API

Verwenden Sie Nano Banana Pro oder Nano Banana 2 im nativen Gemini-Format. Diese Modelle nutzen nicht /v1/images/generations.

Endpunkt und lange Anfragen

Streaming-Anfrage

Dieses Beispiel nutzt Nano Banana 2. Ersetzen Sie das Modell in der URL durch gemini-3-pro-image, um Nano Banana Pro zu verwenden.

curl -N "https://modelflare.dev/v1beta/models/gemini-3.1-flash-image:streamGenerateContent?alt=sse" \
  -H "x-goog-api-key: YOUR_MODELFLARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{"text": "Create a clean blue circle centered on a white background. No text."}]
    }],
    "generationConfig": {
      "responseModalities": ["TEXT", "IMAGE"],
      "imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"}
    }
  }'

Antwortvertrag

Jedes SSE-data:-Ereignis enthält natives Gemini-JSON. Das Base64-Bild steht in candidates[].content.parts[].inlineData.data, der MIME-Typ in inlineData.mimeType. Textteile sind ebenfalls möglich. Beenden Sie bei finishReason=STOP oder wenn der Stream schließt; image_generation.completed wird hier nicht verwendet.

Modelle, Auflösungen und geschätzte Preise

Modell Auflösung Geschätzter Preis pro Bild
Nano Banana Pro 1K / 2K US$0.06720
Nano Banana Pro 4K US$0.12000
Nano Banana 2 0.5K US$0.02241
Nano Banana 2 1K US$0.03360
Nano Banana 2 2K US$0.05040
Nano Banana 2 4K US$0.07560

Verwenden Sie in imageSize ein großes K. Dies sind Schätzpreise pro Bild; der Endbetrag kann je nach Anfrage leicht abweichen und wird im Nutzungsprotokoll erfasst.

Verwenden Sie einen normalen Modelflare-API-Schlüssel über x-goog-api-key. Er muss die Gruppe gemini-image nutzen dürfen und bei Modelllimits das gewählte Modell enthalten.