Unlimited Open Source Models

Get Plan
Skip to main content
Video API

Image to Video API

Animate a still image into a short video clip with one REST request. Self-hosted SVD clips cost $0.05 on plans from $21/mo, and eight self-hosted video models are unlimited on $149/mo.

  • SVD clips from $0.05
  • 8 video models unlimited on $149/mo
  • Plans from $21/mo

Animate an image with one request

Send the image URL, a prompt and a model_id to POST /api/v7/video-fusion/image-to-video. The prompt describes the motion you want. The response has the output URL or a request id.

  • init_image: an array of image URLs, even for one image.
  • prompt: the motion and the scene.
  • model_id: the video model to run.
  • duration: 4 to 30 seconds, where the model supports it.
  • webhook: a URL. We post the result to it when the clip is ready.

Without a webhook, fetch the result with POST /api/v7/video-fusion/fetch/{id}. One subscription and one API key cover image, video, speech and LLM APIs.

Trusted by

Google logo
Salesforce logo
Amazon logo
IBM logo
Adobe logo
Sony logo
Google logo
Salesforce logo
Amazon logo
IBM logo
Adobe logo
Sony logo
Google logo
Salesforce logo
Amazon logo
IBM logo
Adobe logo
Sony logo
Google logo
Salesforce logo
Amazon logo
IBM logo
Adobe logo
Sony logo
500M+

API Requests Processed

400K+

Registered Users

5K+

Discord Community Members

300+

Available AI APIs

500

GPUs in Our Own Datacenter

Which models can animate an image

Three self-hosted models take an image as input: SVD, MiniMax H3 reference-to-video and MiniMax H3 start-end-frame. They run on our own GPUs.

Partner models Kling, Veo and Seedance use the same endpoint. To switch between models, change model_id. The request shape stays the same.

To generate a clip from a prompt alone, use the Text to Video API.

Image to video pricing

SVD costs $0.05 a clip on Basic and Standard, charged from the plan allowance. On the $149 Open Source Unlimited plan, the eight self-hosted video models have no per-clip charge. Partner models are priced per second.

Modelmodel_idBasic ($21) and Standard ($47)Open Source Unlimited ($149)
Self-hosted on our GPUs
SVDsvd$0.05 a clipUnlimited on $149
MiniMax H3 reference-to-videoh3-minimax-r2v$0.05 per secondUnlimited on $149
MiniMax H3 start-end-frameh3-minimax-start-end-frame$0.05 per secondUnlimited on $149
Partner models
Kling, Veo, SeedanceSet per modelPriced per second, from the plan allowance, then the walletPriced per second, billed from the wallet

Each plan is a dollar allowance, not a call count. Basic, Standard and Open Source Unlimited cost $21, $47 and $149 a month and run 5, 10 and 15 generations in parallel.

Image to video API quick start

Animate an image with SVD, then get the result by webhook or with the fetch endpoint. Replace YOUR_MODELSLAB_API_KEY with the key from your dashboard.

Image to video with Python and a webhook (SVD)

Python
1import requests
2
3response = requests.post(
4 "https://modelslab.com/api/v7/video-fusion/image-to-video",
5 headers={
6 "key": "YOUR_MODELSLAB_API_KEY",
7 "Content-Type": "application/json",
8 },
9 json={
10 "model_id": "svd",
11 "prompt": "slow camera push-in, leaves moving in the wind",
12 # init_image is a list, even for one image
13 "init_image": ["https://example.com/product-shot.jpg"],
14 # We post the finished clip to this URL.
15 "webhook": "https://example.com/modelslab-webhook",
16 },
17)
18
19print(response.json())

Image to video with JavaScript, then poll the fetch endpoint

JavaScript
1const headers = {
2 'Content-Type': 'application/json',
3 key: 'YOUR_MODELSLAB_API_KEY',
4};
5
6const submit = await fetch('https://modelslab.com/api/v7/video-fusion/image-to-video', {
7 method: 'POST',
8 headers,
9 body: JSON.stringify({
10 model_id: 'svd',
11 prompt: 'slow orbit around the product, soft studio light',
12 init_image: ['https://example.com/product-shot.jpg'],
13 }),
14});
15
16const { id, output } = await submit.json();
17
18// No output yet? Poll the fetch endpoint with the request id.
19let video = output?.[0];
20while (!video) {
21 await new Promise((resolve) => setTimeout(resolve, 5000));
22 const poll = await fetch(`https://modelslab.com/api/v7/video-fusion/fetch/${id}`, {
23 method: 'POST',
24 headers,
25 });
26 video = (await poll.json()).output?.[0];
27}
28
29console.log(video);

Image to video with cURL

Bash
1curl https://modelslab.com/api/v7/video-fusion/image-to-video \
2 -H "key: YOUR_MODELSLAB_API_KEY" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "model_id": "svd",
6 "prompt": "gentle waves, clouds drifting across the sky",
7 "init_image": ["https://example.com/beach.jpg"]
8 }'

Start Creating Amazing AI Videos in Minutes

Choose plan as per your needs, cancel anytime.

100% refund policy on monthly & yearly plans — cancel anytime

Contact Sales
Best Value

Open Source Unlimited

Mission-Critical

$149/month

100% refund policy · cancel anytime

Unlimited Open Source Models
100% refund policy
24x7 Support
15 parallel generations
Access to all APIs
Unlimited generations on all open-source models
For mission critical workloads
Add Team Members
Priority GPU Clusters
Most Popular

Standard

Production

$47/month

100% refund policy · cancel anytime

Moderate Traffic
100% refund policy
Priority Developer Support
10 concurrent API requests
For Production workloads
API access to all models
Prototype

Basic

Prototype

$21/month

100% refund policy · cancel anytime

Moderate Traffic
100% refund policy
Developer Support via Discord/Email
5 concurrent API requests
API access to all models
Shared GPU

Get your image to video API key

Plans start at $21 a month. The same key works for image, video, speech and LLM APIs.

Get API key

Get Expert Support in Seconds

We're Here to Help.

Want to know more? You can email us anytime at support@modelslab.com

View Docs

POST to /api/v7/video-fusion/image-to-video with your API key, a `model_id`, a `prompt` and the image URL in `init_image`. Short renders return an output URL; longer ones return an id you fetch from /api/v7/video-fusion/fetch/{id}, or you pass a `webhook` and ModelsLab posts the result to you.

Self-hosted models such as SVD and the MiniMax H3 reference-to-video and start-end-frame models run on our own GPUs. Partner models such as Kling, Veo and Seedance are on the same endpoint; you switch with `model_id`.

On Basic ($21/month) and Standard ($47/month), a self-hosted SVD clip costs $0.05 from the usage included in your plan. The $149/month Open Source Unlimited plan has no per-clip charge on the eight self-hosted video models. Partner models are priced per second. On Basic and Standard they use your plan's included usage first, then your wallet; on the $149 plan they bill from your wallet.

Yes, on models that support them: pass `duration` (4 to 30 seconds, depending on the model) and `aspect_ratio`. Longer clips on per-second partner models cost more.

ModelsLab is a paid service. Plans start at $21/month. Creating an account is free, but generating video requires an active plan.

Yes. One subscription and one API key cover image to video, text to video, image generation, speech and LLM calls.
Plugins

Explore Plugins for Pro

Our plugins are designed to work with the most popular content creation software.

API

Build Apps with
ML
API

Use our API to build apps, generate AI art, create videos, and produce audio with ease.