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 serię modeli nano-banana / nano-banana-2 / nano-banana-pro dostępnych 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 z 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ć niezbędne poświadczenia do żądań: Jeśli nie jesteś zalogowany lub zarejestrowany, zostaniesz automatycznie przekierowany na stronę 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, znaki tekst i cyfry w języku angielskim są niemal bezbłędne.
  • Bogatsze wyrażanie stylu: natywne wsparcie dla wielu 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) oraz 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. Pole url w zwracanym wyniku to trwały link do obrazu hostowany na platform.cdn.acedata.cloud, który można otworzyć bezpośrednio w przeglądarce lub osadzić na stronie.

Obsługiwane wartości size

gpt-image-2 sprawdza tylko format size — jeśli nie jest auto ani pustym ciągiem, musi odpowiadać wzorcowi WIDTHxHEIGHT (np. 1024x1024, 2048x1152, 800x600); inne formaty zwrócą błąd 400. Wszystkie rozmiary (1K / 2K / 4K / niestandardowe) są rozliczane jednolicie za pojedynczy obraz, bez dodatkowych opłat za rozmiar. Ograniczenia nałożone przez backend dotyczące niestandardowych rozmiarów: szerokość i wysokość muszą być wielokrotnością 16, dłuższy bok ≤ 3840, całkowita liczba pikseli ≤ 8 294 400. Przekroczenie tych limitów spowoduje odrzucenie przez backend i zwrócenie błędu 4xx.
Możesz także przekazać size: "auto" lub pominąć pole size, wtedy model wybierze domyślny rozmiar. Przy rozdzielczości 1K backend nie gwarantuje ścisłego dopasowania pikseli — np. podając 1024x1024 możesz otrzymać obraz 1254x1254, proporcje będą zachowane. Jeśli ponownie przekażesz taki rozmiar jako size, opłata pozostanie bez zmian. Pojedyncze wywołanie 4K zwykle zajmuje 4–8 minut, zaleca się użycie mechanizmu asynchronicznego callback_url opisanym dalej.
O parametrze n gpt-image-2 obecnie nie obsługuje n > 1 — parametr jest ignorowany, niezależnie czy podasz n=1 czy n=10, zwrócony zostanie tylko jeden obraz i naliczona opłata za jeden obraz. Jeśli potrzebujesz wielu obrazów, wykonaj wiele równoległych żądań (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 obsługującym n > 1; dall-e-3 obsługuje tylko n = 1.
Poniżej przedstawiamy kilka rzeczywistych przykładów, które pokazują 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 tekstury. Przykład wywołania w Pythonie:
Przykładowa odpowiedź:
Wygenerowany obraz:

Scenariusz 2: Plakat podróżniczy w stylu retro (z renderowaniem tekstu)

gpt-image-2 jest stabilny w kwestii typografii i układu, idealny do generowania plakatów, menu, kartek z tekstem.
Obraz z pola url w odpowiedzi:

Model dokładnie odwzorował styl Art Deco, a tekst AMALFI i ITALIA 1958 jest wyraźny i poprawny.

Scenariusz 3: Złożona kompozycja i liczenie

Prompt testujący przestrzeganie instrukcji dotyczących liczby i położenia elementów:
Wygenerowany obraz:

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

Scenariusz 4: Styl ilustracji (orientacja pozioma)

Poprzez określenie medium artystycznego i słów kluczowych nastroju, można uzyskać stylizowane ilustracje.
Wygenerowana ilustracja pozioma:

Asynchroniczność i callback

Pojedyncze wywołanie gpt-image-2 zwykle trwa 60–90 sekund. Jeśli nie chcesz utrzymywać długiego połączenia, możesz użyć mechanizmu asynchronicznego callback opisanego dalej. Proces wywołania jest identyczny jak w przypadku innych modeli.

Modele 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ć model na dowolny z poniższej tabeli.
Zakres obsługiwanych parametrów Nano Banana korzysta z warstwy adaptacyjnej do protokołu OpenAI i w porównaniu do gpt-image-* obsługuje tylko: model, prompt, size.
  • size jest mapowane na wewnętrzny aspect_ratio według tabeli:
    • 1024x1024 / 512x512 / 256x2561:1
    • 1792x102416:9
    • 1024x17929:16
  • Nie obsługuje parametrów n, quality, style, response_format, background, output_format — są ignorowane.
  • Struktura odpowiedzi jest zgodna z formatem OpenAI (data[].url), ale created zawsze 0, nie zwraca b64_json, a revised_prompt zawsze równe oryginalnemu prompt.

Podstawowe wywołanie

Przykładowa odpowiedź:
Wygenerowany obraz można otworzyć bezpośrednio 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 taki sam jak dla innych modeli, opisany w sekcji Asynchroniczny callback.

Podstawowe użycie

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

Przy pierwszym użyciu tego interfejsu musisz podać co najmniej trzy wartości: authorization — wybierz z listy rozwijanej, model — wybierz model OpenAI DALL-E (tutaj dostępny jest jeden model, szczegóły w dokumentacji modeli) oraz prompt — tekstowy opis obrazu do wygenerowania. Po prawej stronie zobaczysz wygenerowany kod wywołania, który możesz skopiować i uruchomić lub kliknąć przycisk „Try” aby przetestować.

Przykład wywołania w Pythonie:
Przykładowa odpowiedź:
Wynik zawiera kilka pól:
  • created — ID wygenerowanego obrazu, unikalny identyfikator zadania.
  • data — zawiera informacje o wygenerowanym obrazie.
W polu data znajduje się szczegółowy link do wygenerowanego obrazu w url, jak pokazano na obrazku:

Parametr jakości obrazu quality

Możesz ustawić szczegółowe parametry generowania obrazu, w tym parametr jakości quality, który ma dwie wartości: standard — generuje obraz standardowej jakości, oraz hd — generuje obraz z większą ilością detali i spójnością. Poniżej ustawiamy quality na standard:

Po prawej stronie pojawi się wygenerowany kod, który możesz skopiować lub kliknąć „Try” aby przetestować.

Przykład wywołania w Pythonie:
Przykładowa odpowiedź:
Obraz wygenerowany z parametrem quality ustawionym na standard wygląda tak:

Analogicznie, ustawiając quality na hd, otrzymasz obraz z większą ilością detali i spójnością:

Parametr rozmiaru obrazu size

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

Po prawej stronie pojawi się kod do wywołania, który można skopiować lub przetestować:

Przykład wywołania w Pythonie:
Przykładowa odpowiedź:
Obraz o rozmiarze 1024x1024 wygląda tak:

Analogicznie, ustawiając rozmiar na 1792x1024, otrzymasz obraz o innym rozmiarze: Możesz ustawić także inne rozmiary, szczegóły znajdziesz w dokumentacji na stronie.

Parametr stylu obrazu style

Parametr stylu style ma dwie wartości: vivid — generuje bardziej żywe obrazy, oraz natural — generuje obrazy bardziej naturalne. Przykład ustawienia style na vivid:

Po prawej stronie pojawi się kod do wywołania, który można skopiować lub przetestować:

Przykład wywołania w Pythonie:
Przykładowa odpowiedź:
Obraz wygenerowany z parametrem style ustawionym na vivid:

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

vivid generuje obrazy bardziej żywe i realistyczne niż natural.

Parametr formatu odpowiedzi response_format

Parametr response_format ma dwie wartości: b64_json — kodowanie linku do obrazu 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 pojawi się kod do wywołania, który można skopiować lub przetestować:

Przykład wywołania w Pythonie:
Przykładowa odpowiedź:
Obraz można bezpośrednio otworzyć pod tym linkiem: Obraz URL.

Analogicznie, ustawiając response_format na b64_json, otrzymasz obraz zakodowany w Base64:

Asynchroniczny callback

Ponieważ generowanie obrazów przez OpenAI Images Generations API może zająć stosunkowo dużo czasu, długie oczekiwanie na odpowiedź HTTP powoduje utrzymywanie połączenia, co zwiększa zużycie zasobów systemowych. Dlatego API oferuje wsparcie dla asynchronicznego callback. Proces jest następujący: klient wysyła żądanie z dodatkowym polem callback_url. API natychmiast zwraca wynik zawierający task_id — identyfikator zadania. Po ukończeniu generowania obraz zostanie przesłany metodą POST w formacie JSON na wskazany callback_url, zawierający również task_id, co pozwala powiązać wynik z zadaniem. Poniżej przykład, jak to zrobić. Webhook callback to usługa HTTP, która odbiera żądania. Programista powinien podać adres własnego serwera HTTP. Dla demonstracji można użyć publicznej strony https://webhook.site/, która generuje unikalny URL webhooka, jak na obrazku: Skopiuj ten URL, np. https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab. Następnie ustaw pole callback_url na ten adres i wywołaj API, np.:
Po wywołaniu otrzymasz natychmiast odpowiedź:
Po chwili na stronie webhooka zobaczysz wynik generowania obrazu:
Wynik zawiera task_id i pole data z tymi samymi danymi co wywołanie synchroniczne, co pozwala powiązać zadania.

Obsługa błędów

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

Przykład odpowiedzi błędu

Podsumowanie

Dzięki tej dokumentacji nauczyłeś się, jak łatwo korzystać z OpenAI Images Generations API do generowania obrazów za pomocą oficjalnego modelu OpenAI DALL-E. Mamy nadzieję, że dokumentacja pomoże Ci w integracji i użyciu API. W razie pytań prosimy o kontakt z naszym zespołem wsparcia technicznego.