Skip to main content
OpenAI Images Generations API obecnie wspiera wiele modeli generacji obrazów, w tym klasyczny dall-e-3, model o silniejszych zdolnościach renderowania tekstu gpt-image-1, najnowszą generację gpt-image-2, oraz serię modeli nano-banana / nano-banana-2-lite / nano-banana-2 / nano-banana-pro, które są dostępne przez ten sam interfejs. Wszystkie te modele potrafią generować wysokiej jakości obrazy na podstawie opisów tekstowych. Dokument ten głównie opisuje proces korzystania z OpenAI Images Generations API, dzięki któremu możemy łatwo korzystać z funkcji generacji obrazów serii OpenAI.

Proces aplikacji

Aby korzystać z OpenAI Images Generations API, najpierw przejdź do Ace Data Cloud Console, aby uzyskać swój token API, który należy zachować na przyszłość. Jeśli nie jesteś zalogowany lub zarejestrowany, automatycznie zostaniesz przekierowany na stronę logowania, aby zarejestrować się i zalogować, a po zakończeniu zostaniesz automatycznie przekierowany z powrotem na bieżącą stronę. Jeden token API wystarczy do korzystania ze wszystkich usług platformy, nie ma potrzeby składania osobnych wniosków dla każdej usługi. Pierwszy wniosek daje darmowy limit, który można wykorzystać bezpłatnie; w przypadku niewystarczającego limitu można doładować saldo ogólne w konsoli.
📘 Pełna dokumentacja: OpenAI Images Generations API →

Model GPT-Image-2

gpt-image-2 to nowa generacja modelu generacji obrazów wprowadzona przez OpenAI, która w porównaniu do dall-e-3 i gpt-image-1 ma wyraźne ulepszenia w następujących aspektach:
  • Silniejsza zdolność do przestrzegania instrukcji: potrafi dokładnie zrozumieć złożone kompozycje, liczenie, relacje przestrzenne i inne złożone instrukcje.
  • Wyraźniejsze renderowanie tekstu: w scenach takich jak plakaty, menu, infografiki, logotypy angielski i cyfry prawie nigdy nie są zniekształcone.
  • Bogatsze wyrażenie stylu: natywne wsparcie dla różnych stylów, takich jak filmowe portrety, retro plakaty, ilustracje dla dzieci, fotografia produktowa, infografiki itp.
  • Natywne wsparcie dla wielu proporcji + wysokiej rozdzielczości: obejmuje 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 całkowicie zgodny z innymi modelami, wystarczy ustawić pole model na gpt-image-2. W zwróconym wyniku url to link do obrazu, który jest trwale hostowany na platform.cdn.acedata.cloud, można go otworzyć bezpośrednio w przeglądarce lub osadzić na stronie internetowej.

Oficjalny pośrednik / Odwrócona wersja (:official / :reverse)

gpt-image-2 domyślnie korzysta z odwróconej trasy. Można jawnie wybrać trasę za pomocą sufiksu nazwy modelu:
  • gpt-image-2:official: oficjalna trasa pośrednia. Wspiera n > 1 (zwraca wiele obrazów jednocześnie) oraz prawdziwe rozdzielczości 2K / 4K, opłata za każdą obrazek, cena jednostkowa to 2-krotność domyślnego gpt-image-2. Obecnie dostępne tylko przez kanał openai-hk, w przypadku braku dostępności trasy zwraca bezpośrednio błąd, nie przechodzi na trasę odwróconą.
  • gpt-image-2:reverse: całkowicie równoważne z domyślnym gpt-image-2 (odwrócona trasa), używane do jawnego zadeklarowania korzystania z odwróconej trasy, cena pozostaje bez zmian.
Ograniczenia dotyczące parametru n w dalszej części odnoszą się tylko do domyślnej / odwróconej trasy; gpt-image-2:official wspiera n > 1 i rozlicza na podstawie obrazków.

Obsługiwane wartości size

gpt-image-2 sprawdza tylko format size, o ile nie jest auto lub pustym ciągiem, musi pasować do formatu WIDTHxHEIGHT (np. 1024x1024, 2048x1152, 800x600); wszelkie inne formy zwrócą 400. Wszystkie rozmiary (1K / 2K / 4K / niestandardowe) są rozliczane na podstawie pojedynczego obrazka, nie ma dodatkowych opłat za rozmiar. Górne ograniczenia 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 wartości spowoduje odrzucenie przez górny poziom i zwrócenie 4xx.
Możesz również przekazać size: "auto" lub pominąć pole size, w takim przypadku model sam wybierze domyślny rozmiar. W przypadku 1K górny poziom nie gwarantuje ścisłego dopasowania pikseli — możesz przekazać 1024x1024, a otrzymać 1254x1254, proporcje pozostaną zgodne. Jeśli ponownie przekażesz to jako size, opłata pozostaje bez zmian. Jedno wywołanie 4K zazwyczaj wymaga 4–8 minut, zaleca się użycie asynchronicznego wywołania callback_url w dalszej części.
O parametrach n gpt-image-2 obecnie nie wspiera n > 1: ten parametr będzie cicho ignorowany, niezależnie od tego, czy przekażesz n=1, czy n=10, pojedyncze żądanie zawsze zwróci 1 obrazek i będzie rozliczane tylko za 1 obrazek. Jeśli potrzebujesz uzyskać wiele obrazów kandydatów jednocześnie, proszę samodzielnie uruchomić wiele równoległych żądań (zaleca się jednoczesne przekazywanie różnych prompt lub różnych seed, w przeciwnym razie uzyskane obrazy mogą być bardzo podobne). To ograniczenie dotyczy również gpt-image-1 / gpt-image-1.5, a także serii nano-banana / nano-banana-2-lite / nano-banana-2 / nano-banana-pro. dall-e-2 jest obecnie jedynym modelem, który natywnie wspiera n > 1; dall-e-3 wspiera tylko n = 1.
Poniżej przedstawiamy kilka różnych rzeczywistych przykładów, aby intuicyjnie poczuć możliwości gpt-image-2.

Scena 1: Filmowy portret

W podpowiedziach można używać terminów filmowych (35mm film, płytka głębia, neonowe światło itp.), aby precyzyjnie kontrolować atmosferę i jakość. Przykładowy kod wywołania w Pythonie:
Wynik zwrócony jest następujący:
Wygenerowany obrazek wygląda następująco:

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

gpt-image-2 wykazuje stabilność w typografii i renderowaniu czcionek, co czyni go idealnym do generowania plakatów, menu, kart okolicznościowych i innych projektów z tekstem.
Wynik zwrócony w polu url odpowiada obrazkowi poniżej:

Można zauważyć, że model nie tylko dokładnie odwzorował wizualny styl plakatu Art Deco, ale także tytułowe napisy AMALFI i ITALIA 1958 zostały wyraźnie i poprawnie wyrenderowane.

Scena 3: Złożona kompozycja i liczba

Poniższy prompt służy do testowania zdolności modelu do przestrzegania zorganizowanych instrukcji dotyczących „ilości” i „lokalizacji”.
Wygenerowany obrazek wygląda następująco:

Można zauważyć, że liczba książek na trzech półkach (1 / 3 / 7) jest całkowicie zgodna z promptem, co było trudne do stabilnego osiągnięcia w erze dall-e-3.

Scena 4: Styl ilustracji (poziomo)

Poprzez określenie medium artystycznego i słów kluczowych dotyczących emocji, można skierować model do produkcji stylizowanej ilustracji.
Wygenerowana pozioma ilustracja wygląda następująco:

Asynchroniczność i wywołania zwrotne

gpt-image-2 zazwyczaj wymaga 60-90 sekund na pojedyncze wywołanie. Jeśli nie chcesz utrzymywać długiego połączenia, możesz skorzystać z mechanizmu asynchronicznego wywołania zwrotnego callback_url, którego proces wywołania jest całkowicie zgodny z innymi modelami.

Seria modeli Nano Banana

Seria nano-banana to modele generowania obrazów oparte na Gemini, które zostały zintegrowane przez ten sam interfejs /openai/images/generations, bez potrzeby zmiany punktu końcowego, wystarczy zmienić model na dowolny z poniższej tabeli.
Ważne: Zakres obsługiwanych parametrów Nano Banana łączy się z protokołem OpenAI przez warstwę adaptacyjną, w porównaniu do gpt-image-* obsługuje tylko następujące parametry: model, prompt, size.
  • size będzie mapowane na wewnętrzny aspect_ratio, a nie wymienione rozmiary będą degradujące do 1:1:
    • 1024x1024 / 512x512 / 256x2561:1
    • 1792x102416:9
    • 1024x17929:16
  • Nie obsługuje parametrów n, quality, style, response_format, background, output_format itp.; wypełnione będą ignorowane.
  • Struktura zwrotna przestrzega formatu OpenAI (data[].url), ale created jest stałe na 0, a b64_json nie będzie zwracane, revised_prompt zawsze równa się oryginalnemu prompt.

Podstawowe wywołanie

Wynik zwrócony jest następujący:
Generowane obrazy można bezpośrednio uzyskać za pomocą zwróconego pola url:

Uaktualnij do modelu flagowego nano-banana-pro

Wystarczy zmienić model na nano-banana-pro, pozostałe parametry pozostają identyczne:
Przykład odpowiedzi:

Asynchroniczny callback

Mechanizm asynchronicznego callbacku callback_url działa również w przypadku nano-banana, proces wywołania jest całkowicie zgodny z innymi modelami, szczegóły znajdują się w sekcji Asynchroniczny callback.

Podstawowe użycie

Następnie można wypełnić odpowiednie treści w interfejsie, jak pokazano na obrazku:

Podczas pierwszego użycia tego interfejsu musimy wypełnić przynajmniej trzy pola, jedno to authorization, które można wybrać bezpośrednio z rozwijanej listy. Kolejny parametr to model, model to kategoria modelu, którą wybieramy do użycia z oficjalnej strony OpenAI DALL-E, tutaj mamy głównie 1 model, szczegóły można zobaczyć w dostarczonym modelu. Ostatni parametr to prompt, prompt to słowo kluczowe, które wprowadzamy, aby wygenerować obraz. Można również zauważyć, że po prawej stronie znajduje się odpowiedni kod wywołania, który można skopiować i uruchomić, lub można bezpośrednio kliknąć przycisk „Try”, aby przetestować.

Przykładowy kod wywołania w Pythonie:
Po wywołaniu zauważamy, że zwrócony wynik wygląda następująco:
Zwrócone wyniki zawierają wiele pól, które są opisane poniżej:
  • created, ID generacji obrazu, używane do unikalnej identyfikacji tego zadania.
  • data, zawiera informacje o wynikach generacji obrazu.
W tym przypadku data zawiera szczegółowe informacje o wygenerowanym obrazie, a url to link do szczegółów wygenerowanego obrazu, co można zobaczyć na obrazku.

Parametr jakości obrazu quality

Następnie przedstawimy, jak ustawić niektóre szczegółowe parametry wyników generacji obrazu, w tym parametr jakości obrazu quality, który zawiera dwa rodzaje: pierwszy standard oznacza generowanie standardowego obrazu, a drugi hd oznacza, że tworzony obraz ma bardziej szczegółowe detale i większą spójność. Poniżej ustawiamy parametr jakości obrazu na standard, szczegóły ustawienia przedstawione są na poniższym obrazku:

Można również zauważyć, że po prawej stronie znajduje się odpowiedni kod wywołania, który można skopiować i uruchomić, lub można bezpośrednio kliknąć przycisk „Try”, aby przetestować.

Przykładowy kod wywołania w Pythonie:
Po wywołaniu zauważamy, że zwrócony wynik wygląda następująco:
Zwrócone wyniki są zgodne z treścią podstawowego użycia, można zobaczyć, że obraz o parametrze jakości standard wygląda jak na poniższym obrazku:

Wykonując te same operacje, wystarczy ustawić parametr jakości obrazu na hd, aby uzyskać obraz przedstawiony na poniższym zdjęciu:

Można zauważyć, że hd generuje obrazy z bardziej szczegółowymi detalami i większą spójnością niż standard.

Parametr rozmiaru obrazu size

Możemy również ustawić rozmiar generowanego obrazu, możemy dokonać poniższych ustawień. Ustawiamy rozmiar obrazu na 1024 * 1024, konkretne ustawienie przedstawione na poniższym zdjęciu:

Jednocześnie można zauważyć, że po prawej stronie znajduje się odpowiedni kod wywołania, który można skopiować i uruchomić, lub po prostu kliknąć przycisk „Try”, aby przetestować.

Przykładowy kod wywołania w Pythonie:
Po wywołaniu odkrywamy, że zwrócony wynik wygląda następująco:
Zwrócony wynik jest zgodny z podstawowym użyciem, można zauważyć, że rozmiar wygenerowanego obrazu wynosi 1024 * 1024, jak pokazano na poniższym zdjęciu:

Wykonując te same operacje, wystarczy ustawić rozmiar obrazu na 1792 * 1024, aby uzyskać obraz przedstawiony na poniższym zdjęciu: Można zauważyć, że rozmiar obrazu jest wyraźnie inny, można również ustawić więcej rozmiarów, szczegóły można znaleźć w dokumentacji na naszej stronie internetowej.

Parametr stylu obrazu style

Parametr stylu obrazu style zawiera dwa parametry, pierwszy vivid oznacza, że generowany obraz jest bardziej żywy, a drugi natural oznacza, że generowany obraz jest bardziej naturalny. Ustawiamy parametr stylu obrazu na vivid, konkretne ustawienie przedstawione na poniższym zdjęciu:

Jednocześnie można zauważyć, że po prawej stronie znajduje się odpowiedni kod wywołania, który można skopiować i uruchomić, lub po prostu kliknąć przycisk „Try”, aby przetestować.

Przykładowy kod wywołania w Pythonie:
Po wywołaniu odkrywamy, że zwrócony wynik wygląda następująco:
Zwrócony wynik jest zgodny z podstawowym użyciem, można zauważyć, że styl obrazu ustawiony na vivid generuje obraz przedstawiony na poniższym zdjęciu:

Wykonując te same operacje, wystarczy ustawić parametr stylu obrazu na natural, aby uzyskać obraz przedstawiony na poniższym zdjęciu:

Można zauważyć, że vivid generuje obrazy, które są bardziej żywe i realistyczne niż natural.

Parametr formatu linku obrazu response_format

Ostatni parametr formatu linku obrazu response_format ma również dwa rodzaje, pierwszy b64_json to kodowanie linku obrazu w Base64, a drugi url to zwykły link do obrazu, który można bezpośrednio zobaczyć. Ustawiamy parametr formatu linku obrazu na url, konkretne ustawienie przedstawione na poniższym zdjęciu:

Jednocześnie można zauważyć, że po prawej stronie znajduje się odpowiedni kod wywołania, który można skopiować i uruchomić, lub po prostu kliknąć przycisk „Try”, aby przetestować.

Przykładowy kod wywołania w Pythonie:
Po wywołaniu, otrzymaliśmy następujący wynik:
Zwrócony wynik jest zgodny z podstawowym użyciem, można zauważyć, że link do obrazu w formacie parametru url generuje link do obrazu URL obrazu, który można bezpośrednio odwiedzić, a zawartość obrazu przedstawia się jak na poniższym obrazku:

Wykonując tę samą operację, wystarczy ustawić parametr formatu linku do obrazu na b64_json, aby uzyskać wynik z linkiem do obrazu zakodowanym w Base64, szczegółowy wynik przedstawia się jak na poniższym obrazku:

Asynchroniczny callback

Ponieważ czas generowania obrazów przez OpenAI Images Generations API może być stosunkowo długi, jeśli API nie odpowiada przez dłuższy czas, żądanie HTTP będzie utrzymywać połączenie, co prowadzi do dodatkowego zużycia zasobów systemowych, dlatego to API oferuje również wsparcie dla asynchronicznych callbacków. Cały proces wygląda następująco: klient inicjuje żądanie, dodatkowo określając pole callback_url, po wysłaniu żądania API natychmiast zwraca wynik, zawierający pole task_id, które reprezentuje aktualny identyfikator zadania. Po zakończeniu zadania, wynik generowania obrazu zostanie wysłany do określonego przez klienta callback_url w formie POST JSON, który również zawiera pole task_id, dzięki czemu wyniki zadania można powiązać za pomocą identyfikatora. Poniżej przedstawiamy przykład, aby zrozumieć, jak dokładnie to działa. Najpierw, Webhook callback to usługa, która może odbierać żądania HTTP, deweloperzy powinni zastąpić to URL swojego własnego serwera HTTP. W tym celu, dla wygody demonstracji, użyjemy publicznej strony przykładowej Webhook https://webhook.site/, otwierając tę stronę, można uzyskać URL Webhook, jak pokazano na obrazku: Skopiuj ten URL, aby użyć go jako Webhook, przykładowy URL to https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab. Następnie możemy ustawić pole callback_url na powyższy URL Webhook, a także wypełnić odpowiednie parametry, jak pokazano w poniższym kodzie:
Po kliknięciu uruchomienia, można zauważyć, że natychmiast otrzymujemy wynik, jak poniżej:
Po chwili możemy zaobserwować wyniki generowania obrazu na URL Webhook, treść jest następująca:
Można zauważyć, że wynik zawiera pole task_id, a pole data zawiera wyniki generowania obrazu takie same jak w przypadku wywołania synchronicznego, dzięki polu task_id można powiązać zadanie.

Obsługa błędów

Podczas wywoływania API, jeśli wystąpią błędy, API zwróci odpowiedni kod błędu i informacje. Na przykład:
  • 400 token_mismatched:Zły wniosek, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
  • 400 api_not_implemented:Zły wniosek, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
  • 401 invalid_token:Nieautoryzowany, nieprawidłowy lub brakujący token autoryzacyjny.
  • 429 too_many_requests:Zbyt wiele żądań, przekroczyłeś limit szybkości.
  • 500 api_error:Błąd wewnętrzny serwera, coś poszło nie tak na serwerze.

Przykład odpowiedzi błędu

Wnioski

Dzięki temu dokumentowi zrozumiałeś, jak łatwo korzystać z funkcji generowania obrazów OpenAI DALL-E za pomocą OpenAI Images Generations API. Mamy nadzieję, że ten dokument pomoże Ci lepiej zintegrować i korzystać z tego API. W razie jakichkolwiek pytań, skontaktuj się z naszym zespołem wsparcia technicznego.