gpt-image-2 Bildgenerierung und Bildbearbeitung

OpenAI-kompatible gpt-image-2 Text-zu-Bild- und Bildbearbeitungs-API: mit Umstellung von base_url sofort einsetzbar, Endpunkte in mehreren Regionen, einheitliche Abrechnung mit Ihrem QCode-Key

Aktualisiert 2026-10-16

Brauchen Sie einen API-Key? Registrieren →Endpunkte & Base-URLs →

Auf dieser Seite

QCode.cc stellt einen gpt-image-2-Dienst bereit, dessen Anfrage- und Antwortformate mit der OpenAI Images API kompatibel sind (einige Parameter verhalten sich anders – siehe Unterschiede zur offiziellen OpenAI API), und deckt zwei Endpunkte ab:

  • Text-zu-Bild POST /v1/images/generations — JSON-Anfrage, Bilder allein aus Text erzeugen
  • Bildbearbeitung POST /v1/images/edits — Multipart-Upload von 1–8 Quellbildern (optionale Maske), Neulackieren / Ändern / Kompositieren gemäß Prompt (seit Mai 2026 verfügbar)

gpt-image-2 ist OpenAIs neuestes Bildmodell (veröffentlicht April 2026) und bietet derzeit die stärkste In-Bild-Textdarstellung aller öffentlichen Modelle – es kann englische und chinesische Zeichen zuverlässig innerhalb generierter Bilder darstellen.

ℹ️ OpenAI hat gpt-image-2.5 am 08.09.2026 veröffentlicht (API-Modellnamen gpt-image-2.5-flare / gpt-image-2.5-sunburst). Dieser Dienst akzeptiert gpt-image-2.5, gpt-image-2.5-flare und gpt-image-2.5-sunburst als Kompatibilitäts-Modellnamen, sodass Clients, die bereits für die neuen Namen konfiguriert sind, unverändert funktionieren. Alle diese Namen sind verwendbar, die Abrechnung ist identisch; die Qualitätsstufen xhigh / max werden als high behandelt, und 2.5-exklusive Funktionen wie 4K / beliebige Auflösungen sind noch nicht verfügbar.

Was QCode.cc zusätzlich bietet:

  • Funktioniert mit dem OpenAI SDK – base_url ändern und fertig; Anfrage- und Antwortformate entsprechen OpenAI (einschließlich des Multipart-Edits-Endpunkts); einige Parameter verhalten sich anders, siehe Vergleichstabelle am Ende
  • Zugriff in mehreren Regionen: globales Smart Routing (api) / Asien (Korea / Taiwan / Hongkong) / Nordamerika & Europa (Los Angeles) – wählen Sie den dem Netzwerk nächstgelegenen Einstiegspunkt
  • Ein einziger API-Key: nutzen Sie Ihren bestehenden QCode.cc cr_-Key weiter – gleiches Kontingent wie für Claude Code und Codex
  • Einheitliche Nutzungsansicht: Bildaufrufe und Chat-Aufrufe werden in Ihrem Dashboard zusammengeführt, zusätzlich gibt es eine dedizierte Self-Service-Nutzungsseite
  • Gemeinsames Kontingent über Endpunkte hinweg: generations und edits teilen sich dasselbe Limit von 100 Bildern pro Key und Tag sowie das Limit von 2 gleichzeitigen Anfragen

Typische Anwendungsfälle: Plakaterstellung, Illustrationen, Produktbilder, UI-Mockups, Social-Media-Assets, Bildbearbeitung (lokales Inpainting / Mehrbild-Komposition / Hintergrundtausch / originalgetreue Restaurierung).


Schnellstart

Text-zu-Bild (generations)

Drei Zeilen Python für Ihr erstes Bild:

from openai import OpenAI
import base64

client = OpenAI(
    base_url="https://api.qcode.cc/qcode-img/v1",
    api_key="cr_YOUR_QCODE_API_KEY",
    timeout=180.0,  # typically 20-80s per image, occasionally over 100s; set at least 180s
)

result = client.images.generate(
    model="gpt-image-2",
    prompt="A cyberpunk Tokyo street at night, neon reflecting in rain puddles",
    size="1024x1024",
    quality="low",
    n=1,
)

with open("output.png", "wb") as f:
    f.write(base64.b64decode(result.data[0].b64_json))

Bildbearbeitung (edits)

Bestehendes Bild hochladen + Prompt, optional mit Maske für lokales Inpainting:

from openai import OpenAI
import base64

client = OpenAI(
    base_url="https://api.qcode.cc/qcode-img/v1",
    api_key="cr_YOUR_QCODE_API_KEY",
    timeout=180.0,
)

result = client.images.edit(
    model="gpt-image-2",
    image=open("cat.png", "rb"),
    mask=open("mask.png", "rb"),          # optional: PNG alpha; transparent area = repaint region
    prompt="put a tiny crown on the cat",
    size="1024x1024",
    quality="high",
)

with open("edited.png", "wb") as f:
    f.write(base64.b64decode(result.data[0].b64_json))

⚠️ Setzen Sie timeout ≥ 180 s immer explizit: die Standard-Timeout des OpenAI SDK ist zu kurz. Die Inferenz von gpt-image-2 ist deutlich langsamer als bei früherem Text-zu-Bild (siehe Latenz & Timeout unten).


Endpunkte

Der Dienst gpt-image-2 (sowohl generations als auch edits) ist über jeden QCode.cc-Zugangspunkt verfügbar. Hängen Sie einfach /qcode-img/v1 an die Base-URL an:

Ihr Standort Empfohlene base_url Protokoll Hinweise
China https://api.qcode.cc/qcode-img/v1 HTTPS Standardempfehlung
HK / SEA https://asia.qcode.cc/qcode-img/v1 HTTPS Asien-Knoten (Korea / Taiwan / Hongkong, nächstliegend)
Nordamerika / Europa https://us.qcode.cc/qcode-img/v1 HTTPS Knoten in Los Angeles

Alle Zugangspunkte leiten an denselben Dienst und dasselbe Abrechnungssystem weiter — Nutzung und Kontingent sind einheitlich. Kein Zugangspunkt begrenzt eine einzelne Anfrage auf 100 Sekunden; der Server wartet bis zu 180 Sekunden pro Anfrage.

qcode-img ist das Pfadpräfix für Bildgenerierung und -bearbeitung, parallel zu /api (Anthropic) und /openai/v1 (OpenAI chat).


API-Referenz

Allgemeine Request-Header

Header Erforderlich Wert
Authorization ✓ Bearer cr_xxxxxxxxxxxxxxxx (Ihr QCode.cc API-Key)
Content-Type ✓ application/json (generations)
multipart/form-data (edits)

Generations-Endpunkt /v1/images/generations

Endpunkt: POST {base_url}/images/generations Content-Type: application/json

Anfragetext:

{
  "model": "gpt-image-2",
  "prompt": "A small ceramic vase with sunflower, photorealistic",
  "size": "1024x1024",
  "quality": "low",
  "n": 1
}

Felder:

Feld Typ Erforderlich Standard Werte
model string ✗ gpt-image-2 gpt-image-2 (akzeptiert auch gpt-image-2-low / -medium / -high, gleichbedeutend mit der Einstellung quality; sowie die Kompatibilitätsnamen gpt-image-2.5 / gpt-image-2.5-flare / gpt-image-2.5-sunburst, die alle verwendbar sind und gleich abgerechnet werden); jeder andere Modellname führt zu 400 unsupported_model
prompt string ✓ — Bildbeschreibung, mehrsprachig (inkl. Englisch & Chinesisch)
size string ✗ 1024x1024 auto / 1024x1024 / 1024x1536 / 1536x1024 / 2048x2048; ungültige Werte führen zu 422. Die Ausgabegröße stimmt in der Regel mit der angeforderten size überein; in Einzelfällen kann die zurückgegebene Größe abweichen (z. B. 1254×1254) – maßgeblich ist die tatsächliche Größe des zurückgegebenen Bildes
quality string ✗ medium low / medium / high (xhigh / max werden als high behandelt); hat keinen Einfluss auf den Preis (siehe Abrechnung)
n integer ✗ 1 Bilder pro Aufruf (1 – 4); > 4 führt zu 400 (keine stille Kürzung)
background string ✗ auto auto / opaque; transparent führt zu 400 (das Modell kann keinen Alpha-Kanal erzeugen)
response_format string ✗ b64_json nur b64_json; die Angabe url führt zu 400
output_compression integer ✗ — 0 – 100, gilt für JPEG / WebP; Werte außerhalb des Bereichs führen zu 400
stream / partial_images — ✗ — Noch nicht unterstützt; die Angabe führt zu 400

Edits-Endpunkt /v1/images/edits

Endpunkt: POST {base_url}/images/edits Content-Type: multipart/form-data (Datei-Uploads erfordern form-data, nicht JSON)

Felder:

Feld Typ Erforderlich Standard Werte / Hinweise
model string ✗ gpt-image-2 Kann weggelassen werden; der Edits-Endpunkt verwendet immer gpt-image-2
image file (× N) ✓ — Quelldatei (PNG / JPEG / WebP); 1 – 8 Bilder unterstützt für Mehrbildkomposition (denselben Feldnamen wiederholen: -F image=@a.png -F image=@b.png)
mask file ✗ — PNG-Alpha-Maske; transparenter Bereich = neu zu zeichnender Bereich; Maskenauflösung muss mit image übereinstimmen (wird automatisch skaliert); gilt für Einzelbildbearbeitung
prompt string ✓ — Bearbeitungsanweisung (mehrsprachig)
size string ✗ auto auto / 1024x1024 / 1024x1536 / 1536x1024 / 2048x2048. Die Ausgabegröße stimmt in der Regel mit der angeforderten size überein; in Einzelfällen kann die zurückgegebene Größe abweichen (z. B. 1254×1254) – maßgeblich ist die tatsächliche Größe des zurückgegebenen Bildes. Ungültige Werte führen zu 422
quality string ✗ auto auto / low / medium / high (xhigh / max werden als high behandelt); hat keinen Einfluss auf den Preis
n integer ✗ 1 Bilder pro Aufruf (1 – 4); > 4 führt zu 400 (keine stille Kürzung)
background string ✗ auto auto / opaque. transparent wird von gpt-image-2 nicht unterstützt (das Modell kann keinen Alpha-Kanal erzeugen; die Angabe führt zu 400)
output_format string ✗ png png / jpeg / webp
output_compression integer ✗ — 0 – 100, gilt für JPEG / WebP (bei PNG ignoriert); Werte außerhalb des Bereichs führen zu 400
input_fidelity string ✗ — Muss nicht angegeben werden: das Modell verarbeitet Eingabebilder immer mit hoher Präzision; die Angabe low / high wird ignoriert, jeder andere Wert führt zu 400
response_format string ✗ b64_json nur b64_json akzeptiert (die Angabe url führt zu 400)
user string ✗ — Kennung des Endbenutzers (wird durchgereicht, zur Missbrauchserkennung)

Upload-Größenlimits: Einzelne Datei ≤ 25 MB; Gesamtgröße aller Dateien ≤ 50 MB (bei Überschreitung wird 413 image_too_large zurückgegeben).

Antwort (für beide Endpunkte identisch)

{
  "created": 1777135432,
  "data": [
    {
      "b64_json": "iVBORw0KGgo...(base64 PNG/JPEG/WebP, 1-3 MB)",
      "revised_prompt": "A small ceramic vase with sunflower..."
    }
  ]
}
  • b64_json: base64-kodierte Bilddaten; direkt rendern mit <img src="data:image/<format>;base64,...">
  • revised_prompt: die verbesserte Version Ihres ursprünglichen Prompts durch das Modell (Anzeige optional)

Fehlerantworten

Fehler folgen dem Standard-OpenAI-Schema:

{
  "error": {
    "type": "rate_limit_error",
    "code": "image_daily_limit",
    "message": "Daily image generation count limit reached..."
  }
}
HTTP code Bedeutung Abgerechnet
400 invalid_json / missing_prompt Anfragetext ist kein gültiges JSON / prompt fehlt Nein
400 unsupported_model Modellname nicht unterstützt (gpt-image-2 und die Kompatibilitätsnamen gpt-image-2.5 / -flare / -sunburst werden unterstützt; gpt-image-1, dall-e-3 usw. liefern diesen Fehler) Nein
400 stream_not_supported stream=true oder partial_images wurde angegeben Nein
400 unsupported_background / unsupported_response_format / unsupported_n / unsupported_output_compression Parameterwert nicht unterstützt (siehe Parameter-Tabelle des jeweiligen Endpunkts) Nein
400 invalid_multipart / invalid_content_type Ungültiges Formular am Edits-Endpunkt (muss multipart/form-data sein) Nein
400 content_policy_violation und ähnliche Inhaltsmoderation hat die Anfrage abgelehnt; Prompt oder Bild ändern Nein
401 invalid_api_key / key_disabled / key_expired API-Key ungültig / deaktiviert / abgelaufen Nein
413 image_too_large Einzelne Datei > 25 MB oder Gesamtgröße aller Dateien > 50 MB Nein
422 unsupported_size size-Wert nicht unterstützt (gültige Werte siehe Parameter-Tabelle des jeweiligen Endpunkts) Nein
429 crs_daily_exhausted / crs_total_exhausted Das Tages- oder Gesamtbudget Ihres Kontos ist aufgebraucht Nein
429 image_daily_limit Tägliches Limit von 100 Bildern pro API-Key erreicht (gemeinsam für generations und edits; Erhöhung auf Anfrage) Nein
429 concurrency_exhausted Limit von 2 gleichzeitigen Anfragen pro API-Key erreicht (Erhöhung auf Anfrage) Nein
501 endpoint_not_implemented Der Edits-Endpunkt ist vorübergehend für Wartungsarbeiten geschlossen Nein
503 image_provider_unavailable Der Bilddienst ist vorübergehend nicht verfügbar; die Antwort enthält Retry-After — Behandlung gemäß Timeout und Wiederholung Nein
503 service_overloaded / billing_backend_unavailable Dienst ausgelastet / Abrechnungs-Backend vorübergehend nicht verfügbar, später erneut versuchen Nein
504 upstream_timeout Eine Bearbeitungsanfrage wurde innerhalb von 180 Sekunden nicht abgeschlossen Nein

Codebeispiele

Python (OpenAI SDK, empfohlen)

Text-zu-Bild:

from openai import OpenAI
import base64

client = OpenAI(
    base_url="https://api.qcode.cc/qcode-img/v1",
    api_key="cr_YOUR_QCODE_API_KEY",
    timeout=180.0,
)

result = client.images.generate(
    model="gpt-image-2",
    prompt="A cyberpunk Tokyo street at night, neon reflecting in rain puddles",
    size="1024x1024",
    quality="low",
    n=1,
)

img_bytes = base64.b64decode(result.data[0].b64_json)
with open("output.png", "wb") as f:
    f.write(img_bytes)
print("Saved output.png")

Bildbearbeitung (Einzelbild + Masken-Inpainting):

from openai import OpenAI
import base64

client = OpenAI(
    base_url="https://api.qcode.cc/qcode-img/v1",
    api_key="cr_YOUR_QCODE_API_KEY",
    timeout=180.0,
)

result = client.images.edit(
    model="gpt-image-2",
    image=open("cat.png", "rb"),
    mask=open("mask.png", "rb"),
    prompt="put a tiny crown on the cat",
    size="1024x1024",
    quality="high",
    extra_body={"output_format": "png"},
)

img = base64.b64decode(result.data[0].b64_json)
with open("edited.png", "wb") as f:
    f.write(img)

Bildbearbeitung (Mehrbildkomposition, 2 – 8 Bilder):

result = client.images.edit(
    model="gpt-image-2",
    image=[
        open("scene.png", "rb"),       # 1st image: scene background
        open("product.png", "rb"),     # 2nd image: product to place
    ],
    prompt="Place the product naturally into the scene, match the lighting and shadows.",
    size="1536x1024",
    quality="high",
)

curl

Text-zu-Bild:

curl https://api.qcode.cc/qcode-img/v1/images/generations \
  -H "Authorization: Bearer cr_YOUR_QCODE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "A cyberpunk Tokyo street at night",
    "size": "1024x1024",
    "quality": "low",
    "n": 1
  }' \
  | jq -r ".data[0].b64_json" | base64 -d > output.png

Bildbearbeitung:

curl https://api.qcode.cc/qcode-img/v1/images/edits \
  -H "Authorization: Bearer cr_YOUR_QCODE_API_KEY" \
  -F "model=gpt-image-2" \
  -F "image=@cat.png" \
  -F "mask=@mask.png" \
  -F "prompt=put a tiny crown on the cat" \
  -F "size=1024x1024" \
  -F "quality=high" \
  -F "output_format=png" \
  | jq -r ".data[0].b64_json" | base64 -d > edited.png

Mehrbildkomposition (einfach -F image=@ wiederholen):

curl https://api.qcode.cc/qcode-img/v1/images/edits \
  -H "Authorization: Bearer cr_YOUR_QCODE_API_KEY" \
  -F "model=gpt-image-2" \
  -F "image=@scene.png" \
  -F "image=@product.png" \
  -F "prompt=Place the product naturally into the scene" \
  -F "size=1536x1024" \
  -F "quality=high"

JavaScript / Node.js / Browser

Text-zu-Bild:

const r = await fetch("https://api.qcode.cc/qcode-img/v1/images/generations", {
  method: "POST",
  headers: {
    "Authorization": "Bearer cr_YOUR_QCODE_API_KEY",
    "Content-Type":  "application/json",
  },
  body: JSON.stringify({
    model: "gpt-image-2",
    prompt: "A cyberpunk Tokyo street at night",
    size: "1024x1024",
    quality: "low",
    n: 1,
  }),
});
const json = await r.json();
const dataUrl = "data:image/png;base64," + json.data[0].b64_json;
document.querySelector("img").src = dataUrl;

Bildbearbeitung (Browser FormData):

const fd = new FormData();
fd.append("model", "gpt-image-2");
fd.append("image", imageFile);              // File object from <input type="file">
fd.append("mask", maskFile);                // optional
fd.append("prompt", "put a tiny crown on the cat");
fd.append("size", "1024x1024");
fd.append("quality", "high");
fd.append("output_format", "png");

const r = await fetch("https://api.qcode.cc/qcode-img/v1/images/edits", {
  method: "POST",
  headers: { "Authorization": "Bearer cr_YOUR_QCODE_API_KEY" },
  // Don't set Content-Type manually — FormData sets multipart/form-data with the boundary
  body: fd,
});
const json = await r.json();
const dataUrl = "data:image/png;base64," + json.data[0].b64_json;
document.querySelector("img").src = dataUrl;

Kontingente

Standardwerte

Dimension Standardwert Hinweise
Tägliche Bildanzahl 100 / Tag / API-Key Setzt um 00:00 Pekinger Zeit zurück; geteilt zwischen generations und edits
Parallelität 2 gleichzeitig Gibt 429 concurrency_exhausted zurück; geteilt über beide Endpunkte
Upload-Größe (nur edits) 25 MB Einzeldatei / 50 MB gesamt Gibt 413 image_too_large zurück
Kontobudget Geteilt mit dem dailyCostLimit / totalCostLimit Ihres QCode.cc-Kontos Gibt 429 crs_daily_exhausted zurück

Die Standardwerte decken die große Mehrheit der Nutzer ab. Wenden Sie sich an den Support, um sie zu erhöhen.

Nutzungsabfrage

  • Dashboard — zeigt Chat- und Bildaufrufe gemeinsam an (letzte Aktivität, heutige Kosten, kumulative Kosten, Modellverteilung)
  • Self-Service-Seite: https://api.qcode.cc/qcode-img/usage — geben Sie Ihren API-Key ein, um die letzten 30 Tage der Nutzung, eine detaillierte Aufrufliste und einen ECharts-Trend einzusehen (der Key wird lokal in Ihrem Browser gespeichert, niemals hochgeladen)

Abrechnung

So funktioniert die Abrechnung

generations und edits werden gleich abgerechnet, pro ausgegebenem Bild:

Abrechnungsposition Einheitspreis
Pro ausgegebenem Bild $0.30
  • $0.30 pro ausgegebenem Bild: Werden n Bilder erzeugt, kostet das n × $0.30
  • size / quality / Anzahl der Eingabebilder / mask / Prompt-Länge haben keinen Einfluss auf den Preis
  • gpt-image-2, gpt-image-2-low / -medium / -high sowie die Kompatibilitätsnamen gpt-image-2.5 / -flare / -sunburst – der Preis ist vollständig gleich
  • Seit dem 2026-10-07 kostet jedes Bild $0.30 (ab dem 2026-10-06 waren es $0.15 pro Bild, davor wurde tokenbasiert abgerechnet)

Fehler werden nicht berechnet

Jede fehlgeschlagene Anfrage wird niemals berechnet: 4xx (einschließlich Ablehnungen durch die Inhaltsmoderation) / 5xx, Timeouts und Client-Verbindungsabbrüche (geschlossene Verbindungen) werden nicht berechnet.

Währung

Die Kosten werden in USD abgerechnet und gemäß der Währungsrichtlinie Ihres QCode.cc-Kontos beglichen (CNY / USD).


Latenz & Timeout-Einstellungen

gpt-image-2 ist ein Inferenz-basiertes Modell und dauert deutlich länger als herkömmliche Text-to-Image-Modelle. Ein einzelnes Bild dauert in der Regel 20–80 s, gelegentlich über 100 s und in Ausnahmefällen nahe 180 s.

Praktische Hinweise:

  • Der Standard-Timeout des OpenAI Python SDK ist zu kurz — setzen Sie immer explizit timeout=180.0 oder höher
  • fetch im Browser hat keinen Standard-Timeout; wenn Sie AbortController verwenden, geben Sie ihm mindestens 180 s
  • Wenn die Anfrage über Ihren eigenen Reverse Proxy / Gateway geht, erhöhen Sie dessen Read-Timeout auf ≥ 180 s

Timeout und Wiederholung

  • 503 image_provider_unavailable: Der Bilddienst ist vorübergehend nicht verfügbar, und es werden keine Kosten berechnet. Warten Sie gemäß dem Retry-After-Antwort-Header (Sekunden), dann wiederholen Sie die Anfrage mit exponentiellem Backoff (30 s → 60 s → 120 s) für maximal 3 Versuche; wenn es weiterhin fehlschlägt, wenden Sie sich an den Support
  • 504 upstream_timeout / Clientseitiger Timeout: Eine einzelne Generierung hat 180 Sekunden überschritten. Ein sofortiger erneuter Versuch ist unproblematisch; wenn weiterhin Timeouts auftreten, vereinfachen Sie den Prompt oder reduzieren Sie die Anzahl der Eingabebilder
  • 429 crs_daily_exhausted / crs_total_exhausted: Das Kontingent des Kontos ist aufgebraucht; es wird wie bei den Chat-Endpunkten vorgegangen: Ein Privatplan wird um 00:00 Uhr Pekinger Zeit zurückgesetzt (oder kaufen Sie ein Booster-Paket), ein Nutzungspaket kaufen Sie nach; siehe Fehlercode-Referenz
  • 429 image_daily_limit / concurrency_exhausted: warten Sie gemäß dem Retry-After-Header; wenn es weiterhin auftritt, wenden Sie sich an den Support
  • Fehlgeschlagene Anfragen werden nicht berechnet, sodass eine Wiederholung nie doppelt berechnet wird

Tipps für Prompts

Text-zu-Bild (generations)

  • Mehrsprachig: Chinesische, englische oder gemischte Prompts funktionieren
  • Mehr Details sind besser: Umgebung, Komposition, Licht, Stil, Aufnahmedistanz / Brennweite / Winkel
  • Markennamen / bekannte Personen vermeiden: Das Modell verweigert möglicherweise oder liefert unscharfe Ergebnisse (OpenAI Content Policy)
  • Text im Bild: gpt-image-2 ist hervorragend beim Rendern von englischen / chinesischen Texten in Bildern (Plakattitel, Slogans, Beschilderungen) — einfach den wörtlichen Text in den Prompt setzen, keine besondere Syntax erforderlich
  • Content Moderation: Ein Prompt, der gegen die Content Policy verstößt, gibt 400 zurück (z. B. content_policy_violation) und wird nicht abgerechnet

Beispiel:

A vintage poster in Bauhaus style, bold black text "MORNING COFFEE" centered,
warm orange and cream color palette, geometric shapes, slightly textured paper background

Bildbearbeitung (edits)

  • Die Maske sagt „wo“, nicht „was“: Transparenter Bereich = neu zu zeichnende Region, undurchsichtiger Bereich bleibt erhalten. Der Prompt beschreibt, was gezeichnet werden soll. Die Auflösung der Maske muss zu image passen (das System skaliert neu).
  • Bei mehreren Eingabebildern die Rolle jedes Bildes im Prompt benennen — z. B. „Das erste Bild ist die Szene, das zweite Bild ist das Produkt, das darin platziert werden soll“ — gpt-image-2 liest Eingaben in Reihenfolge.
  • input_fidelity muss nicht übergeben werden: gpt-image-2 verarbeitet Eingabebilder immer mit hoher Qualität und bewahrt automatisch Gesichter / Logos / Texte / Produktdetails (Angabe von low / high wird ignoriert, jeder andere Wert gibt 400 zurück).
  • Ohne Maske wird das gesamte Bild gemäß dem Prompt neu gezeichnet (die semantische Struktur bleibt erhalten, aber jeder Bereich kann sich ändern).

Beispiel:

# Local inpaint: add a crown, keep the rest unchanged
prompt = "Put a tiny golden crown on the cat's head. Keep everything else unchanged."
mask = (alpha PNG with only the head area transparent)

Unterschiede zur offiziellen OpenAI API

Aspekt OpenAI offiziell QCode.cc
SDK-Kompatibilität — ✅ Anfrage- / Antwortformate sind kompatibel, die Änderung von base_url genügt; die folgenden Zeilen listen die Verhaltensunterschiede auf
Abrechnung Pro Token $0.30 pro ausgegebenem Bild, n Bilder = n × $0.30
/v1/images/generations (Text-zu-Bild) ✅ ✅
/v1/images/edits (Bildbearbeitung) ✅ ✅ Unterstützt die Komposition von 1 – 8 Bildern und Inpainting per Maske
size — Ausgabegröße stimmt meist mit size überein; sonst zählt das zurückgegebene Bild
quality — Kein Einfluss auf den Preis
background=transparent — ❌ Gibt 400 zurück
response_format=url — ❌ Nur b64_json
stream + partial_images (inkrementelle Rückgabe) ✅ ⏳ Noch nicht unterstützt, die Übergabe gibt 400 zurück
/v1/images/variations (reine Varianten) ✅ (DALL·E-Endpunkt) ⏳ Noch nicht unterstützt (Annäherung über edits mit einem beschreibenden Prompt)
gpt-image-2.5 (flare / sunburst) ✅ (veröffentlicht am 2026-09-08) ✅ Akzeptiert die Kompatibilitäts-Modellnamen, alle verwendbar, Abrechnung identisch; xhigh / max werden als high behandelt, 2.5-exklusive Funktionen (4K usw.) werden noch nicht unterstützt

Online-Playground

https://api.qcode.cc/qcode-img/ — im Browser ausprobieren:

  • Sowohl Text-zu-Bild- als auch Bildbearbeitungs-Modi sind visuell eingerichtet (hochladen, Maske zeichnen, Hintergrund / output_format wählen usw.)
  • API-Key und Prompt eingeben und sofort generieren
  • Umschaltung zwischen englischer / chinesischer Benutzeroberfläche
  • Standardmäßig low Qualität
  • Enthält die vollständige API-Referenz inline (curl / Python / JavaScript-Tabs + Parametertabelle + Fehlercodes)
  • Ein-Klick-Download als PNG / JPEG / WebP

Häufig gestellte Fragen

F: Was tue ich bei 503 image_provider_unavailable? A: Der Bilddienst ist vorübergehend nicht verfügbar, fehlgeschlagene Anfragen werden nicht abgerechnet. Warten Sie gemäß dem Header Retry-After und versuchen Sie es erneut (exponentielles Backoff ab 30 Sekunden, maximal 3 Versuche). Bei anhaltendem Fehler kontaktieren Sie den Support.

F: Unterstützen Sie gpt-image-2.5 (flare / sunburst)? A: Sie können die Modellnamen gpt-image-2.5, gpt-image-2.5-flare und gpt-image-2.5-sunburst direkt verwenden — alle diese Namen sind verwendbar, die Abrechnung ist identisch; die Qualitätsstufen xhigh / max werden als high behandelt, und 2.5-exklusive Funktionen wie 4K werden noch nicht unterstützt.

F: Warum unterscheidet sich die Ausgabegröße von dem size, das ich gesendet habe? A: Die Ausgabegröße stimmt in der Regel mit der angeforderten size überein; in Einzelfällen kann die zurückgegebene Größe abweichen (z. B. 1254×1254) – maßgeblich ist die tatsächliche Größe des zurückgegebenen Bildes. Wenn Sie eine exakte Größe benötigen, beschneiden oder skalieren Sie das Bild lokal.

F: Beeinflusst quality den Preis? A: quality hat keinen Einfluss auf den Preis – ob low oder high, pro ausgegebenem Bild kostet es $0.30.

F: Werden fehlgeschlagene Anfragen berechnet? A: Nein. 4xx / 5xx, Timeouts, Ablehnungen durch die Content Moderation und Trennungen der Clientverbindung sind kostenfrei.


Verwandte Dokumentationen

Mit QCode starten

Ein API-Key für Claude Code, Codex und mehr – Abrechnung pro Token, Preise je Modell auf qcode.cc/models

Enterprise →