Create guided videos with Seedance 2.0 Reference API. Use video references, real human support, flexible ratios, and stable output.
ByteDance Seedance V2.0 Reference-to-Video API delivers professional-grade AI video generation for developers and creative teams requiring precise source-video guidance. This advanced reference-to-video API integration enables you to generate high-quality video clips at 480p and 720p resolutions using a reference video plus prompt guidance. Built on ByteDance's Dual-Branch Diffusion Transformer architecture, the Seedance V2.0 model provides stable motion transfer and optional audio input support for professional video production workflows on Best Image AI.
Note Please ensure your reference video, optional audio, and prompts comply with ByteDance's content safety guidelines. If an error occurs, review your content for restricted material, adjust it, and try again.
Seedance V2.0 Reference-to-Video vs. Seedance V2.0 Text-to-Video Seedance V2.0 Text-to-Video generates videos from text descriptions alone. Seedance V2.0 Reference-to-Video API adds reference video input, enabling source-guided motion and stronger visual continuity.
Seedance V2.0 Reference-to-Video vs. Kling 3.0 Reference Generation Kling 3.0 offers reference-based generation with strong human motion synthesis. Seedance V2.0 Reference-to-Video API differentiates through reference video input, optional audio URL support, 6 aspect ratio formats, and extended 15-second duration.
Seedance V2.0 Reference-to-Video vs. Runway Gen-3 Custom Mode Runway Gen-3 Custom Mode provides subject-driven generation with creative controls. Seedance V2.0 Reference-to-Video API offers reference video guidance, optional audio URL support, optional fixed camera control, and 6 aspect ratio formats.
Seedance V2.0 Reference-to-Video vs. Pika Reference Generation Pika offers reference-based stylization with a user-friendly interface. Seedance V2.0 Reference-to-Video API provides programmatic access, reference video guidance, optional audio URL support, and extended 15-second duration.
Seedance V2.0 Reference-to-Video vs. Luma Ray Reference Mode Luma Ray is celebrated for rapid generation and subject fidelity. Seedance V2.0 Reference-to-Video API offers comparable fidelity with reference video guidance, optional audio URL support, and 6 aspect ratio formats.
// 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: 'Cinematic product reveal with smooth motion matching the reference style',
resolution: '720p',
duration: 8,
aspect_ratio: '16:9',
sound: true,
camera_fixed: false,
audio_url: 'https://example.com/reference-audio.mp3',
video_url: 'https://example.com/reference-video.mp4'
})
});
const { data } = await response.json();
const taskId = data.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': 'seedance-v2.0-reference-to-video',
'prompt': 'Cinematic product reveal with smooth motion matching the reference style',
'resolution': '720p',
'duration': 8,
'aspect_ratio': '16:9',
'sound': True,
'camera_fixed': False,
'audio_url': 'https://example.com/reference-audio.mp3',
'video_url': 'https://example.com/reference-video.mp4',
}
)
result = response.json()
task_id = result['data'][]
# 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": "Cinematic product reveal with smooth motion matching the reference style",
"resolution": "720p",
"duration": 8,
"aspect_ratio": "16:9",
"sound": true,
"camera_fixed": false,
"audio_url": "https://example.com/reference-audio.mp3",
"video_url": "https://example.com/reference-video.mp4"
}'
# 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"
# 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)