Dreamina Seedance 2.0 vs Dreamina Seedance 2.0 Mini
Welches und wann — kuratiertes Fazit, keine Benchmark-Tabelle
Die mini-Stufe kostet die Hälfte — $3.5 pro Million Videotokens gegenüber $7 — und ist die neuere der beiden (2026-06 gegenüber 2026-01), rendert aber nur 480p/720p, wo das Basismodell 4K mit 10-Bit-Ausgabe erreicht. Cliplänge (4–15 s), Bildrate (24 fps), die sechs Seitenverhältnisse und der native Ton sind auf beiden gleich. Nehmen Sie mini für Menge in 720p, das Basismodell, wenn Sie die Auflösung brauchen.
Preise
| Dreamina Seedance 2.0 | Dreamina Seedance 2.0 Mini | Δ | |
|---|---|---|---|
| Pro 1M Video-Token | $7 | $3.5 | 2× |
Preise aus dem Live-Katalog zum Zeitpunkt des Builds; jede Modellseite enthält die aktuelle Übersicht.
Wo sie stehen — Preis pro 1M Video-Tokens über alle 5 Videogenerierung-Modelle mit dieser Abrechnungseinheit (logarithmische Skala)
Fähigkeiten
| Dreamina Seedance 2.0 | Dreamina Seedance 2.0 Mini | |
|---|---|---|
| Natives Audio | ja | ja |
Spezifikationen
| Dreamina Seedance 2.0 | Dreamina Seedance 2.0 Mini | |
|---|---|---|
| Input-Modalitäten | Text Bild | Text Bild |
| Ausgabemodalitäten | Video | Video |
| Veröffentlicht | 2026-01 | 2026-06 |
| Auflösung | 480p – 4K (10-bit at 4K) (Bereich) | 480p / 720p (feste Auswahl) |
| Cliplänge | 4–15 s (Bereich) | 4–15 s (Bereich) |
| Bildrate | 24 fps | 24 fps |
| Seitenverhältnisse | 6 (incl. 16:9, 9:16, 1:1) | 6 (incl. 16:9, 9:16, 1:1) |
| Eingabemodi |
|
|
| Format | .mp4 | .mp4 |
Die Spezifikationen sind aus der Dokumentation der jeweiligen Anbieter übernommen; eine Zeile, die ein Anbieter nicht veröffentlicht, wird weggelassen und nicht abgeleitet. Vollständige Quellen: Dreamina Seedance 2.0 · Dreamina Seedance 2.0 Mini
Ein Prompt, beide Modelle — gemessen über das Gateway
Vom Modell zurückgegeben 1280×720 Dauer 5s Latenz 133 s
Vom Modell zurückgegeben 1280×720 Dauer 5s
Ein Prompt, ein Request pro Modell, keine Retries und kein Cherry-Picking — das erste Ergebnis, das jedes Modell zurückgegeben hat. Weder Größe noch Dauer wurden festgelegt: Jedes Modell verwendete seinen eigenen Standardwert, da ein auf alle zugeschnittener Request keinem gerecht werden würde. Die Dateien hier wurden für das Web neu kodiert, beurteilen Sie also Komposition und Prompt-Treue, nicht die Komprimierung.
Mit einer Zeile zwischen ihnen wechseln
Beide IDs befinden sich in jedem Tab unten — das hervorgehobene Zeilenpaar ist die einzige Änderung. Gleicher Endpunkt, gleicher Schlüssel, gleiche Request-Struktur.
import time
import requests
BASE = "https://synthorai.io/v1"
HEADERS = {"Authorization": "Bearer sk-syn-..."}
# 1) create the video generation job (POST /v1/videos)
task = requests.post(
f"{BASE}/videos",
headers=HEADERS,
json={
"model": "dreamina-seedance-2-0-260128",
# "model": "dreamina-seedance-2-0-mini-260615", # diese Zeile einkommentieren, die darüberliegende auskommentieren
"prompt": "a watercolor lighthouse at dawn, waves rolling in, camera pulling back",
"resolution": "720p",
"duration": 5,
},
).json()
# 2) poll the job until it reaches a terminal state
while task["status"] in ("queued", "in_progress"):
time.sleep(5)
task = requests.get(f"{BASE}/videos/{task['id']}", headers=HEADERS).json()
# 3) completed → signed video URL (valid ~24h — download and store it promptly)
if task["status"] == "completed":
print(task["data"][0]["url"])
else:
print(task["error"])const HEADERS = {
Authorization: "Bearer sk-syn-...",
"Content-Type": "application/json",
};
interface VideoTask {
id: string;
status: "queued" | "in_progress" | "completed" | "failed" | "cancelled";
data?: Array<{ url: string }>;
error?: { code: string; message: string };
}
// 1) create the video generation job (POST /v1/videos)
const created = await fetch("https://synthorai.io/v1/videos", {
method: "POST",
headers: HEADERS,
body: JSON.stringify({
model: "dreamina-seedance-2-0-260128",
// model: "dreamina-seedance-2-0-mini-260615", // diese Zeile einkommentieren, die darüberliegende auskommentieren
prompt: "a watercolor lighthouse at dawn, waves rolling in, camera pulling back",
resolution: "720p",
duration: 5,
}),
});
let task = (await created.json()) as VideoTask;
// 2) poll the job until it reaches a terminal state
while (task.status === "queued" || task.status === "in_progress") {
await new Promise((r) => setTimeout(r, 5000));
const res = await fetch(`https://synthorai.io/v1/videos/${task.id}`, { headers: HEADERS });
task = (await res.json()) as VideoTask;
}
// 3) completed → signed video URL (valid ~24h — download and store it promptly)
if (task.status === "completed") console.log(task.data?.[0]?.url);
else console.error(task.error);# Create the job; "Prefer: wait" holds the request up to 60s and returns the
# completed task when generation finishes in time (else the queued task).
curl https://synthorai.io/v1/videos \
-H "Authorization: Bearer sk-syn-..." \
-H "Content-Type: application/json" \
-H "Prefer: wait=60" \
-d '{
"model": "dreamina-seedance-2-0-260128",
# "model": "dreamina-seedance-2-0-mini-260615", # diese Zeile einkommentieren, die darüberliegende auskommentieren
"prompt": "a watercolor lighthouse at dawn, waves rolling in, camera pulling back",
"resolution": "720p",
"duration": 5
}'
# Still queued / in_progress? Poll until completed → data[0].url (valid ~24h).
curl https://synthorai.io/v1/videos/vid_9f2e8c1a4b7d \
-H "Authorization: Bearer sk-syn-..."package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"time"
)
const base = "https://synthorai.io/v1"
type videoTask struct {
ID string `json:"id"`
Status string `json:"status"`
Data []struct {
URL string `json:"url"`
} `json:"data"`
}
func call(method, url string, body []byte) (t videoTask) {
req, _ := http.NewRequest(method, url, bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer sk-syn-...")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
json.NewDecoder(resp.Body).Decode(&t)
return t
}
func main() {
// 1) create the video generation job (POST /v1/videos)
payload, _ := json.Marshal(map[string]any{
"model": "dreamina-seedance-2-0-260128",
// "model": "dreamina-seedance-2-0-mini-260615", // diese Zeile einkommentieren, die darüberliegende auskommentieren
"prompt": "a watercolor lighthouse at dawn, waves rolling in, camera pulling back",
"resolution": "720p",
"duration": 5,
})
task := call("POST", base+"/videos", payload)
// 2) poll the job until it reaches a terminal state
for task.Status == "queued" || task.Status == "in_progress" {
time.Sleep(5 * time.Second)
task = call("GET", base+"/videos/"+task.ID, nil)
}
// 3) completed → signed video URL (valid ~24h — download and store promptly)
if task.Status == "completed" {
fmt.Println(task.Data[0].URL)
}
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
// JDK built-in HttpClient — no extra dependency needed.
HttpClient http = HttpClient.newHttpClient();
// 1) create the job; "Prefer: wait=60" holds the request up to 60s and
// returns the completed task when generation finishes in time
HttpRequest create = HttpRequest.newBuilder(URI.create("https://synthorai.io/v1/videos"))
.header("Authorization", "Bearer sk-syn-...")
.header("Content-Type", "application/json")
.header("Prefer", "wait=60")
.POST(HttpRequest.BodyPublishers.ofString("""
{"model": "dreamina-seedance-2-0-260128",
// {"model": "dreamina-seedance-2-0-mini-260615", // diese Zeile einkommentieren, die darüberliegende auskommentieren
"prompt": "a watercolor lighthouse at dawn, waves rolling in, camera pulling back",
"resolution": "720p", "duration": 5}"""))
.build();
String task = http.send(create, HttpResponse.BodyHandlers.ofString()).body();
System.out.println(task); // {"id":"vid_…","status":…} — completed → data[0].url
// 2) still queued / in_progress? Poll GET https://synthorai.io/v1/videos/{id} until the
// status turns completed, then download data[0].url (valid ~24h).FAQ
Welches ist günstiger, Dreamina Seedance 2.0 oder Dreamina Seedance 2.0 Mini?
Dreamina Seedance 2.0 Mini ist günstiger bei pro 1m video-token ($3.5 vs. $7, 2.0× Unterschied). Andere Zeilen können in die andere Richtung deuten — die obige Tabelle enthält alle Daten, und die tatsächlichen Kosten hängen von Ihrem Mix ab.
Kann ich Dreamina Seedance 2.0 gegen Dreamina Seedance 2.0 Mini ohne zwei Integrationen A/B-testen?
Ja. Beide werden über denselben OpenAI-kompatiblen Endpunkt mit einem API-Schlüssel bereitgestellt — der Wechsel ist eine einzeilige Änderung des Modell-Strings, sodass Sie einen Bruchteil des Traffics an jedes Modell leiten und die Rechnungen direkt vergleichen können.
Welche Cliplängen und Auflösungen unterstützen sie?
Die obige Spezifikationstabelle listet die von jedem Modell veröffentlichten Auflösungen und Cliplängen auf und markiert, ob es sich bei einem Wert um eine feste Auswahl an Optionen oder einen kontinuierlichen Bereich handelt — beide sehen ähnlich aus und sind unterschiedlich bepreist, da sich die sekundenbasierte Abrechnung mit der Länge multipliziert.