使用 Seedance 2.0 API 让图片动起来。以视觉保真、内置声音、灵活动作和稳定输出创建真实人物视频,适合产品展示、人物镜头和社媒视频创作。 让静态参考图转化为更自然的动态内容,提升视觉叙事和内容发布效率。
ByteDance Seedance V2.0 图像生成视频 API 为开发者和创意团队提供生产级 AI 视频动画服务。这一先进的图转视频 API 集成方案,让您能够将静态图像转换为 480p 和 720p 分辨率、时长 4 至 15 秒的高质量动画视频片段。基于 ByteDance 的双分支扩散 Transformer 架构,Seedance V2.0 模型将上下文感知的运动合成与可选镜头控制相结合,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 种 vs. 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)