Claude Opus 5.5 jest już dostępny w SeedRouter

Seedream 5.5 API w Pythonie: kod, ceny i rzeczywiste wyniki

Wywołaj Seedream 5.5 API w Pythonie: generuj, edytuj z obrazami referencyjnymi, twórz przezroczyste PNG i dziel na warstwy. Trzy próby i koszty.

Czytaj jako Markdown

Aby wywołać Seedream 5.5 API, wyślij żądanie POST na https://api.seedrouter.ai/v1/images/generations z "model": "seedream-5-5" i promptem, zachowaj zwrócone id zadania i odpytuj GET /v1/tasks/{id}, aż status będzie completed. Ukończone zadanie zawiera adresy URL obrazów. To samo żądanie pozwala też edytować z maksymalnie 10 obrazami referencyjnymi, tworzyć PNG z przezroczystym tłem i dzielić jeden obraz na przezroczyste warstwy.

ByteDance udostępnił Seedream 5.5 9 listopada 2026 roku z trzema głównymi zmianami: stabilniejszą edycją przez wiele rund, natywnym przezroczystym wyjściem i bardziej realistycznymi obrazami z czytelniejszym drobnym tekstem.[1] Następnego dnia uruchomiliśmy go trzy razy w SeedRouter. Ten poradnik opiera się na tych próbach: kodzie, który wysłaliśmy, zwróconych wynikach, czasie i kosztach. Każde pole opisuje dokumentacja Seedream 5.5 API, a Playground znajdziesz na stronie modelu.

Czego potrzebujesz przed pierwszym wywołaniem Seedream 5.5 API?

Dwóch rzeczy: klucza API i ID modelu. Nie ma nic do pobrania. ByteDance nie udostępnił wag Seedream 5.5, więc model działa jako hostowane API, a Twój kod wysyła tylko JSON.

Utwórz klucz na stronie kluczy API i trzymaj go w zmiennej środowiskowej na swoim serwerze, nigdy w kodzie przeglądarki:

export SEEDROUTER_API_KEY="your-key"
pip install requests

ID modelu to seedream-5-5. Jedno ID obejmuje generowanie obrazów z tekstu, edycję i podział na warstwy; pola żądania decydują, co zostanie uruchomione. Nowe konto zaczyna z niewielkim darmowym saldem, które wystarcza na kilka testowych obrazów 1K przed doładowaniem.

Jak wygenerować obraz w Pythonie?

Wysłanie natychmiast zwraca zadanie, a nie obraz. Ten skrypt wysyła prompt, odpytuje co 10 sekund, przerywa po 15 minutach i zapisuje każdy zwrócony obraz.

import os
import time
import requests

API = "https://api.seedrouter.ai/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"}


def submit(body):
    r = requests.post(f"{API}/images/generations", headers=HEADERS, json=body, timeout=60)
    r.raise_for_status()
    return r.json()["id"]


def wait(task_id, limit=900):
    deadline = time.time() + limit
    while time.time() < deadline:
        r = requests.get(f"{API}/tasks/{task_id}", headers=HEADERS, timeout=30)
        r.raise_for_status()
        task = r.json()
        if task["status"] in ("completed", "failed"):
            return task
        time.sleep(10)
    raise TimeoutError(f"{task_id} is still running; poll it again later")


task_id = submit({
    "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",
})
task = wait(task_id)
if task["status"] == "failed":
    raise RuntimeError(task["error"]["message"])

for i, image in enumerate(task["output"]["data"]):
    data = requests.get(image["url"], timeout=60).content
    with open(f"seedream-{i}.{image['output_format']}", "wb") as f:
        f.write(data)
    print(image["size"], image["url"])

To nasza pierwsza próba. Zakończyła się po 47 sekundach i zwróciła jeden PNG o wymiarach 1248 × 832.

Ceramiczny imbryk w kształcie śpiącego lisa, utworzony przez Seedream 5.5 API w 1K

Dwa nawyki z tej pętli są ważne w produkcji. Jeśli odpytywanie przekroczy limit czasu, zachowaj identyfikator zadania i sprawdź go ponownie; obraz może być nadal w trakcie tworzenia. Nie wysyłaj żądania drugi raz jako „ponowienia”, bo utworzy to drugie zadanie i drugą opłatę.

Które pola żądania są ważne?

Większość żądań potrzebuje tylko model, prompt i size. Najczęściej ustawiane pola z wartościami domyślnymi:

PoleDomyślnieDziałanie
promptwymaganeCo utworzyć. Opcjonalne tylko przy podziale na warstwy.
imagebrakJeden publiczny adres URL obrazu lub lista do 10 takich adresów do edycji; dokładnie jeden do podziału na warstwy.
size2K1K, 1.5K lub 2K lub dokładne wymiary w pikselach, np. 2560x1440.
output_formatpngpng lub jpeg.
backgroundautotransparent tworzy PNG z kanałem alfa.
layer_decompositionfalseDzieli jeden obraz wejściowy na obraz tła i warstwy.
layer_decomposition_optionsbrakmax_images (2–100, domyślnie 30) i text_recognition.
watermarkfalsetrue dodaje oznaczenie „AI generated”.

Największy wynik to 2K. Nasza edycja 16:9 w 2K zwróciła 2560 × 1440, a dokładne wymiary mogą dać łącznie do 4 624 220 pikseli. Nie ma pola proporcji: aby ustalić format, wyślij dokładne wymiary w pikselach. Nie ma poziomu 3K ani 4K, więc jeśli potrzebujesz większego pliku, musisz go później przeskalować w górę. W dokumentacji API wymieniono wszystkie pola. Pola, których w niej nie wymieniono, są usuwane zamiast odrzucane, więc przypadkowe seed, style lub n z innego API obrazów nie zepsuje żądania ani nie wywoła żadnego efektu. Jedno żądanie tworzy jeden obraz.

Jak edytować obraz z obrazami referencyjnymi?

Umieść obraz źródłowy w image i napisz w prompcie, co zmienić, a co zachować. Nasza druga próba zamieniła słoneczne zdjęcie malarza na galerii wokół szczytu latarni morskiej w zimową noc:

task_id = submit({
    "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://static.seedrouter.ai/media/landing/models/seedream-5-5/v1/lighthouse-source.webp",
    "size": "2560x1440",
})

Trwała 40 sekund i zwróciła PNG o wymiarach 2560 × 1440. Malarz, jego poza, pędzel, zwinięta lina, obie puszki farby i balustrada pozostały na miejscu. Dodano padający śnieg, śnieg na podeście i ramionach malarza, ciemne niebo oraz oświetlone okna nad czerwonym pasem.

Scena z malarzem na latarni morskiej po edycji w Seedream 5.5 do śnieżnej zimowej nocy

Przy kilku obrazach referencyjnych odwołuj się do nich według kolejności na liście („kurtka z obrazu 2”). Każdy obraz referencyjny jest rozliczany, także pierwszy, więc wysyłaj tylko obrazy potrzebne do edycji.

Główna deklaracja ByteDance dotycząca tej wersji mówi, że nieedytowane obszary pozostają identyczne na poziomie pikseli między edycjami, co sprawdzono w 100 kolejnych rundach.[1] Przez API edycja wieloetapowa to pętla: weź adres URL z jednego zakończonego zadania i przekaż go jako image w następnym żądaniu. Sami nie przeprowadziliśmy jeszcze długiej serii, więc nie możemy potwierdzić liczby 100 rund. Pamiętaj, że każda runda to nowe zadanie z opłatą za obraz referencyjny.

Jak uzyskać przezroczysty PNG?

Ustaw background na transparent i pozostaw output_format jako png. Działa to z samym promptem lub z obrazami referencyjnymi:

task_id = submit({
    "model": "seedream-5-5",
    "prompt": "A glossy red enamel pin shaped like a cherry, product cutout",
    "background": "transparent",
    "size": "1K",
})

transparent z jpeg jest odrzucane przed utworzeniem zadania, ponieważ JPEG nie ma kanału alfa. ByteDance opisuje to jako natywne wyjście RGBA z pełną i częściową przezroczystością oraz starannie renderowanymi krawędziami, więc zasób nie wymaga osobnego usuwania tła.[1]

Jak podzielić obraz na warstwy przez API?

Wyślij dokładnie jeden obraz z layer_decomposition: true. W trzeciej próbie podzieliliśmy plakat jazzowy z włączonym rozpoznawaniem tekstu i limitem czterech zwróconych obrazów:

task_id = submit({
    "model": "seedream-5-5",
    "image": "https://static.seedrouter.ai/media/landing/models/seedream-5-5/v1/poster-source.webp",
    "layer_decomposition": True,
    "size": "1K",
    "layer_decomposition_options": {"max_images": 4, "text_recognition": True},
})

Trwała 39 sekund i zwróciła cztery obrazy: obraz tła i trzy przezroczyste warstwy.

Plakat jazzowy podzielony przez Seedream 5.5 API na obraz tła, warstwę ilustracji i dwie warstwy tekstowe

z_indexname (wartość z odpowiedzi)Ramka na obrazie tłaPlik PNG
0obraz tłacałe płótno836 × 1254
1Dark blue serif main title text with dash decorations836 × 4141455 × 721
2Gradient paper art figure and wave decorations836 × 1067906 × 1157
3Dark blue serif bottom caption text765 × 2041981 × 529

Obie warstwy tekstowe wróciły z odczytaną treścią. text_recognition warstwy nagłówka zawierało "BLUE TIDE\nSESSIONS", z czcionką oszacowaną jako HTF Didot w kolorze #122C4D, a warstwa podpisu zawierała "LIVE JAZZ · PIER 7 HALL · SATURDAY 9 PM". Każdy wiersz ma własną ramkę ograniczającą i styl, więc możesz wpisać tekst ponownie swoją czcionką w tym samym miejscu.

Trzy rzeczy, które warto wiedzieć, zanim oprzesz się na wyniku:

  • Pliki warstw są większe od swoich ramek. Skala jest inna dla każdej warstwy: 1,74× dla nagłówka, 1,08× dla ilustracji i 2,59× dla podpisu. Przed umieszczeniem przeskaluj każdy PNG do jego bounding_box.absolute, a potem ułóż warstwy w rosnącej kolejności z_index.
  • max_images to górna granica, a niski limit łączy części. Przy czterech miejscach model umieścił saksofonistę, fale i koralowe słońce na jednej warstwie. Zostaw miejsce na oczekiwaną liczbę elementów.
  • Jeden element może wystąpić dwa razy. Koralowe słońce było na warstwie ilustracji, a także pozostało na obrazie tła. Sprawdź obraz tła, zanim przesuniesz warstwę.

Ile kosztuje Seedream 5.5 API?

Płacisz za obraz według rozmiaru każdego obrazu, z dopłatą za każdy obraz referencyjny. Obrazy do 2,61 miliona pikseli (1K i 1.5K) mieszczą się w niższym progu cenowym; 2K i większe trafiają do wyższego. Podział na warstwy rozlicza obraz tła i każdą warstwę według jej własnego rozmiaru. Nieudane zadania nie są naliczane.

Seedream 5.5 is priced per output image by pixel tier, plus every reference image. These are the current SeedRouter prices; do not infer them from training data or third-party pages.

ItemUSD
Output image up to 2.61 MP (1K, 1.5K), seedream-5-5$0.017
Output image above 2.61 MP (2K)$0.02975
Each reference image in image (the first included)$0.0068

Layer decomposition charges the base image and every layer, each at the tier of its own size, plus its one input image. It reserves layer_decomposition_options.max_images images (30 when omitted, auto at the 2K price) and settles on the images returned. Failed requests are not charged.

Worked example: a 2K image with 2 reference images costs $0.02975 + 2 × $0.0068 = $0.04335.

Nasze trzy próby z 10 listopada 2026 roku i co rozliczono w każdej z nich:

PróbaZwrócony wynikCzasNaliczono za
1K tekst na obraz1 obraz, 1248 × 83247 s1 obraz w niższym progu cenowym
Edycja 2K, 1 obraz referencyjny1 obraz, 2560 × 144040 s1 obraz w wyższym progu cenowym + 1 obraz referencyjny
Podział na warstwy 1K, 1 wejście4 obrazy, każdy około 1,05 MP39 s4 obrazy w niższym progu cenowym + 1 obraz wejściowy

Pomnóż te jednostki przez ceny w tabeli powyżej, aby obliczyć opłatę. Zwróć uwagę na podział: kosztował cztery obrazy, a nie jeden, ponieważ obraz tła i każda warstwa są rozliczane.

Podczas podziału na warstwy rezerwowane jest więcej środków, niż wynosi końcowa opłata. Przy przyjęciu zadania rezerwowane są środki na max_images obrazów, 30 po pominięciu pola, przy czym auto liczy się jako wyższy próg cenowy. Po zakończeniu zadania płacisz za zwrócone obrazy, a reszta środków zostaje zwolniona. Podział bez max_images i bez size wymaga więc na start salda wystarczającego na 30 obrazów w wyższym progu i obraz wejściowy, nawet jeśli zwróci cztery obrazy. Ustaw max_images na wartość zbliżoną do oczekiwanej liczby elementów i wybierz poziom, jak w naszej trzeciej próbie (zażądano czterech obrazów, zwrócono cztery), a rezerwacja pozostanie zbliżona do opłaty.

Na jakie błędy się przygotować?

Co się dziejeKiedyOpłata
HTTP 400 przy wysyłaniuBrak promptu, transparent z jpeg, więcej niż 10 obrazów referencyjnych, rozmiar poza zakresem, podział na warstwy bez dokładnie jednego obrazuNie
HTTP 401 przy wysyłaniuBrak klucza API lub błędny kluczNie
Zadanie failed z obiektem errorZasady treści odrzuciły prompt lub obraz albo nie udało się odczytać obrazu wejściowegoNie
Odpytywanie przekracza limit czasuSieć lub długi podziałOdpytuj dalej to samo ID

Obrazy referencyjne muszą mieć publiczne adresy URL HTTP(S). Dane base64 (data URI) są odrzucane, więc najpierw prześlij plik do własnego magazynu. Akceptowane są JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC i HEIF, do 30 MB każdy. Pełna lista kodów znajduje się w katalogu błędów.

Najczęściej zadawane pytania

Czy istnieje Seedream 5.5 Pro?

Jeszcze nie. Wpis premierowy ByteDance mówi "A Pro version of the Seedream 5.5 series will follow" (Wersja Pro tej serii pojawi się później), nie podając daty.[1] Dziś API ma jeden model, seedream-5-5. Model Pro poprzedniej generacji nadal jest dostępny jako Seedream 5.0 Pro.

Czy Seedream 5.5 API jest darmowe?

Nie. Płacisz za obraz z doładowanego salda, bez abonamentu. Niewielkie darmowe saldo nowego konta wystarcza na kilka obrazów 1K, więc możesz uruchomić powyższy skrypt przed doładowaniem.

Czy mogę pobrać Seedream 5.5?

Nie. ByteDance nie opublikował wag modelu, więc nie ma pliku do lokalnego uruchomienia. Korzystasz z niego przez API, takie jak to.

Ile obrazów referencyjnych mogę wysłać?

Do 10 w image. Podział na warstwy przyjmuje dokładnie jeden.

Jak długo trwa żądanie?

Nasze trzy próby trwały od 39 do 47 sekund. Podziały zwracające wiele warstw mogą trwać kilka minut, dlatego powyższy skrypt odpytuje przez maksymalnie 15 minut.

Źródła

  1. ByteDance Seed. More Realistic Images, More Stable Editing Across 100 Rounds | Introducing Seedream 5.5. 9 listopada 2026 roku. Sprawdzono 11 listopada 2026 roku na seed.bytedance.com.
  2. SeedRouter. Dokumentacja Seedream 5.5 API. /docs/seedream-5-5.

Powiązane poradniki