Przejdź do głównej treści

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.

OpenAI Images Generations API obecnie obsługuje różne modele generowania obrazów, w tym klasyczny dall-e-3, model o silniejszych zdolnościach renderowania tekstu gpt-image-1, najnowszą generację gpt-image-2, a także modele z serii nano-banana / nano-banana-2 / nano-banana-pro, dostępne przez ten sam interfejs. Wszystkie potrafią generować wysokiej jakości obrazy na podstawie opisu tekstowego. Niniejsza dokumentacja opisuje głównie proces korzystania z OpenAI Images Generations API, dzięki któremu możemy łatwo korzystać z funkcji generowania obrazów serii OpenAI.

Proces wnioskowania

Aby korzystać z OpenAI Images Generations API, najpierw można przejść na stronę OpenAI Images Generations API i kliknąć przycisk „Acquire”, aby uzyskać wymagane poświadczenia do żądań: Jeśli nie jesteś jeszcze zalogowany lub zarejestrowany, zostaniesz automatycznie przekierowany do strony logowania, gdzie możesz się zarejestrować i zalogować. Po zalogowaniu zostaniesz automatycznie przeniesiony z powrotem na tę stronę. Przy pierwszym wniosku otrzymasz darmowy limit, który pozwala na bezpłatne korzystanie z API.

Model GPT-Image-2

gpt-image-2 to nowa generacja modelu generowania obrazów od OpenAI, która w porównaniu do dall-e-3 i gpt-image-1 oferuje wyraźne ulepszenia w następujących aspektach:
  • Lepsze przestrzeganie instrukcji: potrafi dokładnie zrozumieć złożone instrukcje dotyczące kompozycji, liczenia, relacji przestrzennych i innych struktur.
  • Czystsze renderowanie tekstu: w scenariuszach takich jak plakaty, menu, infografiki, logotypy, tekst angielski i cyfry są niemal bezbłędnie odwzorowane.
  • Bogatsze wyrażanie stylu: natywne wsparcie dla różnych stylów, takich jak portrety filmowe, plakaty retro, ilustracje dla dzieci, fotografia produktowa, infografiki itp.
  • Natywne wsparcie wielu proporcji i wysokiej rozdzielczości: obsługuje 5 proporcji (1:1, 4:3, 3:4, 16:9, 9:16) i 3 poziomy rozdzielczości (1K / 2K / 4K).
Sposób wywołania jest identyczny jak w przypadku innych modeli – wystarczy ustawić pole model na gpt-image-2. W zwracanym wyniku pole url to trwały link do obrazu hostowany na platform.cdn.xhuoapi.ai, który można otworzyć bezpośrednio w przeglądarce lub osadzić na stronie.

Obsługiwane wartości size i poziomy rozliczeń

gpt-image-2 sprawdza tylko format size – jeśli nie jest to auto lub pusty ciąg, musi mieć postać WIDTHxHEIGHT (np. 1024x1024, 2048x1152, 800x600); inne formaty zwrócą błąd 400. Rozliczenia są podzielone na dwa poziomy:
  • Standardowa cena 1K: wejście to dowolny rozmiar 1K z tabeli poniżej lub popularne aliasy 1K z upstream (1254x1254, 1672x941, 941x1672 – są to faktyczne rozmiary zwracane przez upstream dla 1K, które po ponownym przekazaniu nie powodują zmiany ceny).
  • Inne poziomy (1,5×): dowolne rozmiary spoza powyższej grupy 1K, w tym rekomendowane 2K / 4K oraz dowolne niestandardowe WIDTHxHEIGHT.
Upstream wymaga, aby szerokość i wysokość były wielokrotnościami 16, dłuższy bok ≤ 3840, a liczba pikseli ≤ 8 294 400. Przekroczenie tych limitów spowoduje odrzucenie z błędem 4xx.
Proporcja1K (standard)2K rekomendowane (×1,5)4K rekomendowane (×1,5)
1:11024x10242048x20482880x2880
4:31536x10242048x15363264x2448
3:41024x15361536x20482448x3264
16:91792x10242048x11523840x2160
9:161024x17921152x20482160x3840
Możesz także przesłać size: "auto" lub pominąć pole size, wtedy model wybierze domyślny rozmiar i zostanie naliczona standardowa opłata 1K. W przypadku 1K upstream nie gwarantuje ścisłego dopasowania pikseli – np. podając 1024x1024 możesz otrzymać 1254x1254, proporcje są zachowane. Jeśli ponownie przekażesz ten rozmiar jako size, nadal będzie naliczana opłata 1K. Wywołanie 4K zwykle trwa 4–8 minut, zalecane jest użycie asynchronicznego callbacku callback_url opisanej dalej.
O parametrze n gpt-image-2 nie obsługuje n > 1 – parametr jest ignorowany, niezależnie czy podasz n=1 czy n=10, pojedyncze wywołanie zwróci tylko 1 obraz i zostanie naliczona opłata za 1 obraz. Jeśli potrzebujesz wielu obrazów jednocześnie, wykonaj wiele równoległych wywołań (zalecane jest podanie różnych prompt lub seed, aby uniknąć bardzo podobnych obrazów). To ograniczenie dotyczy także gpt-image-1 / gpt-image-1.5 oraz serii nano-banana. Model dall-e-2 jest jedynym natywnie wspierającym n > 1; dall-e-3 obsługuje tylko n = 1.
Poniżej przedstawiamy kilka rzeczywistych przykładów, które obrazują możliwości gpt-image-2.

Scenariusz 1: Portret filmowy

W promptach można używać terminologii filmowej (35mm film, płytka głębia ostrości, neony itp.) do precyzyjnej kontroli atmosfery i jakości. Przykładowy kod w Python:
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)
Przykładowa odpowiedź:
{
  "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"
    }
  ]
}
Wygenerowany obraz:

Scenariusz 2: Retro plakat podróżniczy (z renderowaniem tekstu)

gpt-image-2 jest stabilny w renderowaniu typografii i układzie, idealny do tworzenia plakatów, menu, kartek z tekstem.
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"
}
Obraz z pola url:

Model dokładnie odwzorował styl Art Deco, a napisy AMALFI i ITALIA 1958 są czytelne i poprawne.

Scenariusz 3: Złożona kompozycja i liczenie

Prompt testujący przestrzeganie instrukcji dotyczących liczby i rozmieszczenia elementów.
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"
}
Wygenerowany obraz:

Liczba książek na półkach (1 / 3 / 7) dokładnie odpowiada promptowi, co było trudne do osiągnięcia w erze dall-e-3.

Scenariusz 4: Styl ilustracji (poziomo)

Poprzez określenie medium artystycznego i słów kluczowych nastroju można uzyskać stylizowane ilustracje.
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"
}
Wygenerowana ilustracja pozioma:

Asynchroniczność i callback

Wywołanie gpt-image-2 zwykle trwa 60–90 sekund. Aby uniknąć utrzymywania długiego połączenia, można użyć mechanizmu asynchronicznego callback callback_url, którego użycie jest identyczne jak w innych modelach.

Modele z serii Nano Banana

Seria nano-banana to modele generowania obrazów oparte na Gemini, dostępne przez ten sam endpoint /openai/images/generations. Wystarczy zmienić pole model na jeden z poniższych:
ModelKoszt (Credits / wywołanie)Zastosowanie
nano-banana0.14Standardowe generowanie obrazów, najszybsze i najtańsze
nano-banana-20.28Wyraźnie lepsza jakość i detale
nano-banana-pro0.35Flagowy model serii, najlepsza kompozycja, detale i tekst
Ważne: zakres obsługiwanych parametrów Nano Banana działa przez warstwę adaptacyjną OpenAI i w porównaniu do gpt-image-* obsługuje tylko parametry: model, prompt, size.
  • size jest mapowane na wewnętrzny aspect_ratio według poniższej tabeli; nieujęte rozmiary są traktowane jako 1:1:
    • 1024x1024 / 512x512 / 256x2561:1
    • 1792x102416:9
    • 1024x17929:16
  • Nie obsługiwane są parametry n, quality, style, response_format, background, output_format – jeśli zostaną podane, zostaną zignorowane.
  • Struktura odpowiedzi jest zgodna z formatem OpenAI (data[].url), ale created jest zawsze 0, nie zwracany jest b64_json, a revised_prompt jest zawsze równy oryginalnemu prompt.

Podstawowe wywołanie

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)
Przykładowa odpowiedź:
{
  "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"
    }
  ]
}
Wygenerowany obraz można bezpośrednio otworzyć pod linkiem z pola url:

Aktualizacja do flagowego modelu nano-banana-pro

Wystarczy zmienić model na nano-banana-pro, pozostałe parametry pozostają bez zmian:
payload = {
    "model": "nano-banana-pro",
    "prompt": "abstract painting",
    "size": "1024x1024"
}
Przykładowa odpowiedź:
{
  "created": 0,
  "data": [
    {
      "url": "https://platform.cdn.xhuoapi.ai/nanobanana/6227fcc9-3442-4aa3-a76c-4a4441a99649.png",
      "revised_prompt": "abstract painting"
    }
  ]
}

Asynchroniczny callback

Mechanizm callback_url działa również dla nano-banana, proces wywołania jest identyczny jak dla innych modeli, więcej w sekcji Asynchroniczny callback.

Podstawowe użytkowanie

Następnie można w interfejsie wypełnić odpowiednie pola, jak na poniższym obrazku:

Przy pierwszym użyciu tego interfejsu należy wypełnić co najmniej trzy pola: authorization – wybierane z listy rozwijanej, model – wybór modelu OpenAI DALL-E, szczegóły dostępnych modeli znajdują się w naszej dokumentacji, oraz prompt – tekstowy opis obrazu do wygenerowania. Po prawej stronie pojawia się wygenerowany kod wywołania, który można skopiować i uruchomić, lub kliknąć przycisk „Try” do testu.

Przykładowy kod w Python:
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)
Przykładowa odpowiedź:
{
  "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"
    }
  ]
}
Wynik zawiera kilka pól:
  • created – unikalny identyfikator wygenerowanego obrazu, służący do identyfikacji zadania.
  • data – zawiera informacje o wygenerowanym obrazie.
W polu data znajduje się szczegółowy link do wygenerowanego obrazu w url, jak pokazano poniżej:

Parametr jakości obrazu quality

Możemy ustawić szczegółowe parametry generowania obrazu, w tym jakość. Parametr quality ma dwie wartości: standard – generuje obraz o standardowej jakości, oraz hd – generuje obraz z większą szczegółowością i spójnością. Przykład ustawienia quality na standard:

Po prawej stronie pojawia się wygenerowany kod do skopiowania lub przycisk „Try” do testu.

Przykładowy kod:
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)
Przykładowa odpowiedź:
{
  "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"
    }
  ]
}
Obraz wygenerowany z parametrem quality ustawionym na standard:

Analogicznie, ustawiając quality na hd, otrzymamy obraz z większą szczegółowością i spójnością:

Parametr rozmiaru obrazu size

Możemy ustawić rozmiar generowanego obrazu. Przykład ustawienia rozmiaru na 1024x1024:

Po prawej stronie pojawia się wygenerowany kod lub przycisk „Try” do testu.

Przykładowy kod:
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)
Przykładowa odpowiedź:
{
  "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"
    }
  ]
}
Obraz o rozmiarze 1024x1024:

Analogicznie, ustawiając rozmiar na 1792x1024, otrzymamy obraz o innym rozmiarze: Można ustawić także inne rozmiary – szczegóły dostępne w dokumentacji na stronie.

Parametr stylu obrazu style

Parametr style ma dwie wartości: vivid – obraz bardziej żywy, oraz natural – bardziej naturalny. Przykład ustawienia style na vivid:

Po prawej stronie wygenerowany kod lub przycisk „Try”:

Przykładowy kod:
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)
Przykładowa odpowiedź:
{
  "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"
    }
  ]
}
Obraz wygenerowany z parametrem style ustawionym na vivid:

Analogicznie, ustawiając style na natural, otrzymamy obraz bardziej naturalny:

Obrazy z vivid są bardziej żywe i realistyczne niż z natural.

Parametr formatu odpowiedzi response_format

Parametr response_format ma dwie wartości: b64_json – link do obrazu zakodowany w Base64, oraz url – zwykły link do obrazu, który można bezpośrednio otworzyć. Przykład ustawienia response_format na url:

Po prawej stronie wygenerowany kod lub przycisk „Try”:

Przykładowy kod:
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)
Przykładowa odpowiedź:
{
  "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"
    }
  ]
}
Link do obrazu z parametrem url można bezpośrednio otworzyć, obraz wygląda tak:

Analogicznie, ustawiając response_format na b64_json, otrzymamy zakodowany w Base64 obraz:
{
  "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."
    }
  ]
}

Asynchroniczny callback

Ponieważ generowanie obrazów przez OpenAI Images Generations API może trwać stosunkowo długo, a długie utrzymywanie połączenia HTTP powoduje dodatkowe obciążenie systemu, API oferuje wsparcie dla asynchronicznego callbacku. Proces jest następujący: klient wysyła żądanie z dodatkowym polem callback_url. API natychmiast zwraca odpowiedź zawierającą task_id – identyfikator zadania. Po zakończeniu generowania obraz zostanie przesłany metodą POST w formacie JSON na wskazany callback_url, zawierając również task_id, co pozwala powiązać wynik z zadaniem. Przykład: Webhook callback to usługa HTTP, którą programista powinien zastąpić własnym serwerem HTTP. Dla demonstracji można użyć publicznego serwisu https://webhook.site/, gdzie po wejściu na stronę otrzymujemy unikalny URL webhooka, np.: Skopiuj ten URL, np. https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab. Następnie ustaw pole callback_url na ten URL i wyślij żądanie:
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)
Otrzymasz natychmiast odpowiedź:
{
  "task_id": "6a97bf49-df50-4129-9e46-119aa9fca73c"
}
Po chwili na stronie webhooka zobaczysz wynik generowania obrazu:
{
  "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/..."
      }
    ]
  }
}
Wynik zawiera task_id oraz pole data z wygenerowanym obrazem, co pozwala powiązać odpowiedź z zadaniem.

Obsługa błędów

W przypadku błędów API zwraca odpowiedni kod i komunikat, np.:
  • 400 token_mismatched: Nieprawidłowe żądanie, brak lub błędne parametry.
  • 400 api_not_implemented: Nieprawidłowe żądanie, brak lub błędne parametry.
  • 401 invalid_token: Nieautoryzowany, nieprawidłowy lub brakujący token autoryzacji.
  • 429 too_many_requests: Zbyt wiele żądań, przekroczony limit.
  • 500 api_error: Błąd wewnętrzny serwera.

Przykład odpowiedzi błędu

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

Podsumowanie

Dzięki tej dokumentacji nauczyłeś się, jak łatwo korzystać z OpenAI Images Generations API, aby korzystać z oficjalnych funkcji generowania obrazów OpenAI DALL-E. Mamy nadzieję, że dokumentacja pomoże Ci lepiej integrować i używać tego API. W razie pytań prosimy o kontakt z naszym zespołem wsparcia technicznego.