Buat video terpandu dengan API Seedance 2.0 Reference. Gunakan referensi video, dukungan manusia nyata, rasio fleksibel, dan output stabil.
API ByteDance Seedance V2.0 Reference-to-Video menyediakan pembuatan video berpanduan referensi untuk pengembang dan tim kreatif di Best Image AI. Integrasi API saat ini menerima prompt teks dengan setidaknya satu gambar atau video referensi, ditambah referensi gambar, video, dan audio tambahan yang bersifat opsional. API ini mendukung durasi yang dapat dikonfigurasi, beragam rasio aspek, beberapa tingkat resolusi, serta pengaturan suara yang dihasilkan secara opsional untuk alur kerja video yang terkontrol.
Catatan Setidaknya satu gambar atau video referensi diperlukan; audio saja tidak dapat digunakan sebagai satu-satunya input referensi. Pastikan prompt dan media referensi Anda mematuhi pedoman keamanan konten ByteDance.
Seedance V2.0 Reference-to-Video vs. Seedance V2.0 Text-to-Video Seedance V2.0 Text-to-Video bekerja dari prompt teks. Reference-to-Video menambahkan input gambar, video, dan audio opsional yang didukung serta penyebutan media berbasis prompt.
Seedance V2.0 Reference-to-Video vs. Seedance V2.0 Fast Reference-to-Video Kedua varian menyediakan jenis media referensi dan kontrol inti yang sama di Best Image AI. Varian standar menambahkan opsi resolusi 1080p dan 4K, sedangkan varian Fast berfokus pada alur kerja 480p dan 720p.
Seedance V2.0 Reference-to-Video vs. Wan 2.7 Reference-to-Video Kedua API menerima referensi gambar dan video. Wan 2.7 juga menyediakan kontrol prompt negatif dan seed, sedangkan Seedance V2.0 mendukung beberapa referensi audio opsional dan tombol suara yang dihasilkan.
Seedance V2.0 Reference-to-Video vs. Vidu Q3 Reference-to-Video Vidu Q3 Reference-to-Video menggunakan referensi gambar dalam konfigurasi Best Image AI saat ini. Seedance V2.0 juga menerima video referensi dan audio referensi opsional.
Seedance V2.0 Reference-to-Video vs. Runway Video Tools Runway menawarkan rangkaian pembuatan interaktif yang lebih luas. Seedance V2.0 Reference-to-Video menyediakan alur kerja API terfokus yang mencakup prompt, unggahan referensi yang didukung, pengaturan output, dan suara yang dihasilkan.
// 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"