Seedance 2.5
Intégrer
bytedance/seedance-2.5/draft/complete
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/bytedance/seedance-2.5/draft/complete?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"draft_id": "your-draft-id"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/bytedance/seedance-2.5/draft/complete?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"draft_id": "your-draft-id"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"draft_id": "your-draft-id",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/bytedance/seedance-2.5/draft/complete", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/fr/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "bytedance/seedance-2.5/draft/complete",
"input": {
"draft_id": "your-draft-id"
}
}
Appelez le modèle Seedance 2.5 (bytedance/seedance-2.5/draft/complete) via la Doitong API. Documentation pour les agents : https://doitong.com/fr/developers/models/bytedance/seedance-2.5/draft/complete.md
POST https://api.doitong.com/v1/run/bytedance/seedance-2.5/draft/complete?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"draft_id": "your-draft-id"
}
Si le statut de la réponse est "queued" ou "running", interrogez GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 jusqu’à ce qu’il soit "succeeded" ; les fichiers se trouvent dans outputs[].url. POST https://api.doitong.com/v1/quote/bytedance/seedance-2.5/draft/complete avec le même corps renvoie le prix exact avant l’exécution.
Cette requête: ≈9,15 $ 9 150 crédits API L’exécuter sur cette page
Votre nouvelle clé API. Elle n’est affichée que maintenant et figure déjà dans le code et dans le champ de clé API ci-dessous. Gardez-la secrète : ne l’intégrez jamais dans du code exécuté dans un navigateur.
Créé sur Doitong
Créations publiques réalisées avec Seedance 2.5 par la communauté Doitong. Réutilisez un prompt en un clic.
Vidéo
Use the input image as the base scene and visual appearance. Use the reference video strictly as a motion reference for the dog’s movement. The dog must move exactly like in the reference video: - same gait (trotting rhythm) - same speed and tempo - same head motion and body dynamics - same ear...
Vidéo
First-person POV of a dog trotting forward along the path at a realistic, moderate speed (approximately 8 km/h). The camera is positioned low, at the natural height of the dog’s head. The motion follows a true trotting gait: steady, rhythmic, grounded movement with gentle vertical bounce and...
Vidéo
Subject: Young woman with dark hair, pale skin, glowing green eyes. Context: Dark, shadowy room. Action: Slow subtle breathing, slight blink. Cold direct gaze at camera. Finger pressed to lips. Minimal movement. Style: Cinematic, hyperrealistic, mysterious, intense. Camera motion: Static shot, no...
Vidéo
First-person POV of a dog running forward along the path at a realistic, moderate speed (approximately 10 km/h). The camera is positioned low, at the natural height of the dog’s head. The motion follows a true trotting gait: steady, rhythmic, grounded movement with gentle vertical bounce and...
Vidéo
Очень медленный финальный наезд камеры. Пламя свечи на переднем плане горит ярче, создавая блики. Dialogue in this scene: Астролог: "Но в марте будет одна дата… когда решение изменит всё. Напишите в комментариях “Овен” — и я сделаю отдельный разбор." No background music.
Vidéo
A close-up portrait of a striking cyberpunk woman with sleek dark hair partially wet and falling around her face. She’s wearing glossy, high-tech neon visor goggles with a vivid color gradient — bright yellow, orange, and pink reflecting glowing city lights. Her expression is confident and...
Vidéo
Ultra-realistic scene featuring miniature construction workers in orange vests and hard hats, actively working on a giant [pizza]. The tiny workers are using small tools, cranes, and machines to [assemble]. The [pizza] is placed on a metal surface or kitchen countertop. Steam or particles rise...
Vidéo
Slow motion. Low angle camera tilting up at Ilya. Warm light from the kitchen intensifies behind him, making him look heroic. On-screen dialogue (characters speak with lip-sync): Илья: "Не трогай её!"; Бабушка Нина: "Илья, отойди! Он же…" No background music.
Vidéo
Two sandboarders racing down massive golden sand dunes, carving aggressively in wide S-curves, heading directly toward the camera in a low, dramatic angle. They are captured in mid-motion, kicking up thick trails of sand behind their boards. Both riders wear full protective sandboarding suits in...
Vidéo
Алиса издает радостный, заливистый смех и весело дрыгает ножками в воздухе. Камера плавно уходит в затемнение через мягкий расфокус, оставляя ощущение тепла. На последних секундах в кадр попадает ладонь мамы, которая нежно гладит ребенка по голове, успокаивая суету. Завершающий аккорд видео...
Vidéo
Папа судорожно разворачивает подгузник, случайно роняет его и быстро наклоняется, чтобы поднять, исчезая из кадра на секунду. Камера плавно переводит фокус от папы к лицу Алисы на переднем плане. Малышка издает тихий звук, похожий на вздох, сохраняя полное олимпийское спокойствие и глядя на суету...
Vidéo
Родители забавно сталкиваются спинами на заднем плане, синхронно ойкают и продолжают свой безумный бег. Камера быстро отъезжает назад, открывая масштабный вид на всю комнату, полную движения. В самом центре кадра Алиса остается абсолютно неподвижной, создавая сильный визуальный контраст между...
Vidéo
Алиса медленно и очень забавно поворачивает голову сначала влево, затем вправо, пытаясь осознать причину шума. Камера совершает круговое вращение вокруг ее головы на 90 градусов. Ее маленькая пухлая ручка тянется к объективу, пальцы медленно сжимаются и разжимаются. Атмосфера сцены передает милое...
Vidéo
На заднем плане мама и папа комично проносятся из стороны в сторону, создавая эффект ускоренной суеты. Камера слегка покачивается, имитируя живой взгляд. Алиса медленно переводит взгляд с одного родителя на другого, ее брови слегка приподняты в забавном недоумении. Движения родителей подчеркнуто...
Vidéo
Папа судорожно разворачивает подгузник, случайно роняет его и быстро наклоняется, чтобы поднять, исчезая из кадра на секунду. Камера плавно переводит фокус от папы к лицу Алисы на переднем плане. Малышка издает тихий звук, похожий на вздох, сохраняя полное олимпийское спокойствие и глядя на суету...
Vidéo
Папа судорожно разворачивает подгузник, случайно роняет его и быстро наклоняется, чтобы поднять, исчезая из кадра на секунду. Камера плавно переводит фокус от папы к лицу Алисы на переднем плане. Малышка издает тихий звук, похожий на вздох, сохраняя полное олимпийское спокойствие и глядя на суету...
Créer une requête
Les contrôles sont générés à partir du schéma du modèle. Le code et le prix se mettent à jour lorsque vous les modifiez.
/run/bytedance/seedance-2.5/draft/complete?wait=20
devis → 9,15 $
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/bytedance/seedance-2.5/draft/complete?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"draft_id": "your-draft-id"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/bytedance/seedance-2.5/draft/complete?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"draft_id": "your-draft-id"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"draft_id": "your-draft-id",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/bytedance/seedance-2.5/draft/complete", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "bytedance/seedance-2.5/draft/complete",
"input": {
"draft_id": "your-draft-id"
},
"wait_seconds": 20
}
}
}
Exécuter cette requête
Votre clé reste dans ce navigateur : elle est envoyée uniquement à la Doitong API et enregistrée dans localStorage uniquement si vous cochez Mémoriser. Obtenir une clé API
À propos de Seedance 2.5
Prend un `draft_id` provenant d'une exécution d'ébauche Seedance 2.5 antérieure et génère la vidéo finale. L'identifiant reste valide pendant sept jours et uniquement pour l'appelant d'origine. La sortie est fixée à 1080p, et le codec peut être auto, H264 ou H265. La réponse renvoie la vidéo et la graine.
Paramètres
draft_idrequis
resolutionfacultatif
codecfacultatif
Sortie
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "bytedance/seedance-2.5/draft/complete",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 9150,
"usd": "9.15",
"charged": 9150,
"refunded": 0
},
"input": {
"draft_id": "your-draft-id"
},
"output": {
"video": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_name": "0-output.mp4",
"file_size": 1843200
},
"seed": 42,
"draft_id": "string"
},
"outputs": [
{
"type": "video",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_size": 1843200,
"width": 1280,
"height": 720,
"duration": 5,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Champs de sortie
- video
- object {url, content_type, file_name, file_size}Fichier vidéo produit par la génération.
- seed
- integerValeur du seed appliquée pendant la génération.
- draft_id
- string | nullIdentifiant du brouillon à terminer avec le même compte dans les sept jours ; la réponse contient null si le mode brouillon est désactivé.
Plus de modèles : Vidéo vers vidéo
Pour les agents IA : cette page au format Markdown est disponible à https://doitong.com/fr/developers/models/bytedance/seedance-2.5/draft/complete.md. Tous les modèles et guides : https://doitong.com/developers/llms.txt