Animate images via Seedance 2.0 Mini API with optional sound, flexible duration, broad aspect ratios, and stable ByteDance output for scalable workflows.
ByteDance Seedance V2.0 Mini Image-to-Video API delivers fast, affordable AI video animation for developers and creative teams. Seedance 2.0 Mini is a cost-effective version of Seedance V2.0, built for users who want the core Seedance image-to-video workflow with faster iteration and lower production cost. This image-to-video API integration transforms source images into animated video clips with prompt guidance, flexible formats, and optional sound on Best Image AI.
Note Please ensure your input images and prompts comply with ByteDance's content safety guidelines. If an error occurs, review your content for restricted material, adjust it, and try again.
Seedance V2.0 Mini vs. Seedance V2.0 Standard Image-to-Video Seedance V2.0 Standard provides the full professional image animation workflow. Seedance V2.0 Mini maintains the same practical Seedance image-to-video use cases while emphasizing cheaper and faster generation for high-volume creative teams.
Seedance V2.0 Mini vs. Seedance V2.0 Fast Image-to-Video Seedance V2.0 Fast is optimized around accelerated animation. Seedance V2.0 Mini focuses more directly on affordability, making it a strong choice for teams that need many image animation drafts and production variants.
Seedance V2.0 Mini vs. Veo 3.1 Fast Image-to-Video Veo 3.1 Fast provides Google's rapid image animation workflow. Seedance V2.0 Mini offers ByteDance image-to-video generation with flexible controls, broad publishing formats, and a cost-effective API path for scalable output.
Seedance V2.0 Mini vs. Kling Image-to-Video Kling is strong for character motion and human-centric animation. Seedance V2.0 Mini is useful for affordable source-image animation across product, marketing, portrait, and social content workflows.
Seedance V2.0 Mini vs. Pika Image-to-Video Pika offers accessible creator-focused animation tools. Seedance V2.0 Mini API is designed for developers and production teams that need programmatic integration, affordable scaling, and repeatable image-to-video delivery.
// 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-mini-image-to-video',
prompt: 'Gentle camera push-in; leaves rustle softly in the breeze',
resolution: '720p',
duration: 8,
aspect_ratio: '16:9',
seed: -1,
sound: true,
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-mini-image-to-video',
'prompt': 'Gentle camera push-in; leaves rustle softly in the breeze',
'resolution': '720p',
'duration': 8,
'aspect_ratio': '16:9',
'seed': -1,
'sound': True,
'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-mini-image-to-video",
"prompt": "Gentle camera push-in; leaves rustle softly in the breeze",
"resolution": "720p",
"duration": 8,
"aspect_ratio": "16:9",
"seed": -1,
"sound": true,
"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)