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.

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