Image
Seedream 5.5
Seedream 5.5 für Text zu Bild, Bearbeitung mit bis zu 10 Referenzbildern, transparente Ausgabe und Aufteilung in Ebenen mit Texterkennung aufrufen – pro Bild bezahlt und als Aufgabe geliefert.
Seedream 5.5 ist das Bildmodell von ByteDance. Eine Anfrage erstellt ein Bild aus einem Prompt oder einem Prompt mit bis zu 10 Referenzbildern oder teilt ein Bild in ein Hintergrundbild und transparente Ebenen auf, auf Wunsch mit dem ausgelesenen Text jeder Textebene. Sende die Anfrage, behalte die zurückgegebene Aufgaben-ID und lies die fertigen Bilder aus der Aufgabe aus. Referenzbilder werden als URLs übergeben.
Modell-IDs
| Modell-ID | Eingaben | Ausgabegröße | Bilder pro Anfrage |
|---|---|---|---|
seedream-5-5 | Text, 0–10 Bilder | 1K, 1.5K, 2K oder WIDTHxHEIGHT | 1 oder 2–100 bei der Aufteilung in Ebenen (Hintergrundbild eingeschlossen) |
Aktuelle Preise findest du auf der Modellseite.
Kurzbeispiel
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"
}'Endpunkt
POST https://api.seedrouter.ai/v1/images/generations| Header | Wert |
|---|---|
| Authorization | Bearer YOUR_API_KEY |
| Content-Type | application/json |
Die Antwort ist eine Aufgabe ({"id": "task_...", "status": "processing"}), nicht das fertige Bild. Frage GET /v1/tasks/{task_id} für das Ergebnis ab. Bewahre API-Schlüssel im serverseitigen Code auf. Referenzbilder und die Aufteilung in Ebenen werden in derselben Anfrage über image übergeben; /v1/images/edits wird für dieses Modell nicht verwendet und gibt 400 zurück.
Parameter
| Feld | Typ | Standard | Hinweise |
|---|---|---|---|
model | String | erforderlich | seedream-5-5 |
prompt | String | erforderlich | Beschreibt das zu erstellende Bild. Mit layer_decomposition optional: Nenne die zu trennenden Elemente oder lasse das Feld weg, und das Modell findet Motive, Text und Hintergrund selbst. |
image | URL oder URL-Liste | keine | Eine öffentliche Bild-URL oder eine Liste mit bis zu 10. Ohne sie ist die Anfrage Text zu Bild. Mit layer_decomposition genau eine. Jedes Referenzbild wird berechnet. |
size | String | 2K | Eine Stufe 1K, 1.5K oder 2K oder exakte Pixelmaße WIDTHxHEIGHT – siehe Ausgabegröße. Mit layer_decomposition: nur auto (Standard), 1K, 1.5K oder 2K. |
output_format | Enum | png | png oder jpeg. Mit layer_decomposition wird nur das Hintergrundbild festgelegt; die Ebenen sind immer PNG. |
background | Enum | auto | auto, opaque oder transparent. transparent funktioniert mit oder ohne Referenzbilder und erfordert png als Ausgabeformat. Mit layer_decomposition weglassen, auch auto. |
layer_decomposition | Boolean | false | Teilt das eine Eingabebild in ein Hintergrundbild und transparente PNG-Ebenen auf. |
layer_decomposition_options.max_images | Integer | 30 | Nur mit layer_decomposition. 2–100, das Hintergrundbild eingeschlossen. Eine Obergrenze: Das Modell kann weniger zurückgeben. |
layer_decomposition_options.text_recognition | Boolean | false | Nur mit layer_decomposition. Ergänzt reguläre Textebenen um den erkannten Text – siehe Texterkennung. |
optimize_prompt_options.mode | Enum | standard | Nur standard. Die Prompt-Optimierung ist immer aktiv und lässt sich nicht ausschalten. |
watermark | Boolean | false | true fügt eine Kennzeichnung „AI generated“ hinzu. |
content_filter | Boolean | true | Nur über die API verfügbar. Im Playground immer an. |
Felder außerhalb dieser Liste werden vor dem Weiterleiten der Anfrage entfernt; sie verursachen nie einen Fehler und verändern die Ausgabe nicht. n, stream, seed und response_format sind nicht verfügbar: Jede Anfrage liefert ein Bild oder mit layer_decomposition bis zu max_images. callback_url ist nicht verfügbar; frage stattdessen die Aufgabe ab.
Ausgabegröße
| Form | Beispiel | Regeln |
|---|---|---|
| Stufe | "size": "2K" | 1K, 1.5K oder 2K. Beschreibe die Form in prompt; das Modell wählt daraus das Seitenverhältnis. |
| Exakte Pixelmaße | "size": "2560x1440" | Insgesamt 921.600 bis 4.624.220 Pixel; Breite / Höhe zwischen 1/16 und 16. |
Es gibt keine 3K- oder 4K-Stufe, und die Größe lässt sich nicht als Seitenverhältnis angeben: Sende für einen festen 16:9-Rahmen mit 2K 2560x1440. 1K und 1.5K kosten gleich viel; 2K und jede Größe über 2,61 Millionen Pixel kosten mehr (siehe Preisdimensionen).
Referenzbilder
Übergib ein Bild, um es zu bearbeiten, oder mehrere, um sie zu kombinieren, und sage in prompt, was bleiben und was sich ändern soll. Beziehe dich anhand der Reihenfolge auf die Bilder („die Jacke aus Bild 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"
}Transparenter Hintergrund
Setze background: "transparent" für ein PNG mit transparentem Hintergrund, allein aus einem Prompt oder aus Referenzbildern:
{
"model": "seedream-5-5",
"prompt": "A glossy red enamel pin shaped like a cherry, product cutout",
"background": "transparent",
"output_format": "png",
"size": "1K"
}Aufteilung in Ebenen
Sende genau ein Bild mit layer_decomposition: true. Die Aufgabe liefert zuerst das Hintergrundbild und danach jede Ebene als transparentes 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 }
}Jede Ebene enthält z_index (das Hintergrundbild ist 0; höhere Werte liegen darüber), background und, wenn das Modell sie liefert, name, description und bounding_box. bounding_box.absolute ist [left, top, right, bottom] in Pixeln des Hintergrundbilds; bounding_box.normalized beschreibt denselben Rahmen auf 0–1000 skaliert. Ebenendateien werden in der gewählten Stufe gerendert, ihre Pixelmaße können deshalb vom Rahmen abweichen: Um das Bild wieder zusammenzusetzen, skaliere jede Ebene auf ihren Rahmen und platziere sie in aufsteigender z_index-Reihenfolge auf dem Hintergrundbild.
Eine Stufe legt die Größe des Hintergrundbilds und jeder Ebene fest. Mit auto richtet sich die Ausgabe nach dem Eingabebild, vergrößert auf mindestens 1K und verkleinert auf höchstens 2K.
Texterkennung
Mit layer_decomposition_options.text_recognition: true enthält eine Ebene mit regulärem gedrucktem Text auch text_recognition: den vollständigen text (Zeilen durch \n verbunden) und lines, jeweils mit eigenem bounding_box und runs unterschiedlich formatierten Texts. Der style eines Textabschnitts enthält similar_font_family, foreground_color (#RRGGBB) und die Merkmale bold, italic, underline, strikethrough, shadow und translucent. Schriftarten und Merkmale sind eine Schätzung des Modells. Künstlerische oder handgeschriebene Schriftzüge liefern keinen Text, und ein mit der Aufteilung gesendeter prompt kann ihn unterdrücken. Behandle das Feld deshalb als optional.
Medieneingaben
Jedes Referenzbild ist eine öffentliche HTTP(S)-URL. Base64-Daten-URIs werden nicht akzeptiert: Lade die Datei in deinen eigenen Speicher hoch und übergib ihre URL. Akzeptierte Formate sind JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC und HEIF, mit jeweils bis zu 30 MB und insgesamt höchstens 36.000.000 Pixeln. AVIF und JP2 werden nicht unterstützt; eine Aufgabe, die ihre Eingabe nicht lesen kann, schlägt fehl und wird nicht berechnet.
Preisdimensionen
Aktuelle Tarife findest du im Preisabschnitt des Modells. Seedream 5.5 wird pro Ausgabebild nach Pixelstufe berechnet, zuzüglich jedes Referenzbilds:
cost = Σ each returned image's price for its own tier + reference images × reference price- Die niedrigere Preisstufe gilt für Bilder mit bis zu 2,61 Millionen Pixeln (
1Kund1.5K); alles darüber fällt in die höhere Preisstufe. - Jedes Referenzbild wird berechnet, auch das erste. Bei der Aufteilung in Ebenen wird das eine Eingabebild berechnet.
- Bei der Aufteilung in Ebenen werden das Hintergrundbild und jede Ebene berechnet, jeweils zur Preisstufe ihrer eigenen Größe.
- Der bei Annahme einer Aufgabe reservierte Betrag deckt das größte Ergebnis ab: ein Bild in der angeforderten Preisstufe oder
max_imagesBilder (30 bei fehlendem Feld) bei der Aufteilung in Ebenen, wobeiautozur höheren Preisstufe zählt. Anschließend werden die tatsächlich zurückgegebenen Bilder berechnet und die Differenz freigegeben.
Endgültige Kosten findest du im Nutzungsverlauf deines Kontos. Fehlgeschlagene Aufgaben werden nicht berechnet.
Ausgabeschema
Das Absenden liefert die Aufgabe:
{"id": "task_...", "model": "seedream-5-5", "status": "processing", "created_at": 1794323757}Aufgabe abrufen
GET https://api.seedrouter.ai/v1/tasks/{task_id}Frage alle 10–20 Sekunden ab, bis status den Wert completed oder failed hat. Eine Zeitüberschreitung des Netzwerks während der Abfrage bedeutet nicht, dass die Erzeugung fehlgeschlagen ist: Behalte die Aufgaben-ID und setze die Prüfung fort. Erstelle keine weitere Aufgabe, um den Fortschritt zu prüfen.
Abgeschlossene Aufgabe
{
"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"
}
]
}
}Eine Aufgabe zur Aufteilung in Ebenen listet zuerst das Hintergrundbild und danach jede Ebene auf. Dies ist eine echte Aufteilung eines Posters mit aktiver Texterkennung; gezeigt werden das Hintergrundbild und die erste seiner drei Ebenen:
{
"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 }
}
]
}
]
}
}
]
}In unseren Tests dauerte ein 1K-Bild 47 Sekunden, eine 2K-Bearbeitung mit einem Referenzbild 40 Sekunden und eine Aufteilung in Ebenen mit 1K, die vier Bilder lieferte, 39 Sekunden. Größere Aufteilungen können mehrere Minuten dauern.
Fehler
Anfragen, die vor der Erstellung einer Aufgabe abgelehnt werden, geben einen HTTP-Fehler mit einem error-Objekt zurück und werden nicht berechnet. Eine Aufgabe, die nach der Annahme fehlschlägt, gibt bei der Abfrage HTTP 200 zurück, zusammen mit status: "failed" und einem error-Objekt.
Codes, HTTP-Status und Hinweise zu Wiederholungen findest du im gemeinsamen Fehlerkatalog.
{
"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."
}
}Kommt es beim Senden selbst zu einer Zeitüberschreitung, prüfe deine Aufgaben, bevor du erneut sendest: Die erste Anfrage wurde möglicherweise bereits angenommen.
Tipps
- Beginne zum Ausprobieren mit
1Koder1.5K;1.5Kkostet genauso viel wie1K. - Nutze exakte Pixelmaße für ein festes Format, etwa
2560x1440für 16:9 mit 2K. - Jedes Referenzbild kostet Geld: Sende nur die Bilder, die die Bearbeitung braucht.
- Setze bei der Aufteilung in Ebenen
max_imagesnahe an die erwartete Anzahl von Elementen; die Reservierung richtet sich danach. - Wenn du vor allem den Text möchtest, lasse
promptbei einer Aufteilung mit aktivertext_recognitionweg.
