
Seedance-2.5-API Schnelleinstieg: Deine erste Videoanfrage
Starte mit der Seedance 2.5 API: API-Key, cURL-Anfrage und Python-Polling. Prüfe Eingabemodi, Frame-Verkettung und die Kosten deiner ersten Generierung.
Um die Seedance-2.5-API auf reAPI aufzurufen, erstelle einen API-Schlüssel, sende eine Anfrage an /api/v1/videos/generations mit model: "doubao-seedance-2.5-face", und rufe dann die zurückgegebene id ab. Die abgeschlossene Aufgabe enthält eine Video-URL. Du verwendest dieselbe Modell-ID für Text-, Bild-, First/Last-Frame- und multimodale Referenzanfragen.[1]
Beginne mit einer viersekündigen Textanfrage, damit es keine hochgeladenen Dateien zur Diagnose gibt. Zum 12. September liegt der Tarif bei $0,118589 pro Sekunde für 480p ohne Referenzvideo, also kostet diese Anfrage 475 Credits oder $0,475 nach Aufrundung auf ganze Credits. Die Seedance-2.5-Modellseite zeigt die aktuelle Tariftabelle und einen Playground zum Überprüfen derselben Einstellungen.[2]
Zusammenfassung
- Erstelle einen Bearer-Schlüssel in API Keys und sende
model: "doubao-seedance-2.5-face". Der Seiten-Slugseedance-2-5ist nicht die Modell-ID der Anfrage.[1] - Sende einmal, speichere die Antwort
idund rufe/api/v1/tasks/{id}ab. Ein erfolgreicher POST startet eine Aufgabe; das bedeutet nicht, dass das Video bereit ist.[1] - Wähle
durationvon 4–30 Sekunden undresolutionaus480p,720poder1080p. Verwende eine feste Dauer für eine vorhersagbare anfängliche Reserve.[1] - Stelle
size: "adaptive"für explizite First/Last-Frame-Eingaben ein. Das Seitenverhältnis der Ausgabe folgt der Frame-Form.[1] - Eine zehn Sekunden lange 720p-Anfrage ohne Referenzvideo kostet 2.669 Credits oder $2,669 zum Tarif vom 12. September. Die Rechnungstellung für Referenzvideos berücksichtigt mehr als nur die Ausgabesekunden.[1][2]
Erstelle einen Seedance-2.5-API-Schlüssel und bereite eine Anfrage vor
Melde dich bei reAPI an, öffne API Keys und erstelle einen Schlüssel für den Workspace, der die Generierung bezahlt. Kopiere ihn in eine lokale Umgebungsvariable mit dem Namen REAPI_API_KEY. Halte den Schlüssel aus Browser-JavaScript, öffentlichen Repositories und Screenshots fern. Anfragen authentifizieren sich über den Authorization: Bearer ...-Header; der dokumentierte Workflow erfordert keinen separaten Project-Header.[1]
Du benötigst auch genug Credits für die anfängliche Reserve der Anfrage. Werbe-Credits, wenn sie für ein berechtigtes Konto angeboten werden, sind getrennt davon, ob ein bestimmtes Video vollständig finanziert werden kann. Lese den Betrag in deinem Konto. Dieses Lernprogramm setzt ein finanziertes Konto voraus und verspricht keine kostenlose Generierung.[2]
Halte die erste Payload klein. Ein Prompt, feste Dauer, Seitenverhältnis und Auflösung reichen für eine Textanfrage. Füge Bilder oder Sound hinzu, nachdem der Pfad für die Übermittlung und das Polling funktioniert. Das macht einen fehlgeschlagenen ersten Versuch leichter zu diagnostizieren: er kann nicht durch eine nicht erreichbare Referenz-URL oder eine inkompatible Quelldatei verursacht werden.
Sende die erste cURL-Anfrage und speichere ihre Aufgaben-ID
Sende diese Anfrage, nachdem du REAPI_API_KEY bereits in deiner Shell gesetzt hast:
curl --fail-with-body https://reapi.ai/api/v1/videos/generations \
-H "Authorization: Bearer $REAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.5-face",
"prompt": "A matte cobalt ceramic mug stands on an ivory turntable. One continuous studio shot. Over four seconds the turntable rotates clockwise by about 45 degrees. The camera stays fixed at mug height. Keep the handle, rim and glaze consistent. Soft side light, plain background, no text or logos.",
"duration": 4,
"size": "16:9",
"resolution": "480p",
"generate_audio": false,
"return_last_frame": true
}'Speichere die id der Antwort, bevor du etwas anderes tust. Dieser Bezeichner gehört zu dieser Generierung und ist der Wert, den du für nachfolgende GET-Anfragen verwendest. Ersetze ihn nicht durch die Modell-ID, eine Datei-URL oder einen erratenen Bezeichner. Die Antwort enthält auch einen Task-Status; die Video-URLs werden angezeigt, wenn die Aufgabe abgeschlossen ist.[1]
Die Beispielanfrage fordert zusätzlich zum Video ein Last-Frame-Bild an. Du kannst dieses Bild für einen eigenständigen Clip ignorieren oder später beim Verketten von Szenen verwenden. Derselbe Prompt und dieselben Einstellungen sind in unserer getesteten Prompt-Bibliothek enthalten, wo du die generierte Version überprüfen kannst, statt die Formulierung als Qualitätsgarantie zu verstehen.
Sende ab und rufe eine Seedance-2.5-API-Aufgabe in Python ab
Das Python-Beispiel unten ist eine Alternative zum cURL-Beispiel: Es erstellt eine neue Video-Aufgabe und ruft diese Aufgabe ab. Wähle eine Absendemethode für deinen ersten Test. Das Ausführen beider Beispiele erstellt zwei bezahlte Generierungen.
Das Skript wartet lokal bis zu 30 Minuten. Dieses Timeout ist eine beispielhafte Einstellung des Clients, keine zugesicherte Generierungszeit. Es meldet einen HTTP-Fehler statt stumm einen anderen Job zu starten. Installiere requests und setze REAPI_API_KEY, bevor du es ausführst.
import os
import time
import requests
BASE = "https://reapi.ai/api/v1"
headers = {"Authorization": f"Bearer {os.environ['REAPI_API_KEY']}"}
payload = {
"model": "doubao-seedance-2.5-face",
"prompt": "A ceramic mug on a table. Locked camera, soft daylight.",
"duration": 4,
"resolution": "480p",
"size": "16:9",
"generate_audio": False,
}
submitted = requests.post(
f"{BASE}/videos/generations",
headers=headers,
json=payload,
timeout=120,
)
submitted.raise_for_status()
task_id = submitted.json()["id"]
print("Save this task id:", task_id, flush=True)
deadline = time.monotonic() + 30 * 60
while time.monotonic() < deadline:
response = requests.get(
f"{BASE}/tasks/{task_id}", headers=headers, timeout=60
)
if response.status_code in (429, 500, 502, 503, 504):
time.sleep(10)
continue
response.raise_for_status()
task = response.json()
if task["status"] == "completed":
for url in task["output"]["video_urls"]:
print(url)
break
if task["status"] == "failed":
raise RuntimeError(task.get("error"))
time.sleep(10)
else:
raise TimeoutError(f"Resume polling existing task {task_id}")Polling verbraucht keine Generierungs-Credits. Wenn der lokale Prozess abläuft, behalte die gespeicherte ID und setze GET-Anfragen für diese Aufgabe fort. Ein lokales Timeout allein begründet nicht, dass die Remote-Generierung fehlgeschlagen ist. Wenn ähnlich eine POST-Verbindung bricht, bevor du eine Antwort erhältst, überprüfe deine Task-Historie, bevor du dieselbe Arbeit erneut einreichst.[1]
Für eine Service-Integration speichere die Aufgaben-ID sofort nach der Einreichung in deiner eigenen Datenbank. Die wichtige Unterscheidung liegt zwischen dem wiederholten Abrufen einer bestehenden Aufgabe und dem Erstellen einer neuen Aufgabe. Letzteres ist eine weitere Generierungsanfrage.
Wähle vier Input-Modi durch die Media-Felder
Die Medienfelder bestimmen die Art der Anfrage. Verwende diese Tabelle zusammen mit der vollständigen Seedance-2.5-API-Dokumentation.[1]
| Beabsichtigte Anfrage | Zu sendende Felder | Zu beachtendes Element |
|---|---|---|
| Text zu Video | prompt | Eine reine Textanfrage benötigt einen Prompt |
| Referenzbild zu Video | image_urls plus Motion-Prompt | Public Image-URLs; bis zu 30 Bilder |
| Explizites First oder First/Last Frame | image_with_roles | Verwende size: "adaptive"; ein Last Frame benötigt ein First Frame |
| Multimodale Referenz | image_urls, video_urls und/oder audio_urls | Jeder Medientyp hat eigene Datei- und Dauer-Limits |
Ersetze beispielsweise die Bildeingaben der reinen Text-Payload durch ein explizites First Frame:
{
"image_with_roles": [
{
"url": "https://file.deepytb.com/landing/qwen-image-2/playground-input.webp",
"role": "first_frame"
}
],
"size": "adaptive"
}Dieser Block zeigt Felder, die du in eine vollständige Anfrage einfügst; er ist selbst kein vollständiger POST-Body. Ersetze das Sample durch ein Bild, das du verwenden darfst. Sende nicht beide image_urls und image_with_roles; sie schließen sich gegenseitig aus. Vermische auch nicht Frame-Rollen und reference_image-Rollen im selben Array.[1]
Für Video-Input muss ein Quellclip 2–30 Sekunden lang sein, mit höchstens zehn Clips und maximal 30 Sekunden insgesamt. Audio hat separate Limits von zehn Spuren und 30 Sekunden kombiniert. Mehr Dateien kontrollieren eine Anfrage nicht automatisch; weise jeder Referenz eine klare Rolle im Prompt zu.[1]
Verkette ein Last Frame, ohne perfekte Kontinuität anzunehmen
Setze return_last_frame: true in der ersten Anfrage. Wenn diese Aufgabe abgeschlossen ist, lies output.last_frame_url und platziere diese URL in das image_with_roles-Array der nächsten Anfrage mit role: "first_frame". Verwende size: "adaptive" erneut.[1]
Trage die relevante Beschreibung des Subjekts, der Kleidung, der Umgebung und der beabsichtigten nächsten Aktion vor. Ein gemeinsames Grenzbild gibt dem nächsten Shot einen visuellen Ausgangspunkt; es garantiert nicht, dass spätere Frames jedes Detail bewahren. Überprüfe die Verbindung, besonders bewegliche Hände, Blickrichtung und Hintergrundobjekte, bevor du das Paar als eine Sequenz verwendest.
Video-Bearbeitung ist eine andere Anfrage-Form. Ein explizites omni_reference_task_type: "edit" erfordert Quellvideo, adaptive Größe und automatische Dauer. Es ist nicht die richtige Einstellung für eine neue Szene, die nur ein Foto als Richtlinie verwendet. Halte die erste Integration auf einem einfachen Generierungspfad, dann füge Bearbeitung hinzu, wenn du einen bestehenden Clip ändern musst.[1]
Berechne die Anfrage-Kosten vor dem Hinzufügen von Quellvideo
Für Anfragen ohne Referenzvideo multipliziere den Preis pro Sekunde mit der Ausgabedauer, wandle Dollar in Credits um und runde auf einen ganzen Credit auf. Ein Credit ist $0,001.[1]
| Anfrage | Tarif 12. September | Berechnung | Zu zahlender Gesamtbetrag |
|---|---|---|---|
| 4 Sekunden, 480p, kein Referenzvideo | $0,118589/s | ceil(0.118589 × 4 × 1000) | 475 Credits / $0,475 |
| 10 Sekunden, 720p, kein Referenzvideo | $0,266824/s | ceil(0.266824 × 10 × 1000) | 2.669 Credits / $2,669 |
| 10 Sekunden Output, 3 Sekunden Referenz, 720p | $0,160094/s | ceil(0.160094 × 17 × 1000) | 2.722 Credits / $2,722 |
Die letzte Reihe rechnet 17 Sekunden ab, weil Video-Input-Anfragen das Größere von Output plus aufgerundeter Quelldauer und ceil(5 × output / 3) verwenden. Ein niedrigerer Referenzvideo-Tarif bedeutet daher nicht automatisch eine niedrigere Endgebühr. Bild- und Audio-Referenzen fügen keine Quellsekunden hinzu.[1][2]
Auto-Dauer, duration: -1, reserviert gegen die 30-Sekunden-Obergrenze und settelt sich später auf die bereitgestellte Länge. Verwende eine feste Dauer, wenn die Reserve klein bleiben soll. Für breitere Plattformvergleiche siehe den API-Preisleitfaden.
Halte API-Host-Anweisungen zusammen
Suchen nach Seedance 2.5 auf OpenRouter, fal oder GitHub können zu verschiedenen Clients und Service-Spezifikationen führen. Der Schlüssel, der Endpoint, die Modell-ID und die Task-Hülle dieses Lernprogramms gehören zusammen. Ein Repository, das einen anderen Service aufruft, ist kein direkter Ersatz für diese Anfrage.
Bevor du ein Sample anpasst, überprüfe seine Basis-URL, seinen Authentication-Header, akzeptierte Modellnamen, Input-Schema und Status-Endpoint. Verwende die Dokumentation für den Host, der die Anfrage tatsächlich erhält. Du benötigst keinen Third-Party-GitHub-Wrapper, um die cURL- und Python-Beispiele hier auszuführen; sie verwenden reAPIs dokumentierte HTTP-Schnittstelle.[1]
FAQ
Seedance-2.5-API-Schlüssel
Erstelle einen Schlüssel in reAPI API Keys und verwende ihn als Bearer-Token. Halte ihn auf deinem Server oder in deiner lokalen Umgebung mit ausreichend Workspace-Credits für die Anfrage.[1]
Seedance-2.5-API-Dokumentation
Die Modellreferenz dokumentiert akzeptierte Felder, Modi, Einschränkungen und Rechnungstellung. Verwende die Modellseite für aktuelle Preise pro Sekunde.[1][2]
Seedance-2.5-API-Lernprogramm
Sende eine Textanfrage mit fester Dauer ab, speichere deren id, frage dann den Status ab, bis die Aufgabe abgeschlossen oder fehlgeschlagen ist. Füge Referenzdateien nur hinzu, nachdem dieser Pfad funktioniert.[1]
Seedance-2.5-API auf GitHub
Ein GitHub-Client ist optional. Überprüfe, welchen Service er aufruft und ob seine Felder der aktuellen API-Dokumentation entsprechen, bevor du seine Beispiel-Payloads verwendest.[1]
Seedance-2.5-API-Zugang
reAPI stellt doubao-seedance-2.5-face über seinen asynchronen Video-Endpoint bereit. Der Website-Modell-Slug ist nicht der Modellwert zum Absenden.[1]
Seedance-2.5-API-Kosten
Eine viersekündige 480p-Anfrage ohne Quellvideo kostet $0,475 nach Aufrundung der Credits zum Tarif vom 12. September. Dauer, Auflösung und Referenzvideo-Rechnungstellung ändern den Gesamtbetrag.[1][2]
Beende eine Anfrage, bevor du den Workflow erweiterst
Behalte die erste erfolgreiche Payload und ihre Aufgaben-ID als Baseline deiner Seedance-2.5-API-Integration. Für die nächste Anfrage füge den Medientyp hinzu, den dein Shot benötigt, und überprüfe das zurückgegebene Video, bevor du Verkettung oder Bearbeitungen einführst.
Quellen
- reAPI. Seedance 2.5 API — Parameters, Modes & Billing. Browser-Abruf 12. September 2026. reapi.ai/docs/seedance-2-5.
- reAPI. Seedance 2.5 model page, rendered pricing table and FAQ. Browser-Abruf 12. September 2026. reapi.ai/models/seedance-2-5.
Autor

Kategorien
Weitere Beiträge

DeepSeek Harness mit OpenAI-kompatibler API konfigurieren
DeepSeek Harness mit reAPI verbinden, zwischen V4 Flash und Pro wählen, Tool-Calls verifizieren und Kosten gecachter Agent-Schleifen kalkulieren.


FLUX 3 gegen MiniMax H3: Keyframes, Audio und Kosten
Wählen Sie FLUX 3 oder MiniMax H3 basierend auf Dauer, Keyframes, Fortsetzung, Auflösung, Gewichten, Lizenzgrenzen, nativer Audio und API-Kosten.


NSFW-Video-API: Seedream, Seedance, Wan und H3
Zuverlässiger NSFW-Video-Workflow: Erstelle Keyframes in Seedream 5.0 Pro, animiere mit Seedance, Wan oder MiniMax H3, dann Zustimmung prüfen.
