So machst du mit Claude Opus 5.5 und Seedance 2.5 einen Kurzfilm
Claude Opus 5.5 als Regisseur: Es schreibt Shotlist und Prompts, GPT Image 2.5 zeichnet die Figur, und Seedance 2.5 rendert jede Einstellung mit Ton.
Als Markdown lesenUm mit Claude Opus 5.5 und Seedance 2.5 einen Kurzfilm zu machen, lässt du Opus Regie führen und überlässt Zeichnen und Drehen den anderen beiden Modellen. Du gibst Opus eine Story-Idee; es schreibt eine feste Figurenbeschreibung, einen Prompt für das Character Sheet und einen Video-Prompt pro Einstellung. GPT Image 2.5 macht daraus ein Character Sheet und Startbilder. Seedance 2.5 rendert jede Einstellung mit Dialog und Ton und nutzt diese Bilder als Referenzen. Zum Schluss fügst du die Einstellungen zu einer Datei zusammen. Alle drei Modelle laufen auf SeedRouter mit demselben API-Key. Jede Anfrage unten folgt den API-Referenzen von SeedRouter, geprüft am 30. September 2026.
Wie funktioniert der Workflow mit Claude Opus 5.5 und Seedance 2.5?
Die Idee stammt aus einem Workflow, den ein Creator im September 2026 auf r/Seedance_AI geteilt hat (der Originalbeitrag): „Ich habe keinen einzigen Prompt von Hand geschrieben. Ich habe Opus 5.5 ein Kernkonzept und ein paar Referenz-Screenshots für den gewünschten Stil gegeben.“ Opus schrieb die Prompts für Character Sheet, Startbilder, Kamerabewegungen, Dialog-Timing und Ton; GPT Image 2.5 zeichnete Character Sheet und Startbild; Seedance 2.5 renderte die Einstellungen.
Jedes Modell hat genau eine Aufgabe:
| Schritt | Modell | Eingabe | Ausgabe |
|---|---|---|---|
| 1. Planen | Claude Opus 5.5 | Story-Idee, optional Stilbilder | Figurenbeschreibung, Sheet-Prompt, pro Einstellung ein Startbild-Prompt und ein Video-Prompt |
| 2. Gestalten | GPT Image 2.5 | Sheet-Prompt, dann Startbild-Prompts mit dem Sheet als Referenz | Character Sheet und Startbilder als Bild-URLs |
| 3. Drehen | Seedance 2.5 | Video-Prompt plus Sheet und Startbild als Referenzbilder | Ein Video mit Ton pro Einstellung |
| 4. Schneiden | ffmpeg oder ein beliebiger Editor | Die Einstellungsdateien | Der fertige Film |
Die Schritte sind über URLs verbunden. GPT Image 2.5 gibt Bilder zurück, die im Speicher von SeedRouter liegen, und Seedance 2.5 nimmt Referenzbilder als öffentliche URLs an. Die Ausgabe von Schritt 2 geht also direkt in Schritt 3, ohne Download oder Upload.
Was brauchst du, bevor du anfängst?
- Einen SeedRouter API-Key in deiner Umgebung:
export SEEDROUTER_API_KEY="your-key"- Python 3 mit
requestsund dem Anthropic SDK:pip install requests anthropic. - ffmpeg, um die Einstellungen am Ende zusammenzufügen.
- Guthaben. Jeder Aufruf ist eine kostenpflichtige Anfrage. Fehlgeschlagene Aufgaben werden nicht berechnet, und neue Konten starten mit einem kleinen kostenlosen Guthaben.
Alle Python-Snippets unten teilen sich diese zwei Zeilen:
import os
import requests
HEADERS = {"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"}Schritt 1: Wie lässt du Claude Opus 5.5 die Einstellungen planen?
Gib Opus einen System-Prompt, der erklärt, wie Seedance 2.5 einen Prompt liest, und lass dir den Plan als JSON zurückgeben, damit dein Skript ihn nutzen kann. Die Regeln in diesem System-Prompt stammen aus den offiziellen Seedance-Prompt-Guides von ByteDance, zusammengefasst im Seedance 2.5 Prompt-Guide: Subjekt und Handlung zuerst, eine Kamerabewegung pro Einstellung, Zeitabschnitte für längere Einstellungen, Referenzdateien nach Nummer benannt.
import json
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["SEEDROUTER_API_KEY"],
base_url="https://api.seedrouter.ai",
)
DIRECTOR = """You are the director of a short film made with AI models.
Return only JSON, no other text, in this shape:
{"character": "...", "sheet_prompt": "...",
"shots": [{"duration": 5, "frame_prompt": "...", "video_prompt": "..."}]}
character: one fixed paragraph describing the main character's face, hair,
build and clothes. Repeat it word for word inside every other prompt.
sheet_prompt: an image prompt for one character reference sheet: a front,
three-quarter, profile and back view, plus four facial expressions, on a plain
light background, with no text other than small panel labels.
shots: 3 to 5 shots, each 4 to 15 seconds.
frame_prompt: an image prompt for the first frame of the shot.
video_prompt: a video prompt for Seedance 2.5. Write it in this order: subject
and action, scene, visual style, camera, audio. Image 1 is the character sheet
and Image 2 is the start frame of the shot; refer to them by those names.
Use one camera move per shot. Say who is holding the camera and how they move.
For shots longer than 5 seconds, split the action into time ranges such as
0-3s. Put dialogue in quotes as: Character's line (emotion): content.
Describe the ambient sound. Do not ask for subtitles or on-screen text.
The character must not look like a real, identifiable person. Use a stylized
look, such as a 3D animated or illustrated character."""
message = client.messages.create(
model="claude-opus-5-5",
max_tokens=16000,
system=DIRECTOR,
messages=[{
"role": "user",
"content": "A lighthouse keeper finds a lost robot on the rocks during a storm and teaches it to wave at passing ships.",
}],
)
text = "".join(block.text for block in message.content if block.type == "text")
plan = json.loads(text)Ein paar Details sind wichtig:
max_tokensschließt das Denken ein. Opus 5.5 nutzt immer adaptives Denken, und die Opus 5.5 API-Referenz zählt Denk-Tokens zumax_tokens. Lass genug Luft, sonst kann das JSON abgeschnitten werden.- Lass
temperature,top_pundtop_kweg und fülle keinen Assistant-Turn vor. Opus 5.5 antwortet mit einem 400-Fehler, wenn Sampling-Werte von den Standardwerten abweichen oder eine Antwort vorausgefüllt ist. Um zu steuern, wie gründlich es denkt, setzt du stattdessenoutput_config.effort. - „Wer hält die Kamera?“ ist der Tipp aus dem Originalbeitrag. Der Autor schreibt, dass Opus nach der Angabe „mein Freund filmt vom Rücksitz aus“ selbst kleines Kamerawackeln, verzögerte Bildnachführung und suchenden Autofokus beschrieb, und dass „genau dieses eine Kontextdetail den ‚KI-Look‘ entfernt“.
- Stilreferenzen sind optional. Opus kann Bilder lesen, also kannst du Screenshots des gewünschten Looks als
image-Blöcke mit URL-Quelle in den User-Turn legen.
Wenn json.loads fehlschlägt, gib text aus und frag Opus noch einmal. Den Plan zu lesen, bevor du irgendetwas renderst, ist auch der günstigste Moment, die Geschichte zu ändern: Eine Änderung hier kostet eine Textanfrage, eine Änderung nach dem Rendern kostet Video.
Schritt 2: Wie erstellst du Character Sheet und Startbilder mit GPT Image 2.5?
Schick zuerst plan["sheet_prompt"] an GPT Image 2.5. Dann schickst du den frame_prompt jeder Einstellung mit dem Sheet als Referenzbild, damit jedes Startbild dieselbe Figur zeigt. Bildaufgaben werden an /v1/images/generations gesendet und von /v1/tasks/{id} gelesen:
import time
def image(prompt, size, refs=()):
body = {"model": "gpt-image-2.5-flare", "prompt": prompt, "size": size, "quality": "high"}
if refs:
body["images"] = [{"image_url": url} for url in refs]
task_id = requests.post(
"https://api.seedrouter.ai/v1/images/generations",
headers=HEADERS, json=body, timeout=60,
).json()["id"]
while True:
task = requests.get(
f"https://api.seedrouter.ai/v1/tasks/{task_id}", headers=HEADERS, timeout=30,
).json()
if task["status"] == "completed":
return task["output"]["data"][0]["url"]
if task["status"] == "failed":
raise RuntimeError(task["error"]["message"])
time.sleep(3)
sheet = image(plan["sheet_prompt"], "1536x1024")
frames = [image(shot["frame_prompt"], "1792x1008", [sheet]) for shot in plan["shots"]]Warum diese Einstellungen:
1792x1008ist 16:9. GPT Image 2.5 erwartetsizealsWIDTHxHEIGHT, beide Kanten ein Vielfaches von 16, also musst du ein 16:9-Bild in Pixeln ausschreiben;16:9ist kein gültigersize-Wert. Stimme es auf dasratioab, das du bei Seedance anfragst.- Flare reicht für die meisten Sheets. Sunburst bietet genauere Kontrolle über mehrere Bearbeitungen und ist langsamer; wann es sich lohnt, steht in GPT Image 2.5 Flare vs. Sunburst.
- Entwürfe mit niedrigerer
quality. Solange du die Figur noch änderst, rendernlowodermediumschneller. Wechsle zuhighfür die Bilder, mit denen du drehst.
Die Funktionen oben pollen ohne Frist, um kurz zu bleiben. In deinem eigenen Code solltest du ein Zeitlimit setzen und die Aufgaben-ID behalten, damit ein unterbrochener Lauf dieselbe Aufgabe erneut abfragen kann, statt für eine neue zu bezahlen.
Schritt 3: Wie renderst du jede Einstellung mit Seedance 2.5?
Schick jeden video_prompt an Seedance 2.5 mit zwei Referenzbildern: dem Character Sheet als Image 1 und dem Startbild der Einstellung als Image 2, in dieser Reihenfolge, denn Seedance nummeriert Referenzdateien in der Reihenfolge, in der du sie anhängst. Videoaufgaben haben einen eigenen Endpunkt, /v1/contents/generations/tasks, und enden mit status: "succeeded":
def shot(prompt, refs, duration):
content = [{"type": "text", "text": prompt}]
for url in refs:
content.append({"type": "image_url", "image_url": {"url": url}, "role": "reference_image"})
task_id = requests.post(
"https://api.seedrouter.ai/v1/contents/generations/tasks",
headers=HEADERS,
json={
"model": "dreamina-seedance-2-5",
"content": content,
"resolution": "480p",
"ratio": "16:9",
"duration": duration,
"generate_audio": True,
},
timeout=60,
).json()["id"]
while True:
task = requests.get(
f"https://api.seedrouter.ai/v1/contents/generations/tasks/{task_id}",
headers=HEADERS, timeout=30,
).json()
if task["status"] == "succeeded":
return task["content"]["video_url"]
if task["status"] in ("failed", "expired"):
raise RuntimeError(task["error"]["message"])
time.sleep(15)
videos = [shot(s["video_prompt"], [sheet, frame], s["duration"]) for s, frame in zip(plan["shots"], frames)]Die Entscheidungen in der Anfrage:
- Referenzbilder statt Startbild. Seedance 2.5 kann eine Einstellung auch auf ein exaktes erstes Bild festlegen (
role: "first_frame"), aber laut Seedance 2.5 API-Referenz können Erstbild-Modi „nicht mit Referenzelementen kombiniert werden“, sodass du das Character Sheet verlieren würdest. Mit beiden Bildern alsreference_imagesagt der Prompt Seedance, dass Image 2 das Startbild ist. Der Anfang folgt ihm eng, aber nicht pixelgenau. 480pfür Entwürfe. Render zuerst jede Einstellung in 480p, korrigiere die Prompts, die nicht funktioniert haben, und render dann die guten Einstellungen mit demselben Prompt in720poder1080p.generate_audio: trueliefert Dialog, Umgebungsgeräusche und Effekte aus dem Prompt, zusammen mit dem Bild erzeugt.- Ein festes
ratio. Haben alle Einstellungen dasselbe Seitenverhältnis und dieselbe Auflösung, kann ffmpeg die Dateien ohne Neukodierung verbinden.
Eine Einstellung kann 4 bis 30 Sekunden lang sein, und eine einzelne Aufgabe kann mehrere Schnitte enthalten, wenn der Prompt jedem Schnitt einen Zeitabschnitt gibt. Die zweite Szene des Creators packte zum Beispiel sechs Einstellungen, geschnitten auf die Drum-Schläge, in 10 Sekunden.
Wie bleibt die Figur in jeder Einstellung gleich?
Konsistenz entsteht durch Wiederholung, im Prompt und in den Referenzen:
- Wiederhole dieselbe Beschreibung. Der
character-Absatz aus Schritt 1 kommt Wort für Wort in jeden Bild- und Video-Prompt. Zwei unterschiedliche Beschreibungen derselben Person sind ein Grund, warum das Modell eine Figur verändert oder verdoppelt. - Schick jeder Einstellung dasselbe Sheet. Das Sheet ist immer Image 1. Seedance 2.5 akzeptiert Multi-View-Sheets; das ältere Seedance 2.0 kann ein Sheet mit mehreren Winkeln als mehrere Personen lesen, und der Prompt-Guide empfiehlt dort stattdessen eine Nahaufnahme des Gesichts und ein Ganzkörperbild pro Figur.
- Bezeichne die Figur jedes Mal gleich, zum Beispiel „der Leuchtturmwärter aus Image 1“, und verlass dich nicht auf einen Namen, der im Bild steht.
- Behalte eine Stimme über alle Einstellungen. Seedance 2.5 nimmt bis zu 10 Audioreferenzen (WAV oder MP3, 2 bis 30 Sekunden). Häng jeder Einstellung denselben Stimmclip an und verknüpfe ihn im Text, wie im Beispiel von ByteDance: „Image 1 zeigt den Protagonisten John und nutzt die Klangfarbe der Stimme aus Audio 1.“
Für zwei Einstellungen, die ohne sichtbaren Sprung aneinander anschließen müssen, gibt es eine zweite Möglichkeit: Setz "return_last_frame": true bei der ersten Einstellung und schick die zurückgegebene content.last_frame_url als first_frame der nächsten. Das fixiert den Übergang, aber diese nächste Einstellung kann das Character Sheet nicht nutzen. Verwende es also für durchgehende Handlung innerhalb einer Szene, nicht für jeden Schnitt.
Kannst du ein Foto einer echten Person als Figur verwenden?
Nein. Seedance 2.5 akzeptiert keine Referenzbilder oder -videos mit echten menschlichen Gesichtern, und eine Aufgabe mit einem solchen Bild schlägt fehl, ohne berechnet zu werden. Seedances Real-Person-Fehler erklärt die Regel von ByteDance und die Optionen, die ByteDance auf seiner eigenen Plattform anbietet.
Das betrifft auch realistische KI-Figuren. Der Originalbeitrag filmte eine fotorealistische Frau, aber die Dokumentation von ByteDance sagt nicht, wie die Gesichtsprüfung realistische Gesichter behandelt, die ein anderes Modell gezeichnet hat. Eine stilisierte Figur, etwa der 3D-Animations- oder Illustrationslook, den der System-Prompt oben verlangt, hält den Workflow frei von dieser Frage. Wenn du einen fotorealistischen Look willst, teste zuerst eine kurze Einstellung in 480p, bevor du einen ganzen Film darum herum planst.
Wie fügst du die Einstellungen zu einem Film zusammen?
Lade die Videos der Reihe nach herunter, liste sie in einer Textdatei auf und füge sie mit ffmpeg zusammen:
names = []
for index, url in enumerate(videos):
name = f"shot-{index + 1}.mp4"
with open(name, "wb") as file:
file.write(requests.get(url, timeout=300).content)
names.append(name)
with open("shots.txt", "w") as file:
file.writelines(f"file '{name}'\n" for name in names)ffmpeg -f concat -safe 0 -i shots.txt -c copy film.mp4-c copy verbindet die Dateien ohne Neukodierung. Das funktioniert, weil jede Einstellung dieselbe Auflösung, dasselbe Seitenverhältnis und dasselbe Format hat. Wenn du Einstellungen gemischt hast, lass -c copy weg und lass ffmpeg neu kodieren. Die Video-URLs liegen im Speicher von SeedRouter, also lade die Dateien herunter, die du behalten willst.
Was kostet ein Kurzfilm mit Seedance 2.5?
Jedes Modell rechnet in seiner eigenen Einheit ab, und die aktuellen Preise stehen auf der jeweiligen Modellseite:
- Claude Opus 5.5 rechnet Eingabe- und Ausgabe-Tokens ab, Denken eingeschlossen. Einen Film zu planen sind eine oder wenige Anfragen. Preise.
- GPT Image 2.5 Flare und Sunburst berechnen einen Festpreis pro geliefertem Bild. Ein Sheet plus ein Startbild pro Einstellung sind bei einem Kurzfilm vier bis sechs Bilder. Preise.
- Seedance 2.5 rechnet Video-Tokens ab: Ausgabesekunden × Breite × Höhe × 24 ÷ 1024. Eine Sekunde 16:9-Video sind 9.607,5 Tokens bei 480p, 21.600 bei 720p und 48.600 bei 1080p, und für 1080p gilt ein eigener Tarif. Preise.
Den Großteil der Kosten macht das Video aus. Ein 480p-Entwurf braucht weniger als die Hälfte der Tokens von 720p, daher sparst du am meisten, wenn du die Prompts in 480p korrigierst und nur die finale Version in höherer Auflösung renderst. Seedance API Preise rechnet weitere Beispiele durch.
Häufig gestellte Fragen
Kann Claude Opus 5.5 das Video selbst erstellen?
Nein. Opus 5.5 ist ein Textmodell: Es kann Bilder lesen, erzeugt aber weder Bilder noch Video. In diesem Workflow schreibt es die Prompts, und GPT Image 2.5 und Seedance 2.5 erstellen Bilder und Filmmaterial.
Kann ich Claude Fable 5.1 statt Opus 5.5 verwenden?
Ja. Fable 5.1 nimmt dieselbe Messages-Anfrage an, also änderst du model auf claude-fable-5-1. Claude Fable 5.1 vs. Fable 5 vs. Opus 5.5 vergleicht die drei.
Wie lang kann ein Kurzfilm mit Seedance 2.5 sein?
Eine Seedance 2.5-Aufgabe rendert 4 bis 30 Sekunden oder überlässt die Länge mit duration: -1 dem Modell. Ein längerer Film besteht aus mehreren zusammengefügten Einstellungen, daher gibt es keine feste Obergrenze.
Warum verändert sich die Figur zwischen den Einstellungen?
Meist, weil die Prompts sie unterschiedlich beschreiben, das Sheet in manchen Einstellungen fehlt oder die Referenzdateien in einer anderen Reihenfolge angehängt sind, als der Prompt sie nummeriert. Prüfe, ob jeder Video-Prompt denselben Figurenabsatz enthält und das Sheet immer das erste Bild ist.
Kann ich Seedance 2.0 für diesen Workflow nutzen?
Ja, mit derselben Anfragestruktur und seiner eigenen Modell-ID. Gib Seedance 2.0 für die Figur getrennte Gesichts- und Ganzkörperbilder statt eines Multi-View-Sheets. Seedance 2.5 vs. 2.0 listet die übrigen Unterschiede auf.
Mach deinen ersten Kurzfilm
Fang mit einer Geschichte aus drei Einstellungen in 480p an, prüf die Einstellungen und render dann die finale Fassung in höherer Auflösung. Die Seedance 2.5 Seite zeigt aktuelle Preise und einen Playground zum Testen einer einzelnen Einstellung, und die vollständige Anfrage-Referenz steht in den Seedance 2.5 API-Docs, den GPT Image 2.5 API-Docs und den Claude Opus 5.5 API-Docs.



