# Google Veo 2 | Image to Video Google's Veo 2 image-to-video model delivers high-quality videos with lifelike motion. Experiment with various styles and customize your shots using advanced camera controls. ## API Information - **Model Slug:** veo-2-image-to-video - **Branded URL:** https://www.eachlabs.ai/google/veo2/veo-2-image-to-video - **Provider:** Google - **Category:** Image to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** What this rule does - **Estimated Processing Time:** 40 seconds - **Last Updated:** 2026-03-26 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/veo-2-image-to-video ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $2.50 - **Pricing Details:** What this rule does ### Pricing Rules | Rule | Condition | Price | | --- | --- | --- | | value_match | duration == "5s" | $2.50 | | value_match | duration == "6s" | $3.00 | | value_match | duration == "7s" | $3.50 | | value_match | duration == "8s" | $4.00 | | value_match | duration == "5" | $2.50 | | value_match | duration == "6" | $3.00 | | value_match | duration == "7" | $3.50 | | value_match | duration == "8" | $4.00 | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Text prompt for video generation | | image_url | string | Yes | - | - | The URL of the image used to generate video | | aspect_ratio | string | No | auto | auto,auto_prefer_portrait,16:9,9:16 | The aspect ratio of the generated video Default value: auto | | duration | string | No | 5s | 5s,6s,7s,8s | Duration of the generated video, Default value: 5s | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "veo-2-image-to-video", "input": { "image_url": "https://storage.googleapis.com/magicpoint/inputs/veo2-i2v-input.jpg", "prompt": "A giant rubber duck floats in the middle of a bustling city plaza. Peoples gather around, some taking selfies, others laughing. Drones fly above capturing the moment. Bright daylight, urban vibes, cheerful atmosphere. A street screen in the background shows: Google Veo 2 in eachlabs.ai." } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated video)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "X-API-Key: YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `X-API-Key` | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **veo-2-image-to-video — Image-to-Video AI Model** Veo-2-image-to-video, developed by Google as part of the Veo 2 family, transforms static images into dynamic, high-quality videos with lifelike motion and cinematic control. This image-to-video AI model solves a critical production challenge: creating compelling video content from existing visual assets without expensive reshoots or manual animation work. By combining a reference image with a text prompt, veo-2-image-to-video generates videos that maintain visual consistency while introducing natural, believable motion—enabling creators, marketers, and developers to produce professional-grade video content at scale. The model excels at frame-specific generation, allowing you to specify both the opening and closing frames of your video. This precision control means you can guide the narrative arc of generated footage, ensuring the output aligns with your creative vision. Whether you're building an AI video generator for e-commerce, creating marketing assets, or developing applications that require dynamic visual content, veo-2-image-to-video delivers the technical foundation for production-ready results. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `X-API-Key: YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.