Proces aplikacji
Aby korzystać z API SeeDream Images Generation, najpierw przejdź do konsoli Ace Data Cloud, aby uzyskać swój API Token i zachować go do późniejszego użycia.
Jeśli nie jesteś jeszcze zalogowany lub zarejestrowany, zostaniesz automatycznie przekierowany na stronę logowania z zaproszeniem do rejestracji i zalogowania się, a po zakończeniu automatycznie wrócisz na bieżącą stronę.
Jeden API Token umożliwia wywoływanie wszystkich usług platformy, bez konieczności osobnego aplikowania dla każdej usługi. Przy pierwszej aplikacji otrzymasz bezpłatny limit do darmowego wypróbowania; gdy limit będzie niewystarczający, możesz doładować wspólne saldo w konsoli.
📘 Pełna dokumentacja: SeeDream Images Generation API →
Podstawowe użycie
Najpierw poznajmy podstawowy sposób użycia: wystarczy wprowadzić promptprompt, działanie generowania action oraz rozmiar obrazu size, aby uzyskać przetworzony wynik. Najpierw należy po prostu przekazać pole action, którego wartością jest generate, a następnie musimy również wprowadzić prompt. Szczegółowa zawartość jest następująca:

accept: format odpowiedzi, który chcesz otrzymać; tutaj należy wpisaćapplication/json, czyli format JSON.authorization: klucz do wywoływania API, po aplikacji można go bezpośrednio wybrać z listy rozwijanej.
prompt: prompt.model: model generowania, domyślniedoubao-seedream-5-0-lite-260128(SeeDream 5.0 Lite, najnowszy). Obsługujedoubao-seedream-5-0-pro-260628,doubao-seedream-5-0-lite-260128,doubao-seedream-4-5-251128,doubao-seedream-4-0-250828. Wśród nichdoubao-seedream-5-0-pro-260628(SeeDream 5.0 Pro) jest flagowym modelem pojedynczego obrazu, generuje wyłącznie pojedyncze obrazy i nie obsługuje grup obrazów (sequential_image_generation), przesyłania strumieniowego (stream) ani wyszukiwania internetowego (tools).modelmusi otrzymać pełny ciąg modelu (np.doubao-seedream-5-0-lite-260128); przekazanie skrótu, takiego jakdoubao-seedream-5.0-lite, zwróci 400.image: informacje o obrazie wejściowym, obsługuje URL lub kodowanie Base64.doubao-seedream-5-0-pro-260628obsługuje wejście z pojedynczym lub wieloma obrazami (maksymalnie 10),doubao-seedream-5-0-lite-260128,doubao-seedream-4-5-251128,doubao-seedream-4-0-250828obsługują wejście z pojedynczym lub wieloma obrazami.size: określa informacje o rozmiarze generowanego obrazu, obsługuje następujące dwie metody, których nie można mieszać. Metoda 1 | Określenie rozdzielczości generowanego obrazu oraz opisanie wpromptnaturalnym językiem proporcji szerokości do wysokości obrazu. Obsługiwane ustawienia wstępne różnią się zależnie od modelu:doubao-seedream-5-0-pro-260628obsługuje1K/1.5K/2K;doubao-seedream-5-0-lite-260128obsługuje2K/3K/4K;doubao-seedream-4-5-251128obsługuje tylko2K/4K;doubao-seedream-4-0-250828obsługuje1K/2K/4K. Metoda 2 | Określenie wartości pikseli szerokości i wysokości generowanego obrazu: domyślnie2048x2048; zakres całkowitej liczby pikseli oraz proporcji szerokości do wysokości zależy od modelu (na przykład zakres całkowitej liczby pikseli dla 5.0 Pro to [921600, 4624220], dolna granica całkowitej liczby pikseli dla 5.0 Lite / 4.5 wynosi 3,686,400, a dla 4.0 wynosi 921,600).sequential_image_generation: grupa obrazów: grupa wygenerowanych obrazów, których treści są powiązane na podstawie wprowadzonych przez Ciebie treści.doubao-seedream-5-0-lite-260128,doubao-seedream-4-5-251128,doubao-seedream-4-0-250828obsługują ten parametr, domyślniedisabled.stream: kontroluje, czy włączyć tryb wyjścia strumieniowego.doubao-seedream-5-0-lite-260128,doubao-seedream-4-5-251128,doubao-seedream-4-0-250828obsługują ten parametr, domyślnie jest tofalse.response_format: określa format zwracany dla generowanego obrazu. Domyślnie jest tourl, obsługiwany jest równieżb64_json.watermark: czy dodać znak wodny do generowanego obrazu. Domyślnie jest totrue.output_format: określa format pliku generowanego obrazu, obsługujejpeg(domyślny) ipng. Obsługują go wyłączniedoubao-seedream-5-0-pro-260628orazdoubao-seedream-5-0-lite-260128.tools: konfiguruje narzędzia, które ma wywoływać model; obecnie obsługiwane jestweb_search(wyszukiwanie internetowe). Obsługiwane wyłącznie przez Seedream 5.0 Lite.optimize_prompt_options: konfiguracja optymalizacji promptów. 5.0 Pro obsługujestandard/fast; 5.0 Lite oraz 4.5 obsługują wyłączniestandard; 4.0 obsługujestandard/fast.background: obsługiwane wyłącznie przez edycję pojedynczego obrazu 5.0 Pro.transparentwymaga wprowadzenia obrazu PNG z kanałem przezroczystości, aoutput_formatmusi mieć wartośćpng;opaqueoznacza zwykłe nieprzezroczyste tło.layer_decomposition: obsługiwane wyłącznie przez 5.0 Pro. Gdy ustawione natrue, należy wprowadzić jeden obraz PNG/JPEG; można nie przekazywaćprompt, aby automatycznie rozdzielić warstwy, lub określić elementy za pomocą języka naturalnego/<bbox>;sizeobsługujeauto/1K/1.5K/2K. Tego trybu nie można używać razem z grupami obrazów, przesyłaniem strumieniowym, wyszukiwaniem internetowym anibackground.callback_url: URL, na który należy przekazać wynik zwrotny.async: czy przetwarzać w trybie asynchronicznym. Gdy ustawione natrue, interfejs natychmiast zwracatask_id, bez konieczności podawaniacallback_url, a następnie wynik można uzyskać poprzez odpytywanie/seedream/tasks.

success, status zadania generowania wideo w tym momencie.task_id, ID zadania generowania wideo w tym momencie.trace_id, ID śledzenia generowania wideo w tym momencie.data, lista wyników zadania generowania obrazu w tym momencie.image_url, link do zadania generowania obrazu w tym momencie.prompt, słowo kluczowe.size: piksele generowanego obrazu
data w wyniku.
Ponadto, jeśli chcesz wygenerować odpowiedni kod integracyjny, możesz go bezpośrednio skopiować i wygenerować, na przykład kod CURL jest następujący:
Zadanie edycji obrazu
Jeśli chcesz edytować określony obraz, najpierw parametrimage musi przekazać link do obrazu, który wymaga edycji
- model: model używany w tym zadaniu edycji obrazu,
doubao-seedream-5-0-pro-260628,doubao-seedream-5-0-lite-260128,doubao-seedream-4-5-251128,doubao-seedream-4-0-250828wszystkie obsługują wprowadzanie obrazu. - image: prześlij obraz wymagający edycji, jeden lub wiele

Rozdzielanie warstw (Seedream 5.0 Pro)
Rozdzielanie warstw rozdziela jeden obraz wejściowy na 1 obraz tła i maksymalnie 16 niezależnie edytowalnych przezroczystych warstw PNG. Poniższe żądanie pozwala modelowi automatycznie rozpoznać główne elementy; jeśli chcesz określić elementy, możesz dodaćprompt, a także użyć znormalizowanych współrzędnych <bbox> w słowie kluczowym.
data są uporządkowane od dołu do góry według z_index. z_index obrazu tła wynosi 0; warstwy zawierają również name, description oraz bounding_box.absolute/normalized. Podczas ponownego składania przy użyciu współrzędnych bezwzględnych przeskaluj warstwę do [right-left, bottom-top], umieść ją w [left, top], a następnie nakładaj według rosnącego z_index. Gdy generowanie dowolnej warstwy nie powiedzie się, całe rozdzielanie kończy się niepowodzeniem.
Wyjście strumieniowe
Gdy Lite/4.x ma ustawionestream: true, nagłówek żądania używa accept: application/x-ndjson. Interfejs zwraca wiersz po wierszu image_generation.partial_succeeded lub image_generation.partial_failed, a na końcu zwraca jedyne zdarzenie image_generation.completed oraz końcowe usage; tylko zdarzenie ukończenia powoduje jednokrotne naliczenie opłaty. Tryb strumieniowy nie może być używany razem z async lub callback_url.
Asynchroniczne wywołanie zwrotne
Ponieważ czas generowania przez SeeDream Images Generation API jest względnie długi, około 1–2 minut, jeśli API przez długi czas nie odpowiada, żądanie HTTP będzie stale utrzymywać połączenie, co prowadzi do dodatkowego zużycia zasobów systemowych, dlatego to API zapewnia również obsługę asynchronicznych wywołań zwrotnych. Ogólny proces jest następujący: gdy klient inicjuje żądanie, dodatkowo określa polecallback_url, po wysłaniu przez klienta żądania API, API natychmiast zwróci wynik zawierający informacje o polu task_id, reprezentującym bieżące ID zadania. Po ukończeniu zadania wynik wygenerowanego obrazu zostanie wysłany w formie POST JSON do callback_url określonego przez klienta, co również obejmuje pole task_id, dzięki czemu wyniki zadania mogą zostać powiązane przez ID.
Jeśli nie masz publicznego adresu dostępnego do wywołania zwrotnego, możesz również nie określać callback_url, lecz ustawić pole async w żądaniu na true. W tym czasie interfejs również natychmiast zwróci task_id, ale nie wyśle wyniku, musisz użyć tego task_id, aby wywołać interfejs /seedream/tasks i cyklicznie odpytywać status zadania w celu uzyskania końcowego wyniku.
Poniżej dowiemy się na przykładzie, jak konkretnie to zrobić.
Kliknij uruchom, można zauważyć, że natychmiast otrzymasz wynik, jak poniżej:
task_id, pozostałe pola są podobne do tych powyżej, a za pomocą tego pola można zrealizować powiązanie zadania.
Obsługa błędów
Podczas wywoływania API, jeśli wystąpi błąd, API zwróci odpowiedni kod błędu i informację. Na przykład:400 token_mismatched:Nieprawidłowe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.400 api_not_implemented:Nieprawidłowe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.401 invalid_token:Brak autoryzacji, nieprawidłowy lub brakujący token autoryzacyjny.429 too_many_requests:Zbyt wiele żądań, przekroczono limit szybkości.500 api_error:Wewnętrzny błąd serwera, coś poszło nie tak na serwerze.

