Skip to main content
Core.Today
|
ByteDanceMediumUltra

Seedance 2.5 Image to Video

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.

4920 credits
per 5s 720p video โ€” billed per second (480p 513/s, 720p 1100/s)
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

Run it right now

Test this model instantly in the Console Playground โ€” no code required

Sign in to try

Use with AI Assistant

Copy usage instructions for Claude, ChatGPT, or other AI

Quick Start

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "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
  }
}'

Parameters

ParameterTypeRequiredDefaultDescription
promptstringYes-The text prompt describing the desired motion and action for the video. For dialogue, put the spoken words in double quotes.
image_urlstringYes-The URL of the starting frame image to animate. Supported formats: JPEG, PNG, WebP. Max 30 MB.
durationstringYes5Duration 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.
456789101112131415161718192021222324252627282930
end_image_urlstringNo-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.
resolutionstringNo720pVideo resolution โ€” 480p for faster generation, 720p for balance.
480p720p
aspect_ratiostringNoautoThe aspect ratio of the generated video. Always "auto" for image-to-video โ€” the output follows the input image.
auto
generate_audiobooleanNotrueWhether 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.

How to Provide File Input

There are 3 ways to provide files for the image_urlend_image_url parameters:

Recommended

Image URL

Pass a publicly accessible URL directly. With the Storage API (POST /v1/files/upload-url) the file uploads straight to S3 (50MB per file) and you pass the returned file_url.

{
  "model": "bytedance/seedance-2.5/image-to-video",
  "input": {
    "prompt": "your prompt here",
    "image_url": "https://example.com/image.jpg"
  }
}

Direct Upload (Multipart)

Attach files directly to POST /v1/predictions/upload. No separate upload step, but the bytes pass through the API server so the whole request is capped at 10MB.

curl -X POST "https://api.core.today/v1/predictions/upload" \
  -H "X-API-Key: cdt_your_api_key" \
  -F "model=bytedance/seedance-2.5/image-to-video" \
  -F 'input={"prompt":"your prompt here"}' \
  -F "file:image_url=@your_file.png"
See the File Upload docs for more upload methods including Presigned URLs.

Common Parameters

Common parameters used when calling POST /v1/predictions.

ParameterTypeRequiredDefaultDescription
modelstringYes-Model identifier
inputobjectYes-Object containing the model-specific parameters from the table above
output_folderstringNo-Folder path for output files (max 256 chars, '..' not allowed)
webhook_urlstringNo-Webhook URL to call on completion
is_publicbooleanNofalseIf true, output files are also available via permanent public URLs

Examples

Animate a still into a 5-second clip

Provide a first-frame image and describe the motion you want; audio is generated alongside.

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "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.

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "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"
  }
}'

Tips & Best Practices

1duration is a string on this endpoint โ€” send "5", not 5. Integers are rejected before the request reaches the provider.
2Crop 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.
3Longer takes work best when the prompt describes a clear beginning-to-end progression rather than a single static action.
4Use end_image_url when you need to land on a specific frame โ€” an open-ended motion prompt will not reliably end where you want.

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