Create reference-guided videos quickly with Seedance 2.0 Fast API. Use realistic human support, built-in sound, flexible ratios, and stable output.
ByteDance Seedance V2.0 Fast Reference-to-Video API provides cost-effective reference-guided video generation for rapid creative workflows on Best Image AI. The current API integration accepts a text prompt with at least one reference image or video, plus optional additional image, video, and audio references. It supports 480p and 720p output, configurable duration, multiple aspect ratios, and an optional generated-sound setting.
Note At least one reference image or video is required; audio alone cannot be used as the only reference input. Please ensure your prompts and reference media comply with ByteDance's content safety guidelines.
Seedance V2.0 Fast vs. Seedance V2.0 Standard Reference-to-Video Both variants expose the same reference-media types and core controls on Best Image AI. The Fast variant uses 480p and 720p output tiers, while the standard variant also exposes 1080p and 4K options.
Seedance V2.0 Fast vs. Seedance V2.0 Fast Text-to-Video Fast Text-to-Video works from a text prompt. Fast Reference-to-Video adds supported image, video, and optional audio inputs plus prompt-based media mentions.
Seedance V2.0 Fast vs. Wan 2.7 Reference-to-Video Both APIs accept image and video references. Wan 2.7 additionally exposes negative-prompt and seed controls, while Seedance V2.0 Fast supports multiple optional audio references and a generated-sound toggle.
Seedance V2.0 Fast vs. Vidu Q3 Reference-to-Video Vidu Q3 Reference-to-Video uses image references in the current Best Image AI configuration. Seedance V2.0 Fast also accepts reference videos and optional reference audio.
Seedance V2.0 Fast vs. Runway Video Tools Runway offers a broader interactive creation suite. Seedance V2.0 Fast Reference-to-Video provides a focused API workflow around prompts, supported reference uploads, efficient output settings, and generated sound.
// 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-fast-reference-to-video',
prompt: 'Use image one for the subject, follow the movement from video one, and use audio one for the atmosphere',
resolution: '720p',
duration: 8,
aspect_ratio: '9:16',
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-fast-reference-to-video',
prompt: 'Have the dancer from <<<image_1>>> perform the movement from <<<video_1>>> on the stage in <<<image_2>>>, using the rhythm from <<<audio_1>>>',
resolution: '720p',
duration: 10,
aspect_ratio: '9:16',
sound: true,
images: [
'https://example.com/dancer-reference.jpg',
'https://example.com/stage-reference.jpg'
],
videos: ['https://example.com/dance-movement-reference.mp4'],
audios: ['https://example.com/rhythm-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-fast-reference-to-video",
"prompt": "Use image one for the subject, follow the movement from video one, and use audio one for the atmosphere",
"resolution": "720p",
"duration": 8,
"aspect_ratio": "9:16",
"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"