使用 Seedance 2.0 Reference API 建立參考引導影片。可使用影片參考、真實人物支援、彈性比例和穩定輸出,讓動作、鏡頭和風格方向更容易控制。 適合需要參考動作、人物表現或畫面節奏的短影片與廣告素材。
ByteDance Seedance V2.0 參考影片轉影片 API 為需要精準視覺一致性控制的開發者與創意團隊,提供專業級 AI 影片生成能力。這套先進的參考轉影片 API 整合,可使用參考影片搭配提示詞,生成 480p 與 720p 解析度的高品質影片片段,用來引導運動、節奏與視覺連續性。Seedance V2.0 以 ByteDance 的雙分支擴散 Transformer 架構為基礎,並支援音訊支援,為 Best Image AI 上品牌一致、角色驅動的影片製作提供穩定的來源影片引導能力。
注意 請確保您的參考影片、可選音訊與提示詞符合 ByteDance 的內容安全指南。如果發生錯誤,請檢查內容是否包含受限材料,調整後再試一次。
Seedance V2.0 參考影片轉影片 vs. Seedance V2.0 文字轉影片 Seedance V2.0 文字轉影片僅從文字描述生成影片。Seedance V2.0 參考影片轉影片 API 則加入參考影片輸入,用於實現更強的來源內容引導與視覺連續性,是品牌一致、角色驅動影片製作的合適選擇。
Seedance V2.0 參考影片轉影片 vs. Kling 3.0 參考生成 Kling 3.0 提供基於參考的生成與強大的人體動作合成。Seedance V2.0 參考影片轉影片 API 則透過參考影片輸入、音訊支援、6 種長寬比格式與延長到 15 秒的時長支援來區隔自身,更適合需要來源影片引導的情境。
Seedance V2.0 參考影片轉影片 vs. Runway Gen-3 Custom Mode Runway Gen-3 Custom Mode 提供以主體驅動的生成與創意控制。Seedance V2.0 參考影片轉影片 API 則提供參考影片輸入、音訊支援、可選固定鏡頭控制與 6 種長寬比格式,適合需要來源影片引導的製作流程。
Seedance V2.0 參考影片轉影片 vs. Pika 參考生成 Pika 提供基於參考的風格化與友善介面。Seedance V2.0 參考影片轉影片 API 則提供程式化存取、參考影片輸入、音訊支援與延長到 15 秒的時長,對需要可擴展影片生成的開發者更具優勢。
Seedance V2.0 參考影片轉影片 vs. Luma Ray Reference Mode Luma Ray 以快速生成與主體保真度著稱。Seedance V2.0 參考影片轉影片 API 提供相近的保真度與參考影片輸入、音訊支援、6 種長寬比格式,且無需基礎設施管理,非常適合大規模建置品牌一致影片管線的開發者。
// 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)