Zum Hauptinhalt springen

Documentation Index

Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt

Use this file to discover all available pages before exploring further.

Die OpenAI Images Generations API unterstützt derzeit verschiedene Bildgenerierungsmodelle, darunter das klassische dall-e-3, das textlich stärkere gpt-image-1, die neueste Generation gpt-image-2 sowie die über dieselbe Schnittstelle angebundenen Modelle der nano-banana / nano-banana-2 / nano-banana-pro Serie. Alle können qualitativ hochwertige Bilder basierend auf Textbeschreibungen erzeugen. Dieses Dokument beschreibt hauptsächlich den Anwendungsprozess der OpenAI Images Generations API, mit der wir die Bildgenerierungsfunktionen der OpenAI-Serie einfach nutzen können.

Beantragungsprozess

Um die OpenAI Images Generations API zu verwenden, können Sie zunächst auf der Seite OpenAI Images Generations API den Button „Acquire“ anklicken, um die für Anfragen benötigten Zugangsdaten zu erhalten: Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, um sich zu registrieren und anzumelden. Nach der Anmeldung kehren Sie automatisch zur aktuellen Seite zurück. Bei der ersten Beantragung erhalten Sie ein kostenloses Kontingent, mit dem Sie die API kostenlos nutzen können.

GPT-Image-2 Modell

gpt-image-2 ist das von OpenAI eingeführte neue Bildgenerierungsmodell, das im Vergleich zu dall-e-3 und gpt-image-1 folgende deutliche Verbesserungen aufweist:
  • Bessere Befehlsbefolgung: Es kann komplexe Kompositionsanweisungen, Zählungen, Positionsbeziehungen und andere strukturierte Anweisungen präzise verstehen.
  • Klarere Texterstellung: In Szenarien wie Plakaten, Menüs, Infografiken und Logos treten bei englischen Buchstaben und Zahlen kaum Fehler auf.
  • Vielfältigere Stilwiedergabe: Unterstützt nativ verschiedene Stile wie filmische Porträts, Retro-Poster, Kinderillustrationen, Produktfotografie und Infografiken.
  • Native Unterstützung mehrerer Seitenverhältnisse + hohe Auflösung: Deckt 5 Seitenverhältnisse (1:1, 4:3, 3:4, 16:9, 9:16) mit 3 Auflösungsstufen (1K / 2K / 4K) ab.
Die Aufrufweise ist identisch zu anderen Modellen, es muss lediglich das Feld model auf gpt-image-2 gesetzt werden. Die im Ergebnis zurückgegebene url ist ein dauerhaft auf platform.cdn.xhuoapi.ai gehosteter Bildlink, der direkt im Browser geöffnet oder in Webseiten eingebettet werden kann.

Unterstützte size Werte und Abrechnungsstufen

gpt-image-2 prüft nur das Format von size. Solange es nicht auto oder leer ist, muss es dem Format WIDTHxHEIGHT entsprechen (z. B. 1024x1024, 2048x1152, 800x600); andere Formate führen zu einem 400-Fehler. Die Abrechnung erfolgt in zwei Stufen:
  • 1K Standardpreis: Eingabe entspricht einem der empfohlenen 1K-Formate in der Tabelle oder einem der gängigen 1K-Ausgabe-Aliase (1254x1254, 1672x941, 941x1672 – diese sind tatsächliche Größen, die upstream bei 1K zurückgegeben werden und bei erneuter Eingabe nicht zu Preisänderungen führen).
  • Andere Stufen (1,5×): Alle Größen, die nicht in der 1K-Gruppe sind, einschließlich der empfohlenen 2K/4K-Voreinstellungen und beliebiger benutzerdefinierter WIDTHxHEIGHT Werte.
Upstream gibt harte Einschränkungen für benutzerdefinierte Größen vor: Breite und Höhe müssen Vielfache von 16 sein, die längste Seite ≤ 3840 und die Gesamtpixelzahl ≤ 8.294.400. Überschreitungen werden upstream abgelehnt und mit 4xx zurückgegeben.
Seitenverhältnis1K (Standardpreis)2K empfohlen (×1,5)4K empfohlen (×1,5)
1:11024x10242048x20482880x2880
4:31536x10242048x15363264x2448
3:41024x15361536x20482448x3264
16:91792x10242048x11523840x2160
9:161024x17921152x20482160x3840
Sie können auch size: "auto" übergeben oder das Feld size ganz weglassen. In diesem Fall wählt das Modell die Standardgröße selbst und es wird zum 1K Standardpreis abgerechnet. Bei 1K garantiert upstream keine exakte Pixelgenauigkeit – wenn Sie z. B. 1024x1024 übergeben, erhalten Sie möglicherweise 1254x1254 mit gleichem Seitenverhältnis. Wenn Sie diese Größe erneut als size eingeben, wird weiterhin 1K abgerechnet. 4K-Aufrufe dauern in der Regel 4–8 Minuten und sollten idealerweise mit dem weiter unten beschriebenen asynchronen callback_url verwendet werden.
Zum Parameter n gpt-image-2 unterstützt derzeit kein n > 1: Dieser Parameter wird stillschweigend ignoriert. Egal ob n=1 oder n=10 übergeben wird, es wird immer nur ein Bild generiert und auch nur für ein Bild abgerechnet. Wenn Sie mehrere Bilder gleichzeitig erhalten möchten, müssen Sie mehrere parallele Anfragen senden (empfohlen wird, unterschiedliche prompt oder seed zu verwenden, da sonst die Bilder sehr ähnlich sein können). Diese Einschränkung gilt auch für gpt-image-1 / gpt-image-1.5 sowie die nano-banana / nano-banana-2 / nano-banana-pro Serie. dall-e-2 ist derzeit das einzige Modell mit nativer Unterstützung für n > 1; dall-e-3 unterstützt nur n = 1.
Nachfolgend einige reale Beispiele, um die Fähigkeiten von gpt-image-2 anschaulich zu demonstrieren.

Szenario 1: Filmisches Porträt

Im Prompt können Filmspezifika (35mm Film, geringe Schärfentiefe, Neonlicht etc.) verwendet werden, um Atmosphäre und Textur präzise zu steuern. Python Beispielcode:
import requests

url = "https://api.xhuoapi.ai/v1/openai/images/generations"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "gpt-image-2",
    "prompt": "A cinematic portrait of a young woman standing in a convenience store at night, illuminated by soft pink and cyan neon signs through the window. Shot on 35mm film, shallow depth of field, slight grain, melancholic mood.",
    "size": "1024x1536"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Beispielantwort:
{
  "success": true,
  "task_id": "ab58a5df-6f46-4874-bff6-93169e2849a3",
  "created": 1777048800,
  "data": [
    {
      "revised_prompt": "A cinematic portrait of a young woman standing in a convenience store at night, illuminated by soft pink and cyan neon signs through the window. Shot on 35mm film, shallow depth of field, slight grain, melancholic mood.",
      "url": "https://platform.cdn.xhuoapi.ai/gpt-image/ab58a5df-6f46-4874-bff6-93169e2849a3_0.png"
    }
  ]
}
Das generierte Bild sieht wie folgt aus:

Szenario 2: Retro-Reiseposter (mit Texterstellung)

gpt-image-2 zeigt stabile Leistung bei Layout und Schrift, ideal für Poster, Menüs, Grußkarten mit Text.
payload = {
    "model": "gpt-image-2",
    "prompt": "A vintage travel poster of the Amalfi Coast, Italy. Stylized art-deco illustration of cliffside lemon-yellow houses cascading down to a turquoise sea, with a small white sailboat in the harbor. Bold typography at the top reads AMALFI and at the bottom ITALIA 1958. Limited color palette: cream, sea-blue, lemon yellow, terracotta. Slight paper-grain texture.",
    "size": "1024x1536"
}
Das Bild unter dem url-Feld sieht so aus:

Das Modell reproduziert den Art-Deco-Stil präzise, die Titeltexte AMALFI und ITALIA 1958 sind klar und korrekt dargestellt.

Szenario 3: Komplexe Komposition und Zählung

Dieser Prompt testet die Befolgung strukturierter Anweisungen zu „Anzahl“ und „Position“.
payload = {
    "model": "gpt-image-2",
    "prompt": "A wooden bookshelf consisting of three shelves: On the top shelf, there should be one book. On the second shelf, there should be three books. On the bottom shelf, there should be seven books. Soft warm lighting, photorealistic, cozy library atmosphere.",
    "size": "1024x1024"
}
Generiertes Bild:

Die Anzahl der Bücher auf den drei Regalbrettern (1 / 3 / 7) entspricht exakt dem Prompt – eine Leistung, die in der dall-e-3-Ära schwer stabil zu erreichen war.

Szenario 4: Illustrationsstil (Querformat)

Durch Angabe von Kunstmedien und Stimmungswörtern kann das Modell zu stilisierten Illustrationen geführt werden.
payload = {
    "model": "gpt-image-2",
    "prompt": "A soft, poetic children's book illustration of a small fox reading a book under a glowing mushroom in a moonlit forest. Watercolor and pencil texture, gentle pastel colors, dreamy atmosphere, hand-drawn feel.",
    "size": "1536x1024"
}
Generierte Querformat-Illustration:

Asynchronität und Callback

Ein einzelner Aufruf von gpt-image-2 dauert in der Regel 60–90 Sekunden. Wenn Sie keine dauerhafte Verbindung halten möchten, können Sie das weiter unten beschriebene asynchrone callback_url-Callback-Verfahren verwenden. Der Aufrufprozess ist identisch zu anderen Modellen.

Nano Banana Serie Modelle

Die nano-banana Serie basiert auf dem Gemini-Bildgenerierungsmodell und ist über dieselbe /openai/images/generations Schnittstelle angebunden. Es ist kein Wechsel des Endpunkts erforderlich, ändern Sie einfach das Feld model auf einen der folgenden Werte.
ModellAbrechnung (Credits / Aufruf)Anwendungsfälle
nano-banana0.14Normale Bildgenerierung, schnellste und kostengünstigste Variante
nano-banana-20.28Deutliche Verbesserung bei Qualität und Details
nano-banana-pro0.35Flaggschiff der Serie, beste Komposition, Details und Texterstellung
Wichtige Hinweise zu unterstützten Parametern Nano Banana nutzt eine Adaptionsschicht für das OpenAI-Protokoll und unterstützt im Vergleich zu gpt-image-* nur folgende Parameter: model, prompt, size.
  • size wird gemäß der Tabelle intern auf aspect_ratio abgebildet; nicht gelistete Größen fallen auf 1:1 zurück:
    • 1024x1024 / 512x512 / 256x2561:1
    • 1792x102416:9
    • 1024x17929:16
  • Parameter wie n, quality, style, response_format, background, output_format werden nicht unterstützt und ignoriert.
  • Die Rückgabe folgt dem OpenAI-Format (data[].url), aber created ist immer 0, b64_json wird nicht zurückgegeben und revised_prompt entspricht immer dem Original-prompt.

Grundlegender Aufruf

import requests

url = "https://api.xhuoapi.ai/v1/openai/images/generations"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "nano-banana",
    "prompt": "a small red apple on a white table, photoreal",
    "size": "1024x1024"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Beispielantwort:
{
  "created": 0,
  "data": [
    {
      "url": "https://platform.cdn.xhuoapi.ai/nanobanana/6870b330-65c4-436c-bb80-819fdae7a7a4.png",
      "revised_prompt": "a small red apple on a white table, photoreal"
    }
  ]
}
Das generierte Bild kann direkt über den zurückgegebenen url-Link abgerufen werden:

Upgrade zum Flaggschiff-Modell nano-banana-pro

Ändern Sie einfach model auf nano-banana-pro, alle anderen Parameter bleiben gleich:
payload = {
    "model": "nano-banana-pro",
    "prompt": "abstract painting",
    "size": "1024x1024"
}
Beispielantwort:
{
  "created": 0,
  "data": [
    {
      "url": "https://platform.cdn.xhuoapi.ai/nanobanana/6227fcc9-3442-4aa3-a76c-4a4441a99649.png",
      "revised_prompt": "abstract painting"
    }
  ]
}

Asynchrones Callback

Das callback_url-asynchrone Callback-Verfahren funktioniert auch für nano-banana, der Aufrufprozess ist identisch zu anderen Modellen, siehe Abschnitt Asynchrones Callback.

Grundlegende Nutzung

Sie können nun die entsprechenden Inhalte in der Benutzeroberfläche ausfüllen, wie im Bild gezeigt:

Beim ersten Gebrauch der Schnittstelle müssen mindestens drei Inhalte ausgefüllt werden: authorization, das Sie direkt aus der Dropdown-Liste auswählen können; model, womit Sie das OpenAI DALL-E Modell auswählen (hier steht hauptsächlich ein Modell zur Verfügung, Details siehe unsere Modellübersicht); und prompt, das die Beschreibung für das zu generierende Bild ist. Rechts sehen Sie den generierten Beispielaufrufcode, den Sie direkt kopieren und ausführen oder über den „Try“-Button testen können.

Python Beispielcode:
import requests

url = "https://api.xhuoapi.ai/v1/openai/images/generations"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "dall-e-3",
    "prompt": "A cute baby sea otter"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Beispielantwort:
{
  "created": 1721626477,
  "data": [
    {
      "revised_prompt": "A delightful image showcasing a young sea otter, who is born brown, with wide charming eyes. It is delightfully lying on its back, paddling in the calm sea waters. Its dense, velvety fur appears wet and shimmering, capturing the essence of its habitat. The small creature curiously plays with a sea shell with its small paws, looking absolutely innocent and charming in its natural environment.",
      "url": "https://dalleprodsec.blob.core.windows.net/private/images/5d98aa7c-80c6-4523-b571-fc606ad455b9/generated_00.png?se=2024-07-23T05%3A34%3A48Z&sig=GAz%2Bi3%2BkHOQwAMhxcv22tBM%2FaexrxPgT9V0DbNrL4ik%3D&ske=2024-07-23T08%3A41%3A10Z&skoid=e52d5ed7-0657-4f62-bc12-7e5dbb260a96&sks=b&skt=2024-07-16T08%3A41%3A10Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02"
    }
  ]
}
Die Antwort enthält mehrere Felder:
  • created: Zeitstempel der Bildgenerierung, dient zur eindeutigen Identifikation der Aufgabe.
  • data: Enthält die Ergebnisse der Bildgenerierung.
Im data-Array finden Sie detaillierte Informationen zum generierten Bild, insbesondere das Feld url mit dem Bildlink, wie im Screenshot ersichtlich.

Bildqualitätsparameter quality

Sie können die Qualität der generierten Bilder einstellen. Es gibt zwei Optionen: standard für Standardqualität und hd für feinere Details und höhere Konsistenz. Beispiel für die Einstellung von quality auf standard:

Rechts sehen Sie den generierten Beispielcode, den Sie direkt ausführen oder über „Try“ testen können.

Python Beispielcode:
import requests

url = "https://api.xhuoapi.ai/v1/openai/images/generations"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "dall-e-3",
    "prompt": "A cute baby sea otter",
    "quality": "standard"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Beispielantwort:
{
  "created": 1721636023,
  "data": [
    {
      "revised_prompt": "A cute baby sea otter is lying playfully on its back in the water, with its fur looking glossy and soft. One of its tiny paws is reaching out curiously, and it has an expression of pure joy and warmth on its face as it looks up to the sky. Its body is surrounded by bubbles from its playful twirling in the water. A gentle breeze is playing with its fur making it look more charming. The scene portrays the tranquility and charm of marine life.",
      "url": "https://dalleprodsec.blob.core.windows.net/private/images/a93ee5e7-3abd-4923-8d79-dc9ef126da46/generated_00.png?se=2024-07-23T08%3A13%3A55Z&sig=wTXGYvUOwUIkaB2CxjK9ww%2FHjS8OwYUWcYInXYKwcAM%3D&ske=2024-07-23T11%3A32%3A05Z&skoid=e52d5ed7-0657-4f62-bc12-7e5dbb260a96&sks=b&skt=2024-07-16T11%3A32%3A05Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02"
    }
  ]
}
Das Bild mit quality = standard sieht so aus:

Wenn Sie stattdessen quality auf hd setzen, erhalten Sie ein Bild mit feineren Details und höherer Konsistenz:

Bildgrößenparameter size

Sie können auch die Größe des generierten Bildes einstellen. Beispiel: Bildgröße auf 1024x1024 setzen:

Rechts sehen Sie den generierten Beispielcode:

Python Beispielcode:
import requests

url = "https://api.xhuoapi.ai/v1/openai/images/generations"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "dall-e-3",
    "prompt": "A cute baby sea otter",
    "size": "1024x1024"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Beispielantwort:
{
  "created": 1721636652,
  "data": [
    {
      "revised_prompt": "A delightful depiction of a baby sea otter. The small mammal is captured in its natural habitat in the ocean, floating on its back. It has thick brown fur that is sleek and wet from the sea water. Its eyes are closed as if it is enjoying a moment of deep relaxation. The water around it is calm, reflecting the peacefulness of the scene. The background should hint at a diverse marine ecosystem, with visible strands of kelp floating on the surface, suggesting the baby otter's preferred environment.",
      "url": "https://dalleprodsec.blob.core.windows.net/private/images/9d625ac6-fd2b-42a9-84a6-8c99eb357ccf/generated_00.png?se=2024-07-23T08%3A24%3A24Z&sig=AXtYXowEakGxfRp8LhC2DwqL%2F07LhEDW40oCP%2BdTO8s%3D&ske=2024-07-23T18%3A00%3A45Z&skoid=e52d5ed7-0657-4f62-bc12-7e5dbb260a96&sks=b&skt=2024-07-16T18%3A00%3A45Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02"
    }
  ]
}
Das Bild mit Größe 1024x1024 sieht so aus:

Wenn Sie stattdessen 1792x1024 wählen, erhalten Sie ein Bild mit anderem Seitenverhältnis: Weitere Größenoptionen finden Sie in unserer offiziellen Dokumentation.

Bildstilparameter style

Der Stilparameter style hat zwei Optionen: vivid für lebendigere Bilder und natural für natürlichere Bilder. Beispiel: style auf vivid setzen:

Rechts sehen Sie den generierten Code:

Python Beispielcode:
import requests

url = "https://api.xhuoapi.ai/v1/openai/images/generations"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "dall-e-3",
    "prompt": "A cute baby sea otter",
    "style": "vivid"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Beispielantwort:
{
  "created": 1721637086,
  "data": [
    {
      "revised_prompt": "A baby sea otter with soft, shiny fur and sparkling eyes floating playfully on calm ocean waters. This adorable creature is trippingly frolicking amidst small, gentle waves under a bright, clear, sunny sky. The tranquility of the sea contrasts subtly with the delightful energy of this young otter. The critter gamely clings to a tiny piece of driftwood, its small paws adorably enveloping the floating object.",
      "url": "https://dalleprodsec.blob.core.windows.net/private/images/6e48f701-7fd3-4356-839e-a2f6f0fe82d9/generated_00.png?se=2024-07-23T08%3A31%3A37Z&sig=4percxqTbUR1j3BQmkhvj%2FAhHzInKI%2FqiTo1MP69coI%3D&ske=2024-07-27T10%3A39%3A55Z&skoid=e52d5ed7-0657-4f62-bc12-7e5dbb260a96&sks=b&skt=2024-07-20T10%3A39%3A55Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02"
    }
  ]
}
Das Bild mit style = vivid sieht so aus:

Wenn Sie stattdessen style auf natural setzen, erhalten Sie ein natürlicheres Bild:

vivid erzeugt lebendigere und realistischere Bilder als natural. Der Parameter response_format hat zwei Optionen: b64_json kodiert das Bild als Base64, url liefert einen normalen Bildlink. Beispiel: response_format auf url setzen:

Rechts der generierte Code:

Python Beispielcode:
import requests

url = "https://api.xhuoapi.ai/v1/openai/images/generations"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "dall-e-3",
    "prompt": "A cute baby sea otter",
    "response_format": "url"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Beispielantwort:
{
  "created": 1721637575,
  "data": [
    {
      "revised_prompt": "A charming depiction of a baby sea otter. The otter is seen resting serenely on its back amidst the gentle, blue ocean waves. The baby otter's fur is an endearing mix of soft greyish brown shades, glinting subtly in the muted sunlight. Its small paws are touching, lifted slightly towards the sky as if playing with an unseen object. Its round, expressive eyes are wide in curiosity, sparking with life and innocence. Use a realistic style to evoke the otter's natural habitat and its adorably fluffy exterior.",
      "url": "https://dalleprodsec.blob.core.windows.net/private/images/87792c5f-8b6d-412e-81dd-f1a1baa19bd2/generated_00.png?se=2024-07-23T08%3A39%3A47Z&sig=zzRAn30TqIKHdLVqZPUUuSJdjCYpoJdaGU6BeoA76Jo%3D&ske=2024-07-23T13%3A32%3A13Z&skoid=e52d5ed7-0657-4f62-bc12-7e5dbb260a96&sks=b&skt=2024-07-16T13%3A32%3A13Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02"
    }
  ]
}
Das Bild ist über den Link direkt zugänglich:

Wenn Sie stattdessen response_format auf b64_json setzen, erhalten Sie die Base64-kodierte Bilddaten:
{
  "created": 1721638071,
  "data": [
    {
      "b64_json": "iVBORw0..............v//AQEAAP4AAAD+AAADAQAAAwEEA/4D//8Q/Pbw64mKbVTFoQAAAABJRU5ErkJggg==",
      "revised_prompt": "A charming image of a young baby sea otter. The otter is gently floating on a calm blue sea, basking in the warm, golden rays of sunlight streaming down from a clear sky above. The otter's fur is a rich chocolate brown, and it looks incredibly soft and fluffy. The otter's eyes are bright and expressive, filled with childlike curiosity and joy. It has small, pricked ears and a button-like nose which adds to its overall cuteness. In the sea around it, twinkling droplets of water can be seen, pepped up by the sunlight, the sight is certainly a delightful one."
    }
  ]
}

Asynchrones Callback

Da die Bildgenerierung mit der OpenAI Images Generations API relativ lange dauern kann, würde eine lange HTTP-Verbindung unnötige Systemressourcen binden. Deshalb unterstützt die API auch asynchrone Callbacks. Der Ablauf: Der Client sendet eine Anfrage mit dem zusätzlichen Feld callback_url. Die API antwortet sofort mit einem Ergebnis, das ein task_id enthält, welches die Aufgabe identifiziert. Nach Abschluss der Bildgenerierung sendet die API das Ergebnis per POST-JSON an die angegebene callback_url, inklusive des task_id, sodass die Aufgabe eindeutig zugeordnet werden kann. Beispiel: Ein Webhook ist ein HTTP-Endpunkt, der HTTP-Anfragen empfangen kann. Entwickler sollten hier ihre eigene HTTP-Server-URL angeben. Zum Demonstrieren verwenden wir die öffentliche Webhook-Testseite https://webhook.site/, die eine Webhook-URL generiert, z. B.: Kopieren Sie diese URL, z. B. https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab, und verwenden Sie sie als callback_url:
import requests

url = "https://api.xhuoapi.ai/v1/openai/images/generations"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "dall-e-3",
    "prompt": "A cute baby sea otter",
    "callback_url": "https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Die Antwort ist sofort:
{
  "task_id": "6a97bf49-df50-4129-9e46-119aa9fca73c"
}
Nach kurzer Zeit sehen Sie auf der Webhook-Seite das Ergebnis der Bildgenerierung:
{
  "success": true,
  "task_id": "6a97bf49-df50-4129-9e46-119aa9fca73c",
  "trace_id": "9b4b1ff3-90f2-470f-b082-1061ec2948cc",
  "data": {
    "created": 1721626477,
    "data": [
      {
        "revised_prompt": "A delightful image showcasing a young sea otter...",
        "url": "https://dalleprodsec.blob.core.windows.net/private/images/..."
      }
    ]
  }
}
Das Feld task_id ermöglicht die Zuordnung der Aufgabe, data enthält die gleichen Bildinformationen wie bei synchronen Aufrufen.

Fehlerbehandlung

Bei Fehlern gibt die API entsprechende Fehlercodes und -meldungen zurück, z. B.:
  • 400 token_mismatched: Ungültige Anfrage, möglicherweise fehlende oder falsche Parameter.
  • 400 api_not_implemented: Ungültige Anfrage, möglicherweise fehlende oder falsche Parameter.
  • 401 invalid_token: Nicht autorisiert, ungültiger oder fehlender Token.
  • 429 too_many_requests: Zu viele Anfragen, Limit überschritten.
  • 500 api_error: Interner Serverfehler.

Beispiel einer Fehlerantwort

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Fazit

Mit diesem Dokument haben Sie gelernt, wie Sie die OpenAI Images Generations API nutzen, um die offiziellen OpenAI DALL-E Bildgenerierungsfunktionen einfach zu verwenden. Wir hoffen, dass Ihnen dieses Dokument bei der Integration und Nutzung der API hilft. Bei Fragen wenden Sie sich bitte jederzeit an unser technisches Support-Team.