Image
Seedream 5.5
Wywołuj Seedream 5.5 do generowania z tekstu, edycji z maksymalnie 10 obrazami referencyjnymi, przezroczystego wyjścia i podziału na warstwy z rozpoznawaniem tekstu, rozliczanych za obraz i dostarczanych przez zadanie.
Seedream 5.5 to model obrazów od ByteDance. Jedno żądanie tworzy jeden obraz z promptu lub promptu z maksymalnie 10 obrazami referencyjnymi albo dzieli jeden obraz na obraz tła i przezroczyste warstwy, opcjonalnie z odczytanym tekstem każdej warstwy tekstowej. Wyślij żądanie, zachowaj zwrócony identyfikator zadania i odczytaj gotowe obrazy z tego zadania. Obrazy referencyjne przekazujesz jako adresy URL.
ID modeli
| ID modelu | Dane wejściowe | Rozmiar wyjściowy | Obrazy na żądanie |
|---|---|---|---|
seedream-5-5 | tekst, 0–10 obrazów | 1K, 1.5K, 2K lub WIDTHxHEIGHT | 1 lub 2–100 przy podziale na warstwy (wliczając obraz tła) |
Aktualne ceny znajdziesz na stronie modelu.
Krótki przykład
curl https://api.seedrouter.ai/v1/images/generations \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-5-5",
"prompt": "A ceramic teapot shaped like a sleeping fox on a linen tablecloth, soft morning window light, shallow depth of field. No text.",
"size": "1K"
}'Punkt końcowy
POST https://api.seedrouter.ai/v1/images/generations| Nagłówek | Wartość |
|---|---|
| Authorization | Bearer YOUR_API_KEY |
| Content-Type | application/json |
Odpowiedź to zadanie ({"id": "task_...", "status": "processing"}), a nie gotowy obraz. Wynik odczytasz, odpytując GET /v1/tasks/{task_id}. Klucze API trzymaj w kodzie po stronie serwera. Obrazy referencyjne i podział na warstwy przekazujesz w tym samym żądaniu przez image; /v1/images/edits nie jest używane dla tego modelu i zwraca 400.
Parametry
| Pole | Typ | Domyślnie | Uwagi |
|---|---|---|---|
model | string | wymagane | seedream-5-5 |
prompt | string | wymagane | Opisuje obraz do utworzenia. Opcjonalne z layer_decomposition: wskaż elementy do wydzielenia lub pomiń, a model sam znajdzie obiekty, tekst i tło. |
image | adres URL lub lista adresów URL | brak | Jeden publiczny adres URL obrazu lub lista do 10 takich adresów. Bez niego żądanie działa w trybie tekst na obraz. Z layer_decomposition dokładnie jeden. Każdy obraz referencyjny jest rozliczany. |
size | string | 2K | Poziom 1K, 1.5K lub 2K lub dokładne wymiary w pikselach WIDTHxHEIGHT — zobacz Rozmiar wyjściowy. Z layer_decomposition: tylko auto (domyślnie), 1K, 1.5K lub 2K. |
output_format | enum | png | png lub jpeg. Z layer_decomposition ustawia tylko obraz tła; warstwy są zawsze w PNG. |
background | enum | auto | auto, opaque lub transparent. transparent działa z obrazami referencyjnymi lub bez nich i wymaga wyjścia png. Przy layer_decomposition pomiń to pole, także z wartością auto. |
layer_decomposition | boolean | false | Dzieli jeden obraz wejściowy na obraz tła i przezroczyste warstwy PNG. |
layer_decomposition_options.max_images | integer | 30 | Tylko z layer_decomposition. 2–100, wliczając obraz tła. To górna granica: model może zwrócić mniej. |
layer_decomposition_options.text_recognition | boolean | false | Tylko z layer_decomposition. Dodaje rozpoznany tekst do zwykłych warstw tekstowych — zobacz Rozpoznawanie tekstu. |
optimize_prompt_options.mode | enum | standard | Tylko standard. Optymalizacja promptu jest zawsze włączona i nie można jej wyłączyć. |
watermark | boolean | false | true dodaje oznaczenie „AI generated”. |
content_filter | boolean | true | Dostępne tylko przez API. Playground zawsze pozostawia filtr włączony. |
Pola spoza tej listy są usuwane przed przekazaniem żądania dalej; nigdy nie powodują błędu ani nie zmieniają wyniku. n, stream, seed i response_format nie są dostępne: każde żądanie zwraca jeden obraz lub przy layer_decomposition do max_images. callback_url nie jest dostępne; zamiast tego odpytuj zadanie.
Rozmiar wyjściowy
| Forma | Przykład | Zasady |
|---|---|---|
| Poziom | "size": "2K" | 1K, 1.5K lub 2K. Opisz kształt w prompt; model dobiera na tej podstawie proporcje obrazu. |
| Dokładne wymiary w pikselach | "size": "2560x1440" | Łącznie od 921 600 do 4 624 220 pikseli; szerokość / wysokość od 1/16 do 16. |
Nie ma poziomu 3K ani 4K, a rozmiaru nie można podać w formie proporcji: dla stałego kadru 16:9 w 2K wyślij 2560x1440. 1K i 1.5K kosztują tyle samo; 2K i każdy rozmiar powyżej 2,61 miliona pikseli kosztują więcej (zobacz Czynniki wpływające na koszt).
Obrazy referencyjne
Przekaż jeden obraz, aby go edytować, lub kilka, aby je połączyć, i napisz w prompt, co zachować, a co zmienić. Odwołuj się do nich według kolejności („kurtka z obrazu 1”).
{
"model": "seedream-5-5",
"prompt": "Turn this scene into a snowy winter night with warm light from the lighthouse windows, keep the composition",
"image": "https://example.com/lighthouse.jpg",
"size": "2560x1440"
}Przezroczyste tło
Ustaw background: "transparent", aby uzyskać PNG z przezroczystym tłem, z samego promptu lub z obrazów referencyjnych:
{
"model": "seedream-5-5",
"prompt": "A glossy red enamel pin shaped like a cherry, product cutout",
"background": "transparent",
"output_format": "png",
"size": "1K"
}Podział na warstwy
Wyślij dokładnie jeden obraz z layer_decomposition: true. Zadanie zwraca najpierw obraz tła, a następnie każdą warstwę jako przezroczysty PNG.
{
"model": "seedream-5-5",
"image": "https://example.com/poster.jpg",
"layer_decomposition": true,
"size": "1K",
"layer_decomposition_options": { "max_images": 4, "text_recognition": true }
}Każda warstwa zawiera z_index (obraz tła ma 0; wyższe liczby oznaczają warstwy powyżej), background, a gdy model je udostępni, także name, description i bounding_box. bounding_box.absolute to [left, top, right, bottom] w pikselach obrazu tła; bounding_box.normalized to ta sama ramka przeskalowana do 0–1000. Pliki warstw są renderowane w wybranym poziomie, więc ich wymiary w pikselach mogą różnić się od ramki: aby odtworzyć obraz, przeskaluj każdą warstwę do jej ramki i umieść ją na obrazie tła w rosnącej kolejności z_index.
Poziom ustawia rozmiar obrazu tła i każdej warstwy. Przy auto wynik dopasowuje się do obrazu wejściowego, powiększony do co najmniej 1K i pomniejszony do najwyżej 2K.
Rozpoznawanie tekstu
Przy layer_decomposition_options.text_recognition: true warstwa ze zwykłym tekstem drukowanym zawiera też text_recognition: pełny text (wiersze połączone przez \n) i lines, każdy z własnym bounding_box oraz runs fragmentów tekstu o różnym formatowaniu. style fragmentu zawiera similar_font_family, foreground_color (#RRGGBB) i cechy bold, italic, underline, strikethrough, shadow oraz translucent. Czcionki i cechy są oszacowaniem modelu. Artystyczne lub odręczne napisy nie zwracają tekstu, a prompt wysłany z podziałem może go wyłączyć, więc traktuj to pole jako opcjonalne.
Dane wejściowe multimediów
Każdy obraz referencyjny to publiczny adres URL HTTP(S). Dane base64 (data URI) nie są przyjmowane: prześlij plik do własnego magazynu i przekaż jego adres URL. Akceptowane formaty to JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC i HEIF, do 30 MB każdy i łącznie najwyżej 36 000 000 pikseli. AVIF i JP2 nie są obsługiwane; zadanie, które nie może odczytać danych wejściowych, kończy się niepowodzeniem i nie jest naliczane.
Czynniki wpływające na koszt
Aktualne stawki znajdziesz w sekcji cen modelu. Seedream 5.5 jest rozliczany za obraz wyjściowy według progu liczby pikseli, z dopłatą za każdy obraz referencyjny:
cost = Σ each returned image's price for its own tier + reference images × reference price- Niższy próg cenowy obejmuje obrazy do 2,61 miliona pikseli (
1Ki1.5K); większe trafiają do wyższego progu. - Każdy obraz referencyjny jest rozliczany, także pierwszy. Podział na warstwy rozlicza jeden obraz wejściowy.
- Podział na warstwy rozlicza obraz tła i każdą warstwę, każde według progu cenowego właściwego dla jego rozmiaru.
- Kwota zarezerwowana przy przyjęciu zadania pokrywa największy wynik: jeden obraz w żądanym progu cenowym lub
max_imagesobrazów (30 po pominięciu pola) przy podziale na warstwy, przy czymautoliczy się jako wyższy próg. Zadanie jest następnie rozliczane za faktycznie zwrócone obrazy, a różnica zostaje zwolniona.
Ostateczne opłaty zobaczysz w historii zużycia swojego konta. Nieudane zadania nie są naliczane.
Schemat odpowiedzi
Wysłanie zwraca zadanie:
{"id": "task_...", "model": "seedream-5-5", "status": "processing", "created_at": 1794323757}Pobieranie zadania
GET https://api.seedrouter.ai/v1/tasks/{task_id}Odpytuj co 10–20 sekund, aż status przyjmie wartość completed lub failed. Przekroczenie limitu czasu sieci podczas odpytywania nie oznacza, że generowanie się nie powiodło: zachowaj identyfikator zadania i wznów sprawdzanie. Nie twórz kolejnego zadania, aby sprawdzić postęp.
Zadanie zakończone
{
"id": "task_...",
"model": "seedream-5-5",
"status": "completed",
"created_at": 1794323757,
"finished_at": 1794323804,
"output": {
"data": [
{
"url": "https://static.seedrouter.ai/media/tasks/task_example/0.png",
"size": "1248x832",
"output_format": "png",
"background": "opaque"
}
]
}
}Zadanie podziału na warstwy wylicza najpierw obraz tła, a potem każdą warstwę. To rzeczywisty podział plakatu z włączonym rozpoznawaniem tekstu; pokazano obraz tła i pierwszą z trzech warstw:
{
"data": [
{ "url": "https://static.seedrouter.ai/media/tasks/task_example/0.png", "size": "836x1254", "output_format": "png", "background": "opaque", "z_index": 0 },
{
"url": "https://static.seedrouter.ai/media/tasks/task_example/1.png",
"size": "1455x721",
"output_format": "png",
"background": "transparent",
"z_index": 1,
"name": "Dark blue serif main title text with dash decorations",
"description": "Dark blue serif main title text reading \"BLUE TIDE SESSIONS\", with short horizontal dash decorations on its left and right sides.",
"bounding_box": { "absolute": [0, 0, 836, 414], "normalized": [0, 0, 1000, 330] },
"text_recognition": {
"text": "BLUE TIDE\nSESSIONS",
"lines": [
{
"bounding_box": { "absolute": [146, 69, 694, 196], "normalized": [175, 55, 830, 156] },
"runs": [
{
"text": "BLUE TIDE",
"style": { "similar_font_family": "HTF Didot", "foreground_color": "#122C4D", "bold": false, "italic": false, "underline": false, "strikethrough": false, "shadow": false, "translucent": false }
}
]
},
{
"bounding_box": { "absolute": [175, 168, 664, 300], "normalized": [209, 134, 794, 239] },
"runs": [
{
"text": "SESSIONS",
"style": { "similar_font_family": "HTF Didot", "foreground_color": "#122C4D", "bold": false, "italic": false, "underline": false, "strikethrough": false, "shadow": false, "translucent": false }
}
]
}
]
}
}
]
}W naszych testach obraz 1K powstał w 47 sekund, edycja 2K z jednym obrazem referencyjnym zajęła 40 sekund, a podział na warstwy w 1K, który zwrócił cztery obrazy, 39 sekund. Większe podziały mogą trwać kilka minut.
Błędy
Żądania odrzucone przed utworzeniem zadania zwracają błąd HTTP wraz z obiektem error i nie są naliczane. Zadanie, które zawiodło po przyjęciu, przy odpytaniu zwraca HTTP 200 z status: "failed" i obiektem error.
Kody, statusy HTTP i wskazówki dotyczące ponawiania znajdziesz we wspólnym katalogu błędów.
{
"id": "task_...",
"model": "seedream-5-5",
"status": "failed",
"error": {
"code": 60001,
"message": "The request was rejected by the content policy. Please revise the prompt or input images."
}
}Jeśli limit czasu został przekroczony przy samym wysyłaniu, przed ponownym wysłaniem sprawdź swoje zadania: pierwsze żądanie mogło już zostać przyjęte.
Wskazówki
- Zacznij od
1Klub1.5Kprzy kolejnych próbach;1.5Kkosztuje tyle samo co1K. - Użyj dokładnych wymiarów w pikselach, aby ustalić format, np.
2560x1440dla 16:9 w 2K. - Każdy obraz referencyjny kosztuje: wysyłaj tylko obrazy potrzebne do edycji.
- Przy podziale na warstwy ustaw
max_imagesblisko oczekiwanej liczby elementów; od tego zależy rezerwacja. - Jeśli zależy Ci głównie na tekście, pomiń
promptprzy podziale z włączonymtext_recognition.
