Seedance 2.5
Video Generationup to -20%bytedance/seedance-2.5Seedance 2.5 ist das multimodale Videogenerierungsmodell der nächsten Generation aus der Doubao-Reihe von ByteDance, veröffentlicht am 2026-08-07. Es verarbeitet gemischte Eingaben aus Text, Bildern, Videos und Audio — bis zu 30 Bilder, 10 Videos und 10 Audioclips und damit insgesamt 50 Referenzmaterialien — und deckt die Erzeugung von Video aus Text, aus Bild und aus Video ab. Jeder Clip kann eine beliebige ganze Sekundenzahl zwischen 4 und 30 Sekunden lang sein, in 480p-, 720p- oder 1080p-Auflösung (standardmäßig 720p), mit sechs Seitenverhältnissen und einer adaptiven Option. Die Ausgabe enthält standardmäßig synchrones Audio, und Prompts lassen sich in mehreren Sprachen formulieren. Diese Generation verbessert die Befolgung von Anweisungen, die Erzählung über mehrere Einstellungen hinweg und die zeitliche Konsistenz über lange Sequenzen. Zugänglich über das OpenAI-compatible Protocol.
Preise
up to -20%Ab $0.11/s| Auflösung | Modus | Audio | Preis / Sekunde |
|---|---|---|---|
| 480p | Text zu Video | Beliebig | $0.11/s |
| 480p | Video zu Video | Beliebig | $0.14/s |
| 720p | Text zu Video | Beliebig | $0.24/s |
| 720p | Video zu Video | Beliebig | $0.3/s |
| 1080p | Text zu Video | Beliebig | $0.48/s$0.6/s |
| 1080p | Video zu Video | Beliebig | $0.568/s$0.71/s |
| Alle anderen Kombinationen | $0.568/s$0.71/s | ||
Abrechnung pro Sekunde generiertes Video. Die unterstützten Parameterkombinationen und Preise werden von der Live-API bestimmt und können je nach Modellversion variieren.
Providers
/v1/videos/v1/videosCode-Beispiele
import timeimport requestsBASE = "https://api.ofox.ai/v1/videos"HEADERS = {"Authorization": "Bearer YOUR_OFOX_API_KEY"}# Create the generation tasktask = requests.post(BASE, headers=HEADERS, json={"model": "bytedance/seedance-2.5","prompt": "A golden retriever running on the beach at sunset","duration": 4,"resolution": "720p","generate_audio": True,"provider": {"type": "byteplus"},# Or: "provider": {"type": "volcengine"}}).json()# Poll until the task reaches a terminal statewhile True:task = requests.get(f"{BASE}/{task['id']}", headers=HEADERS).json()if task["status"] in ("completed", "failed", "cancelled", "expired"):breaktime.sleep(10)# Prefer mirror_urls (persistent) then fall back to unsigned_urls (24h)print((task.get("mirror_urls") or task.get("unsigned_urls") or [None])[0])