สร้างวิดีโอระดับภาพยนตร์ด้วย Seedance 2.5 API จาก ByteDance: ≥1 คลิป ภาพ/เสียงได้ 6 สัดส่วน 4–30 วิ เสียง 480p/720p
API ByteDance Seedance 2.5 Reference-to-Video ผสานวิดีโออ้างอิงที่จำเป็นเข้ากับรูปภาพ เสียง และ ไฟล์วิดีโอเพิ่มเติมที่เลือกใช้ได้ เพื่อกำกับการสร้างวิดีโอใหม่บน Bestimage AI นักพัฒนาและทีมครีเอทีฟสามารถใช้ข้อมูลอ้างอิงแบบมัลติโหมด เพื่อสื่อสารรูปลักษณ์ของตัวแบบ ผลิตภัณฑ์ สภาพแวดล้อม การเคลื่อนไหว จังหวะเวลา เสียง และแนวทางด้านภาพได้ แม่นยำกว่าการใช้ข้อความเพียงอย่างเดียว การควบคุมคุณภาพ ระยะเวลา อัตราส่วนภาพ และเสียงที่สร้างขึ้นได้อย่างยืดหยุ่น ทำให้ API นี้เหมาะสำหรับ คอนเทนต์แบรนด์ เวิร์กโฟลว์ตัวละคร การเล่าเรื่องผลิตภัณฑ์ และระบบสร้างสรรค์ที่ปรับขนาดได้
หมายเหตุ จำเป็นต้องมีวิดีโออ้างอิงอย่างน้อยหนึ่งรายการ รูปภาพอ้างอิงเป็นตัวเลือกและสามารถละเว้นได้เมื่อมีวิดีโอ เสียงหรือรูปภาพเพียงอย่างเดียวไม่สามารถใช้แทนอินพุตวิดีโอที่จำเป็นได้ โปรดตรวจสอบว่าพรอมต์และสื่อทั้งหมดเป็นไปตาม แนวทางความปลอดภัยของเนื้อหาของ ByteDance
Seedance 2.5 Reference-to-Video เทียบกับ Seedance 2.5 Text-to-Video
Text-to-Video สร้างวิดีโอจากคำสั่งที่เขียน
เพียงอย่างเดียว Reference-to-Video เพิ่มวิดีโอแนะนำที่จำเป็น รวมถึงรูปภาพและเสียงที่เลือกใช้ได้ สำหรับเวิร์กโฟลว์ที่ต้องการการควบคุม
การเคลื่อนไหว รูปลักษณ์ จังหวะเวลา หรือสไตล์ที่ชัดเจนยิ่งขึ้น
Seedance 2.5 Reference-to-Video เทียบกับ Seedance 2.5 Image-to-Video
Image-to-Video ทำให้เฟรมแรกที่จำเป็นเคลื่อนไหว และ
สามารถใช้เฟรมสุดท้ายที่เลือกได้ Reference-to-Video เริ่มต้นจากเนื้อหาวิดีโอที่จำเป็น และสามารถผสานเข้ากับ
แอสเซตรูปภาพและเสียงที่เลือกใช้ได้ เพื่อให้แนวทางแบบมัลติโหมดที่กว้างขึ้น
Seedance 2.5 Reference-to-Video เทียบกับ Wan Reference-to-Video
ทั้งสองแนวทางใช้สื่อที่อัปโหลดเพื่อกำกับการสร้างวิดีโอ
ใหม่ Seedance 2.5 มีเวิร์กโฟลว์ที่ต้องใช้วิดีโอ พร้อมข้อมูลอ้างอิงแบบหลายรูปภาพและเสียงที่เลือกใช้ได้ รวมถึง
การควบคุมเอาต์พุตที่ยืดหยุ่นผ่าน Bestimage AI
Seedance 2.5 Reference-to-Video เทียบกับ Vidu Reference-to-Video
Vidu นำเสนอการสร้างวิดีโอโดยใช้ข้อมูลอ้างอิงเพื่อรักษาความ
สอดคล้องทางภาพ Seedance 2.5 แตกต่างด้วยการกำกับด้วยวิดีโอที่จำเป็น และความสามารถในการผสานข้อมูลอ้างอิงรูปภาพและ
เสียงที่เลือกใช้ได้ไว้ในคำขอเดียว
Seedance 2.5 Reference-to-Video เทียบกับ Runway Video Tools
Runway มีชุดเครื่องมือสร้างสรรค์แบบอินเทอร์แอกทีฟที่ครอบคลุม
API Seedance 2.5 Reference-to-Video มอบเวิร์กโฟลว์เชิงโปรแกรมที่มุ่งเน้นสำหรับอินพุตสื่อแบบมัลติโหมด การกำกับข้อมูลอ้างอิงด้วย
พรอมต์ และการสร้างในระดับที่ปรับขนาดได้
// 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"