使用 Seedance 2.0 API 讓圖片動起來。以視覺保真、內建聲音、彈性動作和穩定輸出建立真實人物影片,適合產品展示、人物鏡頭和社群影片創作。 讓靜態參考圖轉化為更自然的動態內容,提升視覺敘事和內容發布效率。
ByteDance Seedance V2.0 圖像轉影片 API 為開發者與創意團隊提供生產級 AI 影片動畫能力。這套先進的圖像轉影片 API 整合,可將靜態圖像轉換為 480p 與 720p 解析度、時長 4 到 15 秒的高品質動畫影片片段。Seedance V2.0 以 ByteDance 的雙分支擴散 Transformer 架構為基礎,將具上下文感知的動作合成與可選鏡頭控制結合,API 在 Best Image AI 上為專業動畫工作流程提供穩定整合。
注意 請確保您的來源圖像與提示詞符合 ByteDance 的內容安全準則。如果發生錯誤,請檢查內容是否包含受限材料,調整後再試一次。
Seedance V2.0 vs. Seedance 1.5 Pro 圖像轉影片 Seedance 1.5 Pro 提供超高性價比,適合最大產量。Seedance V2.0 圖像轉影片 API 則在此基礎上引入雙分支擴散 Transformer 架構、最長 15 秒時長支援、更高的 720p 解析度層級與可選固定鏡頭控制,為專業動畫工作流程帶來明顯更好的動作品質與視覺保真度。
Seedance V2.0 vs. Kling 3.0 圖像轉影片 Kling 3.0 在人體動作合成與角色動畫方面表現出色。Seedance V2.0 圖像轉影片 API 則透過更廣泛的長寬比支援(6 種格式,包含 21:9 超寬)、可選固定鏡頭控制、最長 15 秒時長與具競爭力的 120 點數/秒定價來區隔自身,適合多元動畫場景。
Seedance V2.0 vs. Runway Gen-3 圖像轉影片 Runway Gen-3 提供強大的創意彈性與藝術控制。Seedance V2.0 圖像轉影片 API 則提供更廣泛的長寬比覆蓋、可選固定鏡頭模式、最長 15 秒的擴展時長與可預測的每秒定價,對需要可擴展、經濟型圖像動畫的開發者更具優勢。
Seedance V2.0 vs. Veo 3.1 Fast 圖像轉影片 Veo 3.1 Fast 透過 Google DeepMind 架構實現快速動畫。Seedance V2.0 圖像轉影片 API 則以更廣泛的長寬比支援(6 種對 2 種)、最長 15 秒時長、可選固定鏡頭控制與更低的每秒定價回應,為多元內容製作需求提供更大彈性。
Seedance V2.0 vs. Pika 圖像轉影片 Pika 在風格化動畫與友善介面方面表現出色。Seedance V2.0 圖像轉影片 API 提供程式化存取、6 種長寬比格式、最長 15 秒的擴展時長、可選鏡頭控制與可預測定價,對需要可擴展、生產就緒圖像動畫且不想承擔額外營運負擔的開發者而言是理想選擇。
// 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-image-to-video',
prompt: 'Gentle camera push-in; leaves rustle softly in the breeze',
resolution: '720p',
duration: 8,
aspect_ratio: '16:9',
sound: true,
camera_fixed: false,
image_url: 'https://example.com/first-frame.jpg',
image_end_url: 'https://example.com/last-frame.jpg'
})
});
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-image-to-video',
'prompt': 'Gentle camera push-in; leaves rustle softly in the breeze',
'resolution': '720p',
'duration': 8,
'aspect_ratio': '16:9',
'sound': True,
'camera_fixed': False,
'image_url': 'https://example.com/first-frame.jpg',
'image_end_url': 'https://example.com/last-frame.jpg'
}
)
result = response.json()
task_id = result['data']['task_id']
# 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-image-to-video",
"prompt": "Gentle camera push-in; leaves rustle softly in the breeze",
"resolution": "720p",
"duration": 8,
"aspect_ratio": "16:9",
"sound": true,
"camera_fixed": false,
"image_url": "https://example.com/first-frame.jpg",
"image_end_url": "https://example.com/last-frame.jpg"
}'
# 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)