Veo2 Image-to-Video is an advanced AI model that transforms static images into high-quality, dynamic video content. It builds upon the success of Google's Veo2 text-to-video model, offering unprecedented control and realism in video generation from still images.
Veo2 Image-to-Video is designed for various applications, including:
While primarily focused on visual processing, the model likely supports multilingual text inputs for additional context and control.
Veo2 Image-to-Video likely employs a hybrid architecture combining:
The model builds on the groundbreaking physics understanding and cinematographic capabilities of its text-to-video predecessor
The model was trained on a massive dataset derived from YouTube’s video library and other proprietary sources, ensuring diversity in motion patterns, visual styles, and real-world physics.
Google has likely implemented measures to ensure diversity in the training data, minimizing biases in generated content. However, as with all AI models, some biases may persist.


The model is available on the AI/ML API platform as "Veo2 Image-to-Video" .
Detailed API Documentation is available here.
Google has integrated safety filters into Veo2 to prevent the generation of harmful or inappropriate content. Developers are encouraged to use the model responsibly in alignment with ethical guidelines for AI-generated media.
Veo2 is currently available through Google Labs’ VideoFX platform under a commercial license
Get Veo2 Text-to-Video API here.
import requests, time headers = {"Authorization": "Bearer " + AIMLAPI_KEY} job = requests.post( "https://api.aimlapi.com/v2/video/generations", headers=headers, json={ "model": "google/veo2-image-to-video", "prompt": "A serene timelapse of clouds over a mountain range" }, ).json() gid = job["id"] while True: res = requests.get(f"https://api.aimlapi.com/v2/video/generations?generation_id={gid}", headers=headers).json() if res.get("status") in ("completed", "error"): break time.sleep(5) print(res["video"]["url"])
const headers = { Authorization: `Bearer ${process.env.AIMLAPI_KEY}`, "Content-Type": "application/json", }; const job = await (await fetch("https://api.aimlapi.com/v2/video/generations", { method: "POST", headers, body: JSON.stringify({ "model": "google/veo2-image-to-video", "prompt": "A serene timelapse of clouds over a mountain range" }), })).json(); let res; do { await new Promise((r) => setTimeout(r, 5000)); res = await (await fetch(`https://api.aimlapi.com/v2/video/generations?generation_id=${job.id}`, { headers })).json(); } while (!["completed", "error"].includes(res.status)); console.log(res.video.url);
# submit the generation — the response contains the job "id" curl -X POST https://api.aimlapi.com/v2/video/generations \ -H "Authorization: Bearer $AIMLAPI_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"google/veo2-image-to-video","prompt":"A serene timelapse of clouds over a mountain range"}' # then poll until status is "completed" — video.url holds the result curl "https://api.aimlapi.com/v2/video/generations?generation_id={id}" -H "Authorization: Bearer $AIMLAPI_KEY"
OpenAI-compatible — swap the base URL and it works with your existing SDK.
| Type | Price |
|---|---|
| Output | |
| Model | Input | Output | Context | Best for |
|---|---|---|---|---|
Veo 2 Image-to-Video This page | Video generation |
Veo 2 Image-to-Video takes image as input and returns video.
Veo 2 Image-to-Video is priced at $0.455 / sec (variable).
Veo 2 Image-to-Video is billed per generation — a fixed charge per output rather than by prompt length.
Yes, Veo 2 Image-to-Video accepts image input as well as a text prompt.
Veo 2 Image-to-Video was built by Google.
Send a request to v2/generate/video/google/generation with google/veo2-image-to-video as the model id.
Yes. Veo 2 Image-to-Video is served through AI/ML API, so the same key and endpoint format used for other models applies.
Veo 2 Image-to-Video turns a still image into a video and supports first-and-last-frame control for the generated clip.