Genace

Image to video API: which models accept a start frame and what it costs

All three video models on Genace accept a starting image. The request changes by one field; the price does not change at all.

The request

curl -X POST https://genace.ai/api/v1/video/generations \
  -H "Authorization: Bearer $GENACE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-2.0-standard",
    "prompt": "the camera pushes slowly forward, dust drifting in the light",
    "image_inputs": ["https://example.com/frame.jpg"],
    "duration_sec": 5
  }'

image_inputs is an array of URLs. The first entry is used as the starting frame; the adapters read imageInputs[0] and pass it upstream as the image parameter.

Two consequences worth knowing before you design around it:

  • It takes a URL, not an upload. The image has to be reachable by the upstream provider. If you are generating the still yourself, you need somewhere to put it first.
  • Extra entries beyond the first are not used as additional frames by these adapters. Do not expect [start, end] to produce an interpolation.

Pricing is identical to text-to-video

Model5-second clipDuration controlNotes
Seedance 2.0 Fast25 creditsany integer 3–15scheapest; 720p halves it
Kling 2.0 Standard35 credits5 or 10 only1080p only
Veo 3n/a — 8s fixednone100 credits per clip

Starting from an image costs exactly what starting from text costs. There is no discount for giving the model a head start, and no surcharge for the extra input.

The prompt still matters

With a start frame supplied, the prompt is describing motion rather than subject. “A cyclist on a coastal road” is doing very little work when the image already shows the cyclist; “the camera tracks alongside, wind moving the grass” is doing all of it.

This is the most common reason an image-to-video result looks static: the prompt described what is already in the frame.

Aspect ratio does not crop for you

aspect_ratio is still yours to set, and the models do not reconcile it with your image. Feeding a 16:9 still while asking for 9:16 gives the model contradictory instructions. Match them.

Seedance accepts five ratios (16:9, 9:16, 1:1, 4:3, 3:4); Kling and Veo 3 accept three, dropping 4:3 and 3:4. Mismatches return 400 INVALID_PARAM naming the field.

It is still async

Same as text-to-video: 202 Accepted with a job id, minutes to render, four ways to collect the result. See calling a video generation API without blocking your agent and the Python polling example.

What this page does not claim

Which model animates a still image better is not something this page measures. It covers what each one accepts and what each one costs.

Continue with api fundamentals

Models covered on this page

Where these facts come from

  • codebase: src/ai/providers/{seedance,kling,veo3}.ts — imageInputs handling and pricing
  • codebase: src/app/api/v1/video/generations/route.ts — request mapping