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.

申请流程

Aby korzystać z OpenAI Images Generations API, najpierw przejdź do Ace Data Cloud 控制台, 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. Przy pierwszym wniosku przyznawana jest darmowa kwota, aby można było skorzystać z doświadczenia; w przypadku niewystarczającej kwoty można doładować saldo ogólne w kontrolerze.
📘 Pełna dokumentacja: OpenAI Images Generations API →

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 scenariuszach 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 portrety filmowe, 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.

线路变体(:official / :reverse

gpt-image-2 domyślnie korzysta z standardowej trasy. Można jawnie wybrać trasę, dodając sufiks do nazwy modelu:
  • gpt-image-2:official: oficjalny kanał, stabilny i zgodny. Koszty są określane przez tokeny wejściowe tekstu i tokeny wyjściowe obrazu, a ostateczne rozliczenie odbywa się na podstawie rzeczywistego zużycia w odpowiedzi; ceny jakości/rozmiaru wyświetlane na stronie służą tylko do oszacowania; według maksymalnego pakietu Usage, cena dla klienta wynosi około 80% oficjalnej ceny OpenAI. Usługa automatycznie przełącza się między dostępnymi kanałami, a zdolności i koszty są określane na podstawie rzeczywistych wyników.
  • gpt-image-2:reverse: całkowicie równoważne z domyślnym gpt-image-2, oferujące lepszy stosunek jakości do ceny, cena pozostaje bez zmian.
:official 计费公式 Ostateczny koszt = token wejściowy tekstu + token wejściowy obrazu (tylko edycja) + token wyjściowy obrazu. Cena wyświetlana na stronie quality × size jest oszacowaniem przed żądaniem, rzeczywiste opłaty są zgodne z usage w odpowiedzi. Na przykład, low, 1024x1024 zazwyczaj kosztuje około 0.0505 Credits za wyjście obrazu, plus niewielka ilość tokenów wejściowych; przy użyciu auto model może wybrać wyższą jakość, a kwota wstępna będzie sprawdzana według wyższej stawki.

支持的 size 取值

gpt-image-2 sprawdza tylko format size, o ile nie jest to auto lub pusty ciąg, musi pasować do formatu WIDTHxHEIGHT (na przykład 1024x1024, 2048x1152, 800x600); wszelkie inne formy zwrócą 400. Domyślnie gpt-image-2 i :reverse obciążają za pojedynczy obraz; wymiary i jakość :official wpłyną na token wyjściowy obrazu, a ostateczne rozliczenie odbywa się na podstawie rzeczywistego zużycia tokenów. Ograniczenia rozmiaru: niestandardowe wymiary muszą spełniać warunki, że zarówno szerokość, jak i wysokość są wielokrotnościami 16, dłuższy bok ≤ 3840, całkowita liczba pikseli ≤ 8,294,400, przekroczenie tych wartości zwróci 4xx.
Gdy jawnie przekazujesz size: "auto", platforma zaplanuje płótno w ciągłej przestrzeni proporcji i oceni według następujących priorytetów: wyraźne piksele lub proporcje w podpowiedziach, standardy nazewnictwa (papier / druk / miejsca platformy / reklama / urządzenie / fotografia / film), konwencje mediów, a na końcu wnioskowanie kompozycyjne. Dlatego oprócz powszechnych 1:1, 4:5, 9:16, 21:9, można również zachować proporcje takie jak 1.91:1, 1.85:1, 2.39:1, ISO papier 1:√2 itp.; ostateczny rozmiar zostanie automatycznie dostosowany do wspieranych przez usługę wielokrotności 16 i budżetu pikseli. Gdy automatyczne określenie nie jest dostępne, nastąpi powrót do domyślnego formatu modelu, co nie przerwie generacji. Pominięcie pola size spowoduje użycie domyślnego formatu modelu; w przypadku ścisłych wymagań dotyczących pikseli nadal zaleca się bezpośrednie przekazanie WIDTHxHEIGHT. Wyjście w zakresie 1K 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. Wywołanie 4K zazwyczaj wymaga 4–8 minut, zaleca się użycie asynchronicznego wywołania callback_url w połączeniu z poniższymi informacjami. O parametrze n gpt-image-2 obsługuje n > 1 (wartości 1–10): w jednym żądaniu można uzyskać odpowiadającą liczbę obrazów. Domyślnie gpt-image-2 i :reverse są rozliczane na podstawie liczby udanych obrazów; odpowiedź :official w polu usage podsumowuje tokeny całego żądania, nie będzie ponownie mnożona przez n. Aby uzyskać różnorodność w wielu wynikach, zaleca się jednoczesne przesyłanie różnych prompt lub seed. To samo dotyczy 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-3 obsługuje tylko n = 1. Uwaga: response_format=b64_json obsługuje tylko n=1, w przypadku n>1 proszę użyć domyślnego zwrotu URL. Jeśli niektóre obrazy nie zostaną wygenerowane, zwrócone i rozliczone zostaną tylko te udane.
Poniżej przedstawiono kilka różnych rzeczywistych przykładów, aby bezpośrednio poczuć możliwości gpt-image-2.

Scena 1: Filmowy portret

W podpowiedziach można używać terminów filmowych (film 35mm, płytka głębi, neonowe światła itp.), aby precyzyjnie kontrolować atmosferę i jakość. Przykładowy kod wywołania w Pythonie:
Zwrócone wyniki są następujące:
Wygenerowany obraz 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.
Obraz odpowiadający polu url w zwróconych wynikach wygląda następująco:

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

Scena 3: Złożona kompozycja i liczba

Poniższa podpowiedź służy do przetestowania zdolności modelu do przestrzegania strukturalnych instrukcji dotyczących „ilości” i „położenia”.
Wygenerowany obraz 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 podpowiedzią, 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 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.

Modele serii Nano Banana

Seria nano-banana to modele generowania obrazów oparte na Gemini, które są dostępne przez ten sam interfejs /openai/images/generations, nie ma 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ę adaptera, w porównaniu do gpt-image-* obsługuje tylko następujące parametry: model, prompt, size, n.
  • size będzie mapowane na wewnętrzny aspect_ratio według poniższej tabeli, a nie wymienione rozmiary będą degradujące do 1:1:
    • 1024x1024 / 512x512 / 256x2561:1
    • 1792x102416:9
    • 1024x17929:16
  • Nie obsługiwane są parametry quality, style, response_format, background, output_format itp.; wypełnione będą ignorowane. n > 1 jest obsługiwane (1–10), zwróci i obciąży za odpowiadającą liczbę obrazów.
  • Struktura zwrotna przestrzega formatu OpenAI (data[].url), ale created jest stałe jako 0, a b64_json nie będzie zwracane, revised_prompt zawsze równa się oryginalnemu prompt.

Podstawowe wywołanie

Wynik zwrotny wygląda następująco:
Wygenerowany obraz można bezpośrednio uzyskać przez zwrócone pole url:

Ulepszony model nano-banana-pro

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

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 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ć co najmniej trzy pola, jedno to authorization, które można bezpośrednio wybrać z rozwijanej listy. Kolejny parametr to model, model to kategoria modelu, którą wybieramy do użycia w OpenAI DALL-E, tutaj mamy głównie 1 model, szczegóły można znaleźć w dostarczonym modelu. Ostatni parametr to prompt, prompt to nasze wprowadzenie do generowania obrazu. Można również zauważyć, że po prawej stronie generowany jest odpowiedni kod wywołania, który można skopiować i uruchomić, lub można bezpośrednio kliknąć przycisk „Wypróbuj”, aby przetestować.

Przykładowy kod wywołania w Pythonie:
Po wywołaniu otrzymujemy następujący wynik:
Wynik zwrotny zawiera wiele pól, które są opisane poniżej:
  • created, identyfikator generacji tego obrazu, używany do unikalnego oznaczenia tego zadania.
  • data, zawiera informacje o wynikach generacji obrazu.
W tym data zawiera szczegółowe informacje o wygenerowanym obrazie, a jego url to szczegółowy link do 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, 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ółowe ustawienia przedstawione na poniższym obrazku:

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

Przykładowy kod wywołania w Pythonie:
Po wywołaniu, odkryliśmy, że zwrócony wynik wygląda następująco:
Zwrócony wynik jest zgodny z podstawowym użyciem, można zobaczyć, że jakość obrazu z parametrem standard jest przedstawiona na poniższym obrazku:

Wykonując tę samą operację, wystarczy ustawić parametr jakości obrazu na hd, aby uzyskać poniższy obrazek:

Można zauważyć, że obrazek hd ma bardziej szczegółowe detale i większą spójność niż standard.

Parametr rozmiaru obrazu size

Możemy również ustawić rozmiar generowanego obrazu, możemy dokonać poniższych ustawień. Poniżej ustawiamy rozmiar obrazu na 1024 * 1024, konkretne ustawienie przedstawione jest na poniższym obrazku:

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, odkryliśmy, że zwrócony wynik wygląda następująco:
Zwrócony wynik jest zgodny z podstawowym użyciem, można zobaczyć, że rozmiar obrazu wynosi 1024 * 1024, a wygenerowany obrazek przedstawiony jest na poniższym obrazku:

Wykonując tę samą operację, wystarczy ustawić rozmiar obrazu na 1792 * 1024, aby uzyskać poniższy obrazek: Można zauważyć, że rozmiar obrazu jest wyraźnie inny, a także można 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. Poniżej ustawiamy parametr stylu obrazu na vivid, konkretne ustawienie przedstawione jest na poniższym obrazku:

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, odkryliśmy, że zwrócony wynik wygląda następująco:
Zwrócone wyniki są zgodne z podstawowym użyciem, można zobaczyć, że obrazek o stylu vivid jest przedstawiony poniżej:

Podobnie, wykonując tę samą operację, zmieniając parametr stylu obrazu na natural, można uzyskać obrazek przedstawiony poniżej:

Można zauważyć, że obrazek vivid jest bardziej żywy i realistyczny niż natural.

Format parametru linku do obrazu response_format

Ostatni parametr formatu linku do obrazu response_format ma również dwie opcje, pierwsza to b64_json, która koduje link do obrazu w Base64, a druga to url, czyli zwykły link do obrazu, który można bezpośrednio zobaczyć. Poniżej ustawiono parametr formatu linku do obrazu na url, 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 po prostu kliknąć przycisk „Try” w celu przetestowania.

Przykładowy kod wywołania w Pythonie:
Po wywołaniu, otrzymujemy następujący wynik:
Zwrócone wyniki są zgodne z podstawowym użyciem, można zobaczyć, że link do obrazu o formacie url to URL obrazu, który można bezpośrednio odwiedzić, a zawartość obrazu przedstawiona jest poniżej:

Podobnie, wykonując tę samą operację, zmieniając parametr formatu linku do obrazu na b64_json, można uzyskać wynik z linkiem do obrazu zakodowanym w Base64, szczegóły wyniku przedstawione są poniżej:

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 aktualne ID zadania. Po zakończeniu zadania, wynik generowania obrazu zostanie wysłany do określonego przez klienta callback_url w formie POST JSON, w tym również pole task_id, dzięki czemu wynik zadania można powiązać z ID. Poniżej przyjrzymy się, jak dokładnie przeprowadzić tę operację na przykładzie. Najpierw, Webhook to usługa, która może odbierać żądania HTTP, a deweloperzy powinni zastąpić ją adresem URL własnego serwera HTTP. W tym celu, dla wygody demonstracji, użyjemy publicznej strony przykładowej Webhook https://webhook.site/, otwierając tę stronę, otrzymamy adres URL Webhook, jak pokazano na obrazku: Skopiuj ten adres URL, aby móc go używać jako Webhook, a przykładowy adres to https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab. Następnie możemy ustawić pole callback_url na powyższy adres URL Webhook, a także wprowadzić odpowiednie parametry, jak pokazano w poniższym kodzie:
Po kliknięciu uruchomienia, można zauważyć, że natychmiast otrzymamy wynik, jak poniżej:
Po chwili możemy zaobserwować wyniki generowania obrazów na adresie URL Webhook, treść jest następująca:
Można zauważyć, że w wynikach znajduje się pole task_id, a pole data zawiera te same wyniki generowania obrazów, co w przypadku wywołania synchronicznego, a poprzez pole task_id można zrealizować powiązanie z zadaniem.

Obsługa błędów

Podczas wywoływania API, jeśli napotkasz błąd, API zwróci odpowiedni kod błędu i informacje. Na przykład:
  • 400 token_mismatched: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
  • 400 api_not_implemented: Złe żądanie, 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ń, przekroczono 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 API OpenAI Images Generations, aby wykorzystać funkcję generowania obrazów oficjalnego OpenAI DALL-E. Mamy nadzieję, że ten dokument pomoże Ci lepiej zintegrować i korzystać z tego API. W razie jakichkolwiek pytań, prosimy o kontakt z naszym zespołem wsparcia technicznego.