Dreamina Seedance 2.0 Mini est le plus petit membre de la série Seedance 2.0 de ByteDance sur BytePlus ModelArk, positionné dans le tutoriel officiel par une seule phrase : à utiliser pour le meilleur rapport coût-performance.
- Entrée
- texte image
- Sortie
- vidéo $3.5/M
Le prix en contexte
Position du prix parmi 5 modèles comparables
La barre montre où se situe le prix de ce modèle parmi tous les modèles du même type sur Synthorai. Le moins cher et le plus cher sont nommés à chaque extrémité. Ce sont des tarifs de base ; les remises lot, région et écriture en cache figurent sur la page des tarifs.
Spécifications et limites
Vidéo
| Résolution | 480p / 720p Un ensemble fixe d'options, pas une plage. |
|---|---|
| Durée du clip | 4-15 s Une plage continue, pas un ensemble fixe. |
| Fréquence d'images | 24 fps |
| Formats d'image | 6 (dont 16:9, 9:16, 1:1) |
| Entrées vidéo | text-to-video · image-to-video à première/dernière image |
| Audio natif | Oui, génère le son |
| Format | .mp4 |
Modèle
| Modalités | texte + image → vidéo |
|---|
- Palier au meilleur rapport qualité-prix de la série Dreamina Seedance 2.0 et modèle 2.0 le moins cher
- même ensemble de capacités que le fleuron (t2v, i2v à première/dernière image, generate_audio, référence multimodale, édition et extension vidéo) avec une sortie plafonnée à 480p/720p
- 24 fps, 4-15 s, six formats d'image, .mp4
- date de version 260615 encodée dans l'id du modèle
Un prompt, mesuré via la passerelle
Dreamina Seedance 2.0 Mini
Renvoyé par le modèle 1280×720 Durée 5s
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.
Utilisez Dreamina Seedance 2.0 Mini en 30 secondes
API de jobs asynchrone : créez une tâche puis interrogez-la, ou maintenez la requête ouverte avec Prefer: wait. POST /v1/videos
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-mini-260615",
"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-mini-260615",
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-mini-260615",
"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-mini-260615",
"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-mini-260615",
"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).À propos de Dreamina Seedance 2.0 Mini
- C'est le moins cher des trois paliers 2.0, à la moitié du tarif du modèle phare dans les résolutions qu'ils partagent.
- Sa table de capacités correspond à celle de Fast ligne pour ligne plutôt que d'être une variante allégée : text-to-video, image-to-video à partir de la première image ou de la première et de la dernière image, référence multimodale, édition vidéo, extension vidéo et audio synchronisé optionnel via generate_audio sont donc tous présents, produisant des clips .mp4 en 480p ou 720p à 24 fps, de 4 à 15 secondes, selon six formats d'image.
- Comme Fast, il n'offre aucune voie vers le 1080p ou la 4K ni de paramètre de file prioritaire, et comme toute la série 2.0 il n'a ni mode brouillon ni contrôle de verrouillage de caméra.
- L'audio est activé par défaut et généré en mono, et la restriction de la série sur les éléments de référence contenant des visages réels s'applique également ici.
- C'est le modèle le moins documenté de la famille : il figure dans le tableau comparatif et le catalogue plutôt que de faire l'objet de sa propre note de version, si bien que la phrase du tutoriel sur le rapport coût-performance constitue l'intégralité de son positionnement officiel.
- Synthorai l'expose via l'API de jobs asynchrone /v1/videos : créez une tâche, interrogez son URL de statut, ou maintenez l'appel ouvert avec Prefer: wait.
FAQ
Peut-on essayer l'API Dreamina Seedance 2.0 Mini gratuitement ?
Oui : les nouveaux comptes reçoivent 10 appels d'essai et jusqu'à $1 de crédit gratuit, sans carte bancaire. De quoi essayer Dreamina Seedance 2.0 Mini sur votre charge de travail réelle avant d'ajouter un moyen de paiement.
Quels sont les points forts de Dreamina Seedance 2.0 Mini ?
Meilleur rapport qualité-prix de la série 2.0 ; conserve la synchronisation audio-vidéo ; choix naturel pour les brouillons en volume. Voir la section À propos pour le tableau complet, tiré des notes de version officielles du fournisseur.
Combien coûte Dreamina Seedance 2.0 Mini ?
Sur Synthorai, Dreamina Seedance 2.0 Mini coûte $3.5 par million de tokens vidéo (tokens vidéo ≈ largeur × hauteur × 24fps × secondes ÷ 1024). Seules les générations réussies sont facturées : paiement à l'usage, sans majoration de plateforme, sans abonnement.
Comment générer des vidéos avec l'API Dreamina Seedance 2.0 Mini ?
Envoyez un POST à /v1/videos sur Synthorai avec model="dreamina-seedance-2-0-mini-260615" pour créer un job asynchrone, puis interrogez la tâche (ou maintenez la requête ouverte avec l'en-tête Prefer: wait) jusqu'à obtenir l'URL de la vidéo. Aucun SDK du fournisseur n'est nécessaire.
Comment obtenir l'accès à Dreamina Seedance 2.0 Mini ?
Pointez votre SDK OpenAI existant vers base_url="https://synthorai.io/v1", définissez model="dreamina-seedance-2-0-mini-260615", et c'est tout. Une seule clé API couvre tous les modèles de la passerelle.
Modèles associés
Comparer
Chaque valeur de cette page est transcrite de la documentation du fournisseur, liée ci-dessus, et porte la date de sa vérification. Les prix sont comparés à l'échelle du catalogue ; les valeurs de spécification que les fournisseurs définissent différemment sont présentées avec la différence indiquée plutôt que mises en graphique. Rien ici n'est mesuré par nous, et rien n'est noté.