Image to Video
Generate videos from images and reference media with the Seedance 2.0 Open API.
Image to Video
Generate videos from reference media with the Seedance 2.0 Open API. In this mode, you submit one or more public media URLs through mediaUrls together with your prompt.
This endpoint supports first-frame generation, first-and-last-frame control, and richer reference-based workflows. The generation mode is inferred from the number and type of materials you provide.
Endpoint
POST /api/open/v1/video/generationsSupported Reference Types
| Type | Common formats | Typical usage |
|---|---|---|
| Image | .jpg, .jpeg, .png, .webp, .gif, .bmp | First frame, last frame, style reference |
| Video | .mp4, .mov, .m4v | Motion and shot reference |
| Audio | .mp3, .wav | Rhythm or timing reference |
- You can pass up to
5items inmediaUrls. - Use publicly accessible HTTPS URLs.
- For best stability, keep reference media clean, direct, and tightly aligned with the prompt.
First Frame Example
curl --request POST \
--url https://www.seedance2.ink/api/open/v1/video/generations \
--header 'Authorization: Bearer sd2_live_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"model": "seedance-2.0",
"prompt": "A young woman blows out birthday candles, warm indoor lighting, shallow depth of field",
"mediaUrls": [
"https://example.com/photo.jpg"
],
"aspectRatio": "16:9",
"duration": 5,
"resolution": "720p"
}'First and Last Frame Example
curl --request POST \
--url https://www.seedance2.ink/api/open/v1/video/generations \
--header 'Authorization: Bearer sd2_live_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"model": "seedance-2.0",
"prompt": "A cinematic transition from sunrise over the ocean to a glowing night skyline",
"mediaUrls": [
"https://example.com/first-frame.jpg",
"https://example.com/last-frame.jpg"
],
"aspectRatio": "16:9",
"duration": 6,
"resolution": "1080p"
}'Multimodal Reference Example
curl --request POST \
--url https://www.seedance2.ink/api/open/v1/video/generations \
--header 'Authorization: Bearer sd2_live_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"model": "seedance-2.0-fast",
"prompt": "A fashion film with energetic camera motion synced to the beat",
"mediaUrls": [
"https://example.com/reference-image.jpg",
"https://example.com/reference-audio.mp3"
],
"aspectRatio": "9:16",
"duration": 8,
"resolution": "720p",
"webhookUrl": "https://your-app.com/webhooks/seedance"
}'Success Response
{
"success": true,
"requestId": "req_1234567890",
"status": "queued",
"creditsCharged": 64
}Request Body
| Field | Type | Required | Description |
|---|---|---|---|
model | string | Yes | One of seedance-2.0, seedance-2.0-fast, seedance-1.5-pro. |
prompt | string | Yes | Text instruction describing the target video. |
mediaUrls | string[] | Yes | One to five public media URLs used as reference material. |
aspectRatio | string | No | One of 16:9, 9:16, 1:1. |
duration | integer | No | For seedance-2.0 and seedance-2.0-fast: 4-15. For seedance-1.5-pro: 5 or 10. |
resolution | string | No | One of 480p, 720p, 1080p. |
webhookUrl | string | No | Callback URL that receives the final task result. |
metadata | object | No | Custom metadata stored with the request. |
Query Result
Query the result with the task ID returned at submission time:
curl https://www.seedance2.ink/api/open/v1/video/generations/req_1234567890 \
--header 'Authorization: Bearer sd2_live_your_api_key'{
"success": true,
"requestId": "req_1234567890",
"status": "succeeded",
"model": "seedance-2.0",
"prompt": "A young woman blows out birthday candles, warm indoor lighting, shallow depth of field",
"duration": 5,
"aspectRatio": "16:9",
"output": {
"type": "video",
"url": "https://pub-your-bucket.r2.dev/open-api-results/req_1234567890.mp4"
},
"error": null
}The output URL is only returned when the task reaches succeeded.
Cancel Task
curl --request POST \
--url https://www.seedance2.ink/api/open/v1/video/generations/req_1234567890/cancel \
--header 'Authorization: Bearer sd2_live_your_api_key'{
"success": true,
"requestId": "req_1234567890",
"status": "cancelled"
}Notes
- Use
seedance-2.0orseedance-2.0-fastfor richer multimodal reference workflows. seedance-1.5-prois best reserved for simpler image-guided generation.- If you do not need reference media, use Text to Video instead.