# Seedance 2.5 Image to Video - Core.Today AI API > ByteDance Seedance 2.5 image-to-video via Fal.AI. Animates a single still into a native clip of up to 30 seconds at 480p/720p without the drift or stitching of multi-clip workflows, with optional end-frame control and synchronized audio generated in the same pass. - **Provider**: ByteDance - **Model ID**: bytedance/seedance-2.5/image-to-video - **Category**: Video Generation - **Credits**: 5500 per 5s 720p video — billed per second (480p 513/s, 720p 1100/s) - **Speed**: Medium - **Quality**: Ultra ## Features - Animates one still image into a native take of up to 30 seconds - Optional end_image_url for a controlled first-to-last frame transition - Synchronized audio, including lip-synced speech, generated with the video - Preserves the look and style of the source image while adding natural motion - Output aspect ratio always follows the input image ## Use Cases - Turning a hero product photo into a 15-30 second showcase clip - Animating illustrations or key art into a moving title sequence - First-to-last keyframe transitions between two designed shots - Bringing archival or generated stills to life for social and ad placements ## API Endpoint Base URL: https://api.core.today/v1 Create Prediction: POST /predictions Get Status: GET /predictions/{job_id} ## Authentication Header: X-API-Key: YOUR_API_KEY ## Input Parameters ### Required - **prompt**: string - The text prompt describing the desired motion and action for the video. For dialogue, put the spoken words in double quotes. - **image_url**: string - The URL of the starting frame image to animate. Supported formats: JPEG, PNG, WebP. Max 30 MB. - **duration**: string - Duration of the video in seconds (4-30), sent as a string. Required — upstream also accepts "auto", but the resulting length is unknown at request time and cannot be billed accurately, so this gateway requires an explicit duration. Options: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 ### Optional - **end_image_url**: string - The URL of the image to use as the last frame of the video. When provided, the generated video transitions from the starting image to this ending image. - **resolution**: string (default: 720p) - Video resolution — 480p for faster generation, 720p for balance. Options: 480p, 720p - **aspect_ratio**: string (default: auto) - The aspect ratio of the generated video. Always "auto" for image-to-video — the output follows the input image. Options: auto - **generate_audio**: boolean (default: true) - Whether to generate synchronized audio for the video, including sound effects, ambient sounds, and lip-synced speech. The cost of video generation is the same regardless of whether audio is generated. ## Examples ### Animate a still into a 5-second clip Provide a first-frame image and describe the motion you want; audio is generated alongside. ```json { "model": "bytedance/seedance-2.5/image-to-video", "input": { "prompt": "An octopus finds a football in the ocean and excitedly calls its octopus friends to come and play. Cut scene to an octopus football game under the sea.", "image_url": "https://v3b.fal.media/files/b/0a8eba37/Cqg-4Uwzyz4DELfceT1CF_a17e588773ec45b1a9e6f100a787b80b.jpg", "duration": "5", "resolution": "720p", "generate_audio": true } } ``` ### First-to-last frame transition Supply both a start and an end image so the model interpolates a controlled transition between two designed shots. ```json { "model": "bytedance/seedance-2.5/image-to-video", "input": { "prompt": "A smooth cinematic transition as the scene shifts from day to night.", "image_url": "https://example.com/start-frame.jpg", "end_image_url": "https://example.com/end-frame.jpg", "duration": "10", "resolution": "720p" } } ``` ## Response Format ```json { "job_id": "abc123", "status": "pending | processing | completed | failed", "result": "URL or data (when completed)" } ``` ## Usage Flow 1. POST /predictions with model and input -> receive job_id 2. GET /predictions/{job_id} -> poll until status is completed or failed 3. Result contains output URL(s) ## Tips - duration is a string on this endpoint — send "5", not 5. Integers are rejected before the request reaches the provider. - Crop the source image to your target ratio before uploading: the output aspect ratio always follows image_url, and aspect_ratio is fixed to auto here. - Longer takes work best when the prompt describes a clear beginning-to-end progression rather than a single static action. - Use end_image_url when you need to land on a specific frame — an open-ended motion prompt will not reliably end where you want. ## Documentation https://fal.ai/models/bytedance/seedance-2.5/image-to-video