Créez des vidéos guidées avec l’API Reference de Seedance 2.0. Utilisez des références vidéo, la prise en charge des humains réels, des ratios flexibles et une sortie stable.
L'API Seedance V2.0 Reference-to-Video de ByteDance offre une génération vidéo guidée par des références aux développeurs et aux équipes créatives sur Best Image AI. L'intégration actuelle de l'API accepte un prompt textuel avec au moins une image ou vidéo de référence, ainsi que des références supplémentaires facultatives sous forme d'images, de vidéos et de fichiers audio. Elle prend en charge une durée configurable, plusieurs formats d'image, plusieurs niveaux de résolution et un réglage facultatif de son généré pour des workflows vidéo maîtrisés.
Remarque Au moins une image ou vidéo de référence est requise ; un fichier audio seul ne peut pas constituer l'unique entrée de référence. Veillez à ce que vos prompts et médias de référence respectent les consignes de sécurité du contenu de ByteDance.
Seedance V2.0 Reference-to-Video face à Seedance V2.0 Text-to-Video Seedance V2.0 Text-to-Video fonctionne à partir d'un prompt textuel. Reference-to-Video ajoute des entrées compatibles d'images, de vidéos et de fichiers audio facultatifs, ainsi que des mentions des médias dans le prompt.
Seedance V2.0 Reference-to-Video face à Seedance V2.0 Fast Reference-to-Video Les deux variantes proposent les mêmes types de médias de référence et contrôles principaux sur Best Image AI. La variante standard ajoute les résolutions 1080p et 4K, tandis que la variante Fast est centrée sur les workflows 480p et 720p.
Seedance V2.0 Reference-to-Video face à Wan 2.7 Reference-to-Video Les deux API acceptent des références d'images et de vidéos. Wan 2.7 propose en plus des contrôles de prompt négatif et de seed, tandis que Seedance V2.0 prend en charge plusieurs références audio facultatives et une option de son généré.
Seedance V2.0 Reference-to-Video face à Vidu Q3 Reference-to-Video Vidu Q3 Reference-to-Video utilise des références d'images dans la configuration actuelle de Best Image AI. Seedance V2.0 accepte également des vidéos de référence et des fichiers audio de référence facultatifs.
Seedance V2.0 Reference-to-Video face aux outils vidéo Runway Runway offre une suite de création interactive plus étendue. Seedance V2.0 Reference-to-Video fournit un workflow API ciblé autour des prompts, des imports de références compatibles, de paramètres de sortie et du son généré.
// 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.0-reference-to-video',
prompt: 'Use image one for the subject, video one for the movement, and audio one for the atmosphere',
resolution: '1080p',
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.0-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: '1080p',
duration: 10,
aspect_ratio: '16:9',
sound: true,
images: [
'https://example.com/explorer-reference.jpg',
'https://example.com/environment-reference.jpg'
],
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.0-reference-to-video",
"prompt": "Use image one for the subject, video one for the movement, and audio one for the atmosphere",
"resolution": "1080p",
"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"