Skip to main content
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.
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:
Przykładowa odpowiedź:
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.
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.
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.
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:
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

Przykładowa odpowiedź:
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:
Przykładowa odpowiedź:

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:
Przykładowa odpowiedź:
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:
Przykładowa odpowiedź:
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:
Przykładowa odpowiedź:
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:
Przykładowa odpowiedź:
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:
Przykładowa odpowiedź:
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:

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:
Otrzymasz natychmiast odpowiedź:
Po chwili na stronie webhooka zobaczysz wynik generowania obrazu:
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

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.