Dreamina Seedance 2.0 vs Dreamina Seedance 2.0 Fast
Lequel, quand — verdict de synthèse, pas un tableau de benchmarks
Même famille, mêmes clips de 4–15 s à 24 fps avec audio natif et six ratios ; le palier fast coûte $5.6 par million de tokens vidéo contre $7, soit 20% de moins, et plafonne la résolution à 480p/720p là où le modèle de base couvre de 480p à 4K avec une sortie 10 bits en 4K. Le modèle de base accepte aussi l'image-vers-vidéo par première image, en plus de première/dernière. Prenez le palier fast pour les brouillons et les formats sociaux, le modèle de base quand l'image doit dépasser 720p.
Tarification
| Dreamina Seedance 2.0 | Dreamina Seedance 2.0 Fast | Δ | |
|---|---|---|---|
| Par 1M tokens vidéo | $7 | $5.6 | 1.3× |
Tarifs issus du catalogue en direct au moment de la compilation ; chaque page de modèle présente la fiche actuelle.
Où ils se situent — prix pour 1M de tokens vidéo sur l'ensemble des 5 modèles génération de vidéos pour cette unité de facturation (échelle logarithmique)
Capacités
| Dreamina Seedance 2.0 | Dreamina Seedance 2.0 Fast | |
|---|---|---|
| Audio natif | oui | oui |
Spécifications
| Dreamina Seedance 2.0 | Dreamina Seedance 2.0 Fast | |
|---|---|---|
| Modalités d'entrée | texte image | texte image |
| Modalités de sortie | vidéo | vidéo |
| Sortie | 2026-01 | 2026-01 |
| Résolution | 480p – 4K (10-bit at 4K) (plage) | 480p / 720p (ensemble fixe) |
| Durée du clip | 4–15 s (plage) | 4–15 s (plage) |
| Fréquence d'images | 24 fps | 24 fps |
| Ratios d'aspect | 6 (incl. 16:9, 9:16, 1:1) | 6 (incl. 16:9, 9:16, 1:1) |
| Modes d'entrée |
|
|
| Format | .mp4 | .mp4 |
Les spécifications sont transcrites à partir de la documentation de chaque fournisseur ; une ligne qu'un fournisseur ne publie pas est omise plutôt que déduite. Sources complètes : Dreamina Seedance 2.0 · Dreamina Seedance 2.0 Fast
Un prompt, deux modèles — mesurés via la passerelle
Renvoyé par le modèle 1280×720 Durée 5s latence 133 s
Renvoyé par le modèle 1280×720 Durée 5s latence 137 s
Un prompt, une requête par modèle, aucun nouvel essai et aucune sélection sur le volet — le premier résultat renvoyé par chaque modèle. Ni la taille ni la durée n'ont été fixées : chaque modèle a utilisé sa propre valeur par défaut, car une requête conçue pour s'adapter à tous n'en mettrait aucun en valeur. Les fichiers ici sont réencodés pour le web, jugez donc la composition et le respect du prompt, pas la compression.
Basculez de l'un à l'autre avec une seule ligne
Les deux ids sont dans chaque onglet ci-dessous — la paire de lignes en surbrillance est la seule modification. Même endpoint, même clé, même structure de requête.
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-fast-260128", # décommentez cette ligne, commentez celle du dessus
"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-fast-260128", // décommentez cette ligne, commentez celle du dessus
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-fast-260128", # décommentez cette ligne, commentez celle du dessus
"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-fast-260128", // décommentez cette ligne, commentez celle du dessus
"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-fast-260128", // décommentez cette ligne, commentez celle du dessus
"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
Lequel est le moins cher, Dreamina Seedance 2.0 ou Dreamina Seedance 2.0 Fast ?
Dreamina Seedance 2.0 Fast est moins cher sur par 1m tokens vidéo ($5.6 contre $7, avec un écart de 1.3×). D'autres lignes peuvent indiquer l'inverse — le tableau ci-dessus contient la fiche complète, et le coût réel dépend de votre combinaison.
Puis-je faire un test A/B de Dreamina Seedance 2.0 par rapport à Dreamina Seedance 2.0 Fast sans deux intégrations ?
Oui. Les deux sont servis via le même endpoint compatible OpenAI avec une seule clé API — le basculement est un changement de chaîne de modèle en une ligne, vous pouvez donc diriger une fraction du trafic vers chacun et comparer les factures directement.
Quelles durées de clip et résolutions prennent-ils en charge ?
Le tableau des spécifications ci-dessus dresse la liste des résolutions et des durées de clip publiées pour chaque modèle, et indique si une valeur est un ensemble fixe d'options ou une plage continue — les deux se ressemblent mais ont un prix différent, car la facturation à la seconde se multiplie par la durée.