Seedance 2.5 Image to Video API
/v1/tasks Image, video, and audio models are called through the Unified Async API POST /v1/tasks endpoint; only the input fields differ (see input parameters below).
Model summary
| Model | seedance-2.5/image-to-video |
|---|---|
| Capability | First-frame / first-last-frame image-to-video |
| Resolution | 480p / 720p |
| Duration | 4-30 seconds |
Generate up to 30 seconds from a first frame or a first/last-frame pair, with the output ratio following the first frame and optional synchronized audio.
Production guidance
- Use first_frame_url together with last_frame_url.
- Use callback.url for terminal notifications and GET /v1/tasks/:id as a fallback query.
- Artifact URLs expire; copy files you need to keep into persistent storage.
Best suited for
Add natural motion and camera movement to a poster, product image, illustration, or scene.
first_frame_urlSpecify both endpoints to create a coherent transition between two images.
first_frame_urllast_frame_urlGenerate synchronized dialogue, effects, and background music for an image-driven shot.
generate_audioRequest parameters
model string required Model ID.
input object required First-frame and first/last-frame image-to-video parameters.
prompt string required Motion, camera, scene, and audio instructions. Eleven prompt languages are supported.
first_frame_url string optional First-frame image URL, data URL, or asset ID. Supports jpeg, png, webp, bmp, tiff, gif, heic, and heif; under 30 MB; each side 300-6000 px; aspect ratio 0.4-2.5. SVG is not supported.
last_frame_url string optional Last-frame image URL used with first_frame_url. If the aspect ratios differ, the last frame is center-cropped to match the first.
reference_image_urls string[] optional Array of up to 30 reference image URLs for subject, style, or composition guidance. SVG is not supported.
reference_audio_urls string[] optional Array of up to 10 reference audio clips. Supports wav and mp3; each clip is 2-30 seconds and under 15 MB; combined duration is limited to 30 seconds.
resolution enum optional Output video resolution. Defaults to 480p.
duration integer optional Output duration in seconds. Accepts integers from 4 to 30 and defaults to 5 seconds.
aspect_ratio enum optional Output aspect ratio, derived from the first frame.
generate_audio boolean optional Generate synchronized dialogue, effects, and background audio.
output_format enum optional Output format. mp4 has broad compatibility; mov is intended for professional post-production.
watermark boolean optional Add an AI-generated watermark to the bottom-right corner.
web_search boolean optional Allow the model to search for current information mentioned in the prompt.
callback object optional Sends the task object when the task reaches a terminal state; the polling endpoint wraps the same object in data.
url string required HTTPS URL that receives terminal notifications.
when enum optional Triggers when the task reaches a terminal state.
Example requests
Pass only the first frame and let the model create motion.
{
"model": "seedance-2.5/image-to-video",
"input": {
"prompt": "Move from a static view into a slow orbit",
"first_frame_url": "https://example.com/first-frame.jpg",
"resolution": "720p",
"duration": 6,
"aspect_ratio": "adaptive"
}
}Generate a coherent transition between two images.
{
"model": "seedance-2.5/image-to-video",
"input": {
"prompt": "A natural time-lapse transition from day to night",
"first_frame_url": "https://example.com/day.jpg",
"last_frame_url": "https://example.com/night.jpg",
"resolution": "480p",
"duration": 8,
"aspect_ratio": "adaptive",
"generate_audio": false
}
}Getting the result
- Read data.taskId from the create-task response.
- Wait for the callback or query GET /v1/tasks/:id; polling puts the task under data.
- When status=success, read the video URL from output type=video; a callback reads output directly.
FAQ
How do callback and polling responses differ?
They contain the same task fields but use different HTTP envelopes: polling puts the task under data, while the callback body is the task object itself.
Can I pass only first_frame_url?
Yes. last_frame_url is optional; without it, the model creates the rest of the shot from the first frame.
When should I use the reference-to-video model?
Use seedance-2.5/reference-to-video when a video should guide motion or camera movement. This model supports first/last frames, reference images, and reference audio.