Skip to content

Image to video API

Turn a still image into a short clip. Wan 2.2 image-to-video produces 5 or 8 second output at 32 fps, driven by a start frame and an optional motion prompt.

Price
$0.05 / second
Model id
image-to-video
Duration
5 s or 8 s

32 fps, ~720p class

Licence
Apache-2.0

How image-to-video differs from text-to-video

You supply the first frame, so composition, subject and style are already decided — the model only has to produce motion. That makes output far more controllable than text-to-video, and it composes naturally with the image models here: generate a still, approve it, then animate it.

The clip preserves the aspect ratio of your start frame. The prompt describes motion, not content.

  • Describe camera and subject movement: "slow push in, hair moving in the wind"
  • Static or near-static prompts produce subtle, ambient motion — often what you want for backgrounds
  • The start frame carries the quality: a sharp, well-composed still animates far better than a soft one

Generate a clip

curl
curl https://api.fastgencloud.com/v1/videos/generations \
  -H "Authorization: Bearer $FASTGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
      "model": "image-to-video",
      "image": "https://example.com/still.jpg",
      "prompt": "slow push in, gentle wind moving the leaves, drifting clouds",
      "duration": 5
    }'

Latency and cost

Video is the slowest and most expensive operation on the platform, and worth designing around. A 5 second clip typically takes on the order of three minutes on a warm 48 GB worker; a cold start adds more. Use a webhook rather than polling in a request handler, and tell your users it is a background job.

Billing is per second of output, so a 5 second clip costs five times the per-second rate and an 8 second clip eight times.

Parameters

model
image-to-video
image
start frame — https URL or data URI; aspect ratio preserved
prompt
optional motion description, up to 1500 characters
negative_prompt
optional, verbatim
duration
5 or 8 seconds
seed
optional integer for reproducible output
webhook_url
strongly recommended for video

How the API works

Every generation is a job. The POST returns 202 with a job id immediately, so your request thread is never blocked on a GPU. You then either poll GET /v1/jobs/{id} or register a webhook_url and receive a signed callback when the job finishes.

Send an Idempotency-Key header and a retried request replays the original job instead of charging you twice. Your wallet is debited when the job is submitted and refunded automatically if it fails.

poll the job
curl https://api.fastgencloud.com/v1/jobs/$JOB_ID \
  -H "Authorization: Bearer $FASTGEN_API_KEY"

Pricing and billing

Pricing is prepaid and usage-based: you top the wallet up with a card and each job debits it. There is no subscription, no per-seat cost, and no monthly minimum.

Images above 1 megapixel are billed pro rata by pixel count — a 1.5 MP image costs 1.5x the listed rate. Failed jobs are refunded in full, automatically.

Frequently asked questions

How long does a clip take to generate?
On the order of three minutes for a 5 second clip on a warm worker, longer from cold. Always treat it as a background job: register a webhook_url and notify the user when it lands.
Is there text-to-video?
Not directly — and you rarely want it. Generate a still with one of the image models, let the user approve the composition, then animate that frame. You get far more control and you only pay for video once.
What resolution is the output?
Roughly 720p class at 32 fps, preserving the aspect ratio of the start frame you provide.
How long do video files stay available?
Up to 7 days, like every other output. Download and re-host anything you need to keep.

Related

Start generating

Create an account, add a prepaid balance, and call the API with a key from the console. No subscription, no minimum, no per-seat pricing.

Get an API key