Tạo video điện ảnh bằng Seedance 2.5 Reference-to-Video API của ByteDance. Cần ít nhất 1 video tham chiếu; hình ảnh/âm thanh tùy chọn, 6 tỷ lệ, 4–30 giây, âm thanh, 480p/720p.
API ByteDance Seedance 2.5 Reference-to-Video kết hợp một video tham chiếu bắt buộc với hình ảnh, âm thanh và các nội dung video bổ sung tùy chọn để định hướng quá trình tạo video mới trên Bestimage AI. Các nhà phát triển và đội ngũ sáng tạo có thể sử dụng nội dung tham chiếu đa phương thức để truyền đạt diện mạo chủ thể, sản phẩm, môi trường, chuyển động, thời điểm, âm thanh và định hướng hình ảnh một cách chính xác hơn so với chỉ dùng văn bản. Khả năng kiểm soát linh hoạt chất lượng, thời lượng, tỷ lệ khung hình và âm thanh được tạo giúp API phù hợp với nội dung thương hiệu, quy trình nhân vật, kể chuyện sản phẩm và các hệ thống sáng tạo có thể mở rộng.
Lưu ý Cần có ít nhất một video tham chiếu. Hình ảnh tham chiếu là tùy chọn và có thể được bỏ qua khi đã cung cấp video; chỉ riêng âm thanh hoặc hình ảnh không thể thay thế đầu vào video bắt buộc. Vui lòng đảm bảo tất cả prompt và nội dung đa phương tiện tuân thủ nguyên tắc an toàn nội dung của ByteDance.
Seedance 2.5 Reference-to-Video so với Seedance 2.5 Text-to-Video
Text-to-Video tạo video
chỉ từ hướng dẫn bằng văn bản. Reference-to-Video bổ sung hướng dẫn bằng video bắt buộc cùng hình ảnh và âm thanh tùy chọn cho quy trình cần kiểm soát cụ thể hơn đối với
chuyển động, diện mạo, thời điểm hoặc phong cách.
Seedance 2.5 Reference-to-Video so với Seedance 2.5 Image-to-Video
Image-to-Video tạo chuyển động cho khung hình đầu tiên bắt buộc và
có thể sử dụng khung hình cuối tùy chọn. Reference-to-Video bắt đầu từ nội dung video bắt buộc và có thể kết hợp nội dung đó với các tài sản
hình ảnh và âm thanh tùy chọn để mang lại định hướng đa phương thức rộng hơn.
Seedance 2.5 Reference-to-Video so với Wan Reference-to-Video
Cả hai phương pháp đều sử dụng nội dung đa phương tiện đã tải lên để định hướng quá trình tạo video
mới. Seedance 2.5 cung cấp quy trình bắt buộc có video với nhiều hình ảnh và âm thanh tham chiếu tùy chọn cùng
khả năng kiểm soát đầu ra linh hoạt thông qua Bestimage AI.
Seedance 2.5 Reference-to-Video so với Vidu Reference-to-Video
Vidu cung cấp khả năng tạo video dựa trên tham chiếu để duy trì
tính nhất quán về hình ảnh. Seedance 2.5 tạo khác biệt nhờ hướng dẫn bằng video bắt buộc và khả năng kết hợp hình ảnh cùng
âm thanh tham chiếu tùy chọn trong một yêu cầu duy nhất.
Seedance 2.5 Reference-to-Video so với Runway Video Tools
Runway cung cấp một bộ công cụ sáng tạo tương tác đa dạng.
API Seedance 2.5 Reference-to-Video mang đến quy trình lập trình tập trung cho đầu vào đa phương tiện đa phương thức, định hướng tham chiếu bằng
prompt và khả năng tạo nội dung có thể mở rộng.
// 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"