Seedance image to video: how to animate a still, and what it costs
Seedance 2.0 Fast accepts a starting frame. One field changes, and the price does not change at all.
curl -X POST https://genace.ai/api/v1/video/generations \
-H "Authorization: Bearer $GENACE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0-fast",
"prompt": "the camera pushes slowly forward, dust drifting in the light",
"image_inputs": ["https://example.com/frame.jpg"]
}'
What you get
| Value | |
|---|---|
| Duration | any integer from 3 to 15 seconds |
| Resolution | 720p, 1080p — 720p costs half |
| Aspect ratios | 16:9, 9:16, 1:1, 4:3, 3:4 |
| Cost | 25 credits ($0.25–$0.35) |
Same price as text-to-video. No discount for giving the model a head start, no surcharge for the extra input.
Two things about image_inputs
It takes a URL, not an upload — the image has to be reachable by the upstream provider, so a locally generated still needs somewhere to live first.
Only the first entry is used. Passing [start, end] does not produce an
interpolation between two frames; the second URL is ignored.
Spend the prompt on motion
With a start frame supplied, the prompt describes movement, not subject. The frame already shows the subject — re-describing it is the most common reason an image-to-video result comes back looking frozen.
The image to video prompt generator has no subject field for exactly this reason.
Match the aspect ratio to your image
aspect_ratio is still yours to set and is not reconciled with the image you
supplied. A 16:9 still with 9:16 requested gives the model contradictory
instructions. Seedance 2.0 Fast accepts 16:9, 9:16, 1:1, 4:3, 3:4; anything else
returns 400 INVALID_PARAM.
Models covered on this page
Where these facts come from
- codebase: src/ai/providers/seedance.ts — imageInputs handling and pricing()
- codebase: src/app/api/v1/video/generations/route.ts — request mapping