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
- Licence
- Apache-2.0
32 fps, ~720p class
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 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.
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