Genace

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
Durationany integer from 3 to 15 seconds
Resolution720p, 1080p — 720p costs half
Aspect ratios16:9, 9:16, 1:1, 4:3, 3:4
Cost25 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