text-to-video
Seedance 1.5 Pro Image-to-Video generates cinematic, live-action–leaning clips from a text prompt plus a first-frame image, preserving the image's subject and composition while adding expressive motion and stable aesthetics. It supports 4–12s duration control, adaptive aspect ratio, and reproducible outputs via seeds, ideal for ad creatives and short-drama shots that need a strong visual anchor.
Use one of our client libraries to get started quickly.
Seedance 1.5 Pro Image-to-Video generates cinematic, live-action–leaning clips from a text prompt plus a first-frame image, preserving the image's subject and composition while adding expressive motion and stable aesthetics. It supports 4–12s duration control, adaptive aspect ratio, and reproducible outputs via seeds, ideal for ad creatives and short-drama shots that need a strong visual anchor.. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Send a POST request to start generation. The API returns immediately with a prediction ID for polling.
curl -X POST "https://api.vibedream.ai/api/v1/models/seedance-1.5-pro-i2v/generate" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $VIBEDREAM_API_KEY" \
-d '{
"prompt": "A beautiful sunset over mountains with golden light",
"image": "https://example.com/your-image.jpg",
"last_image": "https://example.com/your-last_image.jpg",
"duration": 4,
"resolution": "480p",
"aspect_ratio": "16:9",
"camera_fixed": false,
"seed": -1,
"generate_audio": false
}'The API uses an API Key for authentication.
Get your API key from vibedream.ai/models/api-keys.
export VIBEDREAM_API_KEY="your-api-key"
Generation requests are queued and processed asynchronously. Poll the prediction endpoint until status is completed or failed.
curl -X POST "https://api.vibedream.ai/api/v1/models/seedance-1.5-pro-i2v/generate" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $VIBEDREAM_API_KEY" \
-d '{
"prompt": "A beautiful sunset over mountains with golden light",
"image": "https://example.com/your-image.jpg",
"last_image": "https://example.com/your-last_image.jpg",
"duration": 4,
"resolution": "480p",
"aspect_ratio": "16:9",
"camera_fixed": false,
"seed": -1,
"generate_audio": false
}'Response
Returns immediately with a prediction ID. Use id to poll for results.
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "processing",
"statusUrl": "https://api.vibedream.ai/api/v1/predictions/550e8400-e29b-41d4-a716-446655440000",
"estimatedTime": "60-120s",
"costCents": 29,
"createdAt": "2025-01-15T12:00:00.000Z"
}# Replace YOUR_PREDICTION_ID with the id from the submit response curl "https://api.vibedream.ai/api/v1/predictions/YOUR_PREDICTION_ID" \ -H "Authorization: Bearer $VIBEDREAM_API_KEY" # Poll every 1-2s until status is "completed" or "failed"
Completed response
outputs is string[] — an array of direct download URLs hosted on assets.vibedream.ai.
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"modelId": "seedance-1.5-pro-i2v",
"modelName": "Seedance 1.5 Pro Image to Video",
"status": "completed",
"outputs": [
"https://assets.vibedream.ai/outputs/550e8400-e29b-41d4-a716-446655440000/1736942400000-0.mp4"
],
"error": null,
"createdAt": "2025-01-15T12:00:00.000Z",
"completedAt": "2025-01-15T12:00:30.000Z"
}Failed response
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"modelId": "seedance-1.5-pro-i2v",
"modelName": "Seedance 1.5 Pro Image to Video",
"status": "failed",
"outputs": null,
"error": "Your request was flagged by content moderation. Please modify your prompt.",
"createdAt": "2025-01-15T12:00:00.000Z",
"completedAt": "2025-01-15T12:00:05.000Z"
}| Field | Type | Description |
|---|---|---|
| id | string | Unique prediction ID (UUID). |
| modelId | string | ID of the model used for generation. |
| modelName | string | Human-readable model name. |
| status | string | Current status. One of: processing, completed, failed. |
| outputs | string[] | null | Array of output URLs. Each URL is a direct download link to the generated file on assets.vibedream.ai. null when still processing or failed. |
| error | string | null | Error message if the generation failed. null on success. |
| createdAt | string | ISO 8601 timestamp when the request was submitted. |
| completedAt | string | null | ISO 8601 timestamp when generation finished. null while processing. |
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| prompt | string | Yes | -- | -- | The instruction describing what should happen in the video (action + camera + style). |
| image | string | Yes | -- | -- | The reference image that anchors composition, subject identity, and lighting.Pass a public image URL. Accepted: JPEG, PNG, GIF, WebP. |
| last_image | string | No | -- | -- | An optional ending frame to steer the final composition (if supported).Pass a public image URL. Accepted: JPEG, PNG, GIF, WebP. |
| duration | number | No | -- | 4 – 12 (step 1) | Video length in seconds. |
| resolution | string | No | -- | 480p, 720p, 1080p | Output resolution. |
| aspect_ratio | string | No | -- | 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, auto | Output aspect ratio. |
| camera_fixed | boolean | No | -- | -- | Whether to keep the camera position fixed. |
| seed | number | No | -- | -1 – 1000 (step 1) | Random seed for reproducibility. |
| generate_audio | boolean | No | -- | -- | To decide whether to generate videos with audio. |
{
"prompt": "A beautiful sunset over mountains with golden light",
"image": "https://example.com/your-image.jpg",
"last_image": "https://example.com/your-last_image.jpg",
"duration": 4,
"resolution": "480p",
"aspect_ratio": "16:9",
"camera_fixed": false,
"seed": -1,
"generate_audio": false
}{
"id": "550e8400-e29b-41d4-a716-446655440000",
"modelId": "seedance-1.5-pro-i2v",
"modelName": "Seedance 1.5 Pro Image to Video",
"status": "completed",
"outputs": [
"https://assets.vibedream.ai/outputs/550e8400-e29b-41d4-a716-446655440000/1736942400000-0.mp4"
],
"error": null,
"createdAt": "2025-01-15T12:00:00.000Z",
"completedAt": "2025-01-15T12:00:30.000Z"
}