Créez des vidéos cinématographiques avec l’API Seedance 2.5 de ByteDance : au moins une vidéo de référence, images/audio facultatifs, six formats, 4–30 s, son et 480p/720p.
L'API ByteDance Seedance 2.5 Reference-to-Video associe une vidéo de référence obligatoire à des images, des fichiers audio et des ressources vidéo supplémentaires facultatifs pour guider la génération de nouvelles vidéos sur Bestimage AI. Les développeurs et les équipes créatives peuvent utiliser des références multimodales pour communiquer l'apparence des sujets, les produits, les environnements, les mouvements, le rythme, le son et la direction visuelle de manière plus précise qu'avec du texte seul. Des réglages flexibles de qualité, de durée, de format d'image et de son généré rendent l'API adaptée aux contenus de marque, aux workflows de personnages, au storytelling produit et aux systèmes créatifs évolutifs.
Remarque Au moins une vidéo de référence est obligatoire. Les images de référence sont facultatives et peuvent être omises lorsqu'une vidéo est fournie ; des éléments audio ou des images seuls ne peuvent pas remplacer l'entrée vidéo obligatoire. Veillez à ce que tous les prompts et médias respectent les consignes de sécurité du contenu de ByteDance.
Seedance 2.5 Reference-to-Video vs Seedance 2.5 Text-to-Video
Text-to-Video génère des vidéos à partir d'instructions écrites
uniquement. Reference-to-Video ajoute le guidage obligatoire par vidéo ainsi que des images et des éléments audio facultatifs pour les workflows nécessitant un contrôle plus
concret du mouvement, de l'apparence, de la synchronisation ou du style.
Seedance 2.5 Reference-to-Video vs Seedance 2.5 Image-to-Video
Image-to-Video anime une première image obligatoire et
peut utiliser une image finale facultative. Reference-to-Video part d'un contenu vidéo obligatoire et peut l'associer à des ressources d'images et
audio facultatives pour une direction multimodale plus étendue.
Seedance 2.5 Reference-to-Video vs Wan Reference-to-Video
Les deux approches utilisent des médias importés pour guider la génération de nouvelles vidéos.
Seedance 2.5 propose un workflow nécessitant une vidéo, avec des références facultatives de plusieurs images et fichiers audio, ainsi que des
réglages de sortie flexibles via Bestimage AI.
Seedance 2.5 Reference-to-Video vs Vidu Reference-to-Video
Vidu propose une création vidéo guidée par références afin d'assurer la cohérence
visuelle. Seedance 2.5 se distingue par le guidage vidéo obligatoire et la possibilité d'associer des références d'images et
audio facultatives dans une seule requête.
Seedance 2.5 Reference-to-Video vs Runway Video Tools
Runway propose une vaste suite de création interactive.
L'API Seedance 2.5 Reference-to-Video offre un workflow programmatique ciblé pour les entrées multimédias multimodales, la direction des
références par prompt et la génération évolutive.
// Step 1: Submit generation request
const response = await fetch('https://api.flaq.ai/api/v1/video/task', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({
model_name: 'seedance-v2.5-reference-to-video',
prompt: 'Use image one for the subject, video one for the movement, and audio one for the atmosphere',
resolution: '720p',
duration: 8,
aspect_ratio: '16:9',
sound: true,
images: ['https://example.com/subject-reference.jpg'],
videos: ['https://example.com/motion-reference.mp4'],
audios: ['https://example.com/atmosphere-reference.mp3']
})
});
const { data } = await response.json();
const taskId = data.task_id;
// Use the @ (AT) reference feature in prompt through <<<...>>> placeholders.
// Placeholder numbering is 1-based for each media array:
// <<<image_1>>> = images[0], <<<image_2>>> = images[1]
// <<<video_1>>> = videos[0], <<<audio_1>>> = audios[0]
const mediaReferenceResponse = await fetch('https://api.flaq.ai/api/v1/video/task', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({
model_name: 'seedance-v2.5-reference-to-video',
prompt: 'Place the explorer from <<<image_1>>> in the environment from <<<image_2>>>, following the camera movement in <<<video_1>>> and speaking with the reference voice from <<<audio_1>>>',
resolution: '720p',
duration: 10,
aspect_ratio: '16:9',
sound: true,
images: [
'https://example.com/explorer-reference.jpg',
'https://example.com/environment-reference.png'
],
videos: ['https://example.com/camera-movement-reference.mp4'],
audios: ['https://example.com/voice-reference.mp3']
})
});
const { data: mediaReferenceData } = await mediaReferenceResponse.json();
const mediaReferenceTaskId = mediaReferenceData.task_id;
// Step 2: Poll for results
const taskId = data.task_id;
const pollResult = async (taskId) => {
const res = await fetch(`https://api.flaq.ai/api/v1/video/${taskId}`, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
return res.json();
};
while (true) {
const pollResultData = await pollResult(taskId);
const status = pollResultData.data.task_status;
if (status === 'succeed') {
console.log(pollResultData.data.task_result.videos[].);
;
}
(status === ) {
.(pollResultData..);
;
}
( (resolve, ));
}
# Step 1: Submit generation request
import requests
response = requests.post(
'https://api.flaq.ai/api/v1/video/task',
headers={
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
json={
'model_name': ,
: ,
: ,
: ,
: ,
: ,
: [],
: [],
: []
}
)
result = response.json()
task_id = result[][]
media_reference_response = requests.post(
,
headers={
: ,
:
},
json={
: ,
: ,
: ,
: ,
: ,
: ,
: [
,
],
: [],
: []
}
)
media_reference_result = media_reference_response.json()
media_reference_task_id = media_reference_result[][]
# Step 1: Submit generation request
curl -X POST https://api.flaq.ai/api/v1/video/task \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model_name": "seedance-v2.5-reference-to-video",
"prompt": "Use image one for the subject, video one for the movement, and audio one for the atmosphere",
"resolution": "720p",
"duration": 8,
"aspect_ratio": "16:9",
"sound": true,
"images": ["https://example.com/subject-reference.jpg"],
"videos": ["https://example.com/motion-reference.mp4"],
"audios": ["https://example.com/atmosphere-reference.mp3"]
}'
# Use the @ (AT) reference feature in prompt through <<<...>>> placeholders.
# Placeholder numbering is 1-based for each media array:
curl -X POST https://api.flaq.ai/api/v1/video/task \
-H \
-H \
-d
# Step 2: Poll for results
task_id = response.json()['data']['task_id']
poll_url = f"https://api.flaq.ai/api/v1/video/{task_id}"
while True:
poll_result = requests.get(poll_url, headers={'Authorization': 'Bearer YOUR_API_KEY'}).json()
status = poll_result['data']['task_status']
if status == 'succeed':
print(poll_result['data']['task_result']['videos'][0]['url'])
break
if status == 'failed':
print(poll_result['data']['task_status_msg'])
break
time.sleep(10)
# Step 2: Poll for results
# Replace {task_id} with the task_id returned from the submit response
curl -X GET "https://api.flaq.ai/api/v1/video/{task_id}" \
-H "Authorization: Bearer YOUR_API_KEY"