# Seedance V1.5 | Pro | Image to Video Seedance 1.5 Image to Video Pro generates high-quality videos with synchronized audio from images, delivering smooth motion, cinematic visuals, and immersive sound. ## API Information - **Model Slug:** seedance-v1-5-pro-image-to-video - **Branded URL:** https://www.eachlabs.ai/bytedance/seedance-v1-5/seedance-v1-5-pro-image-to-video - **Provider:** ByteDance - **Category:** Image to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** Audio generation enabled: $2.4 per 1M tokens - **Estimated Processing Time:** 50 seconds - **Last Updated:** 2026-08-12 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/seedance-v1-5-pro-image-to-video ## Pricing - **Charge Type:** dynamic - **Pricing Details:** Audio generation enabled: $2.4 per 1M tokens ### Pricing Rules | Condition | Pricing | | --- | --- | | generate_audio == "false" | Audio generation disabled: $1.2 per 1M tokens | | Rule 2 | Audio generation enabled: $2.4 per 1M tokens | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | The text prompt used to generate the video | | image_url | string | Yes | - | - | The URL of the image used to generate video | | end_image_url | string | No | - | - | The URL of the image the video ends with. Defaults to None. | | aspect_ratio | string | No | 16:9 | 21:9,16:9,4:3,1:1,3:4,9:16 | The aspect ratio of the generated video | | duration | integer | No | 5 | 4,5,6,7,8,9,10,11,12 | Duration of the video in seconds | | resolution | string | No | 720p | 480p,720p,1080p | Video resolution - 480p for faster generation, 720p for balance | | generate_audio | boolean | No | true | - | Whether to generate audio for the video | | camera_fixed | boolean | No | false | - | Whether to fix the camera position | | seed | integer | No | - | - | Random seed to control video generation. Use -1 for random. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-v1-5-pro-image-to-video", "input": { "prompt": "Animate the provided image into a realistic talking video, preserving the character’s identity and appearance, facing the camera with natural lip sync, subtle facial expressions, soft lighting, stable framing, minimal background movement, realistic mouth and eye motion, and no on-screen text or logos, saying: “From image to motion, everything stays consistent and lifelike.”", "image_url": "https://storage.googleapis.com/magicpoint/inputs/seedance-v1-5-pro-image-to-video-input.png" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated video)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "Authorization: Bearer YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `Authorization` bearer token | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **seedance-v1.5-pro-image-to-video — Image-to-Video AI Model** Developed by Bytedance as part of the **seedance-v1.5** family, **seedance-v1.5-pro-image-to-video** transforms static images into dynamic, cinematic videos with natively synchronized audio, eliminating post-production editing for dialogue, sound effects, and ambient noise. This **Bytedance image-to-video** model excels in image-to-video AI generation by using a dual-branch Diffusion-Transformer architecture that processes visuals and audio simultaneously, delivering millisecond-level lip-sync and environmental sound matching. Ideal for creators seeking **image-to-video AI model** solutions with professional camera control, it supports uploads of reference images to generate 5-10 second clips at up to 1080p resolution, preserving character identity and fine details while adding immersive soundscapes. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `Authorization: Bearer YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.