
Veo3.1 Image-to-Video API by Google
Quickly animate static images into motion-rich, high-quality clips. Veo 3.1 Fast Image-to-Video accelerates rendering for fast previews and iterative visual storytelling.
INPUT
OUTPUT
IdleYour request will cost $0.2 per run. For $10 you can run this model approximately 50 times.
Here's what you can do next:
Code Example
import requests
import time
# Step 1: Start video generation
generate_url = "https://api.atlascloud.ai/api/v1/model/generateVideo"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer $ATLASCLOUD_API_KEY"
}
data = {
"model": "google/veo3.1/image-to-video",
"prompt": "A beautiful sunset over the ocean with gentle waves",
"width": 512,
"height": 512,
"duration": 3,
"fps": 24,
}
generate_response = requests.post(generate_url, headers=headers, json=data)
generate_result = generate_response.json()
prediction_id = generate_result["data"]["id"]
# Step 2: Poll for result
poll_url = f"https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}"
def check_status():
while True:
response = requests.get(poll_url, headers={"Authorization": "Bearer $ATLASCLOUD_API_KEY"})
result = response.json()
if result["data"]["status"] in ["completed", "succeeded"]:
print("Generated video:", result["data"]["outputs"][0])
return result["data"]["outputs"][0]
elif result["data"]["status"] == "failed":
raise Exception(result["data"]["error"] or "Generation failed")
else:
# Still processing, wait 2 seconds
time.sleep(2)
video_url = check_status()Install
Install the required package for your language.
pip install requestsAuthentication
All API requests require authentication via an API key. You can get your API key from the Atlas Cloud dashboard.
export ATLASCLOUD_API_KEY="your-api-key-here"HTTP Headers
import os
API_KEY = os.environ.get("ATLASCLOUD_API_KEY")
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
}Never expose your API key in client-side code or public repositories. Use environment variables or a backend proxy instead.
Submit a request
import requests
url = "https://api.atlascloud.ai/api/v1/model/generateVideo"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer $ATLASCLOUD_API_KEY"
}
data = {
"model": "your-model",
"prompt": "A beautiful landscape"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())Submit a Request
Submit an asynchronous generation request. The API returns a prediction ID that you can use to check the status and retrieve the result.
/api/v1/model/generateVideoRequest Body
import requests
url = "https://api.atlascloud.ai/api/v1/model/generateVideo"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer $ATLASCLOUD_API_KEY"
}
data = {
"model": "google/veo3.1/image-to-video",
"input": {
"prompt": "A beautiful sunset over the ocean with gentle waves"
}
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
print(f"Prediction ID: {result['id']}")
print(f"Status: {result['status']}")Response
{
"id": "pred_abc123",
"status": "processing",
"model": "model-name",
"created_at": "2025-01-01T00:00:00Z"
}Check Status
Poll the prediction endpoint to check the current status of your request.
/api/v1/model/prediction/{prediction_id}Polling Example
import requests
import time
prediction_id = "pred_abc123"
url = f"https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}"
headers = { "Authorization": "Bearer $ATLASCLOUD_API_KEY" }
while True:
response = requests.get(url, headers=headers)
result = response.json()
status = result["data"]["status"]
print(f"Status: {status}")
if status in ["completed", "succeeded"]:
output_url = result["data"]["outputs"][0]
print(f"Output URL: {output_url}")
break
elif status == "failed":
print(f"Error: {result['data'].get('error', 'Unknown')}")
break
time.sleep(3)Status Values
processingThe request is still being processed.completedGeneration is complete. Outputs are available.succeededGeneration succeeded. Outputs are available.failedGeneration failed. Check the error field.Completed Response
{
"data": {
"id": "pred_abc123",
"status": "completed",
"outputs": [
"https://storage.atlascloud.ai/outputs/result.mp4"
],
"metrics": {
"predict_time": 45.2
},
"created_at": "2025-01-01T00:00:00Z",
"completed_at": "2025-01-01T00:00:10Z"
}
}Upload Files
Upload files to Atlas Cloud storage and get a URL you can use in your API requests. Use multipart/form-data to upload.
/api/v1/model/uploadMediaUpload Example
import requests
url = "https://api.atlascloud.ai/api/v1/model/uploadMedia"
headers = { "Authorization": "Bearer $ATLASCLOUD_API_KEY" }
with open("image.png", "rb") as f:
files = {"file": ("image.png", f, "image/png")}
response = requests.post(url, headers=headers, files=files)
result = response.json()
download_url = result["data"]["download_url"]
print(f"File URL: {download_url}")Response
{
"data": {
"download_url": "https://storage.atlascloud.ai/uploads/abc123/image.png",
"file_name": "image.png",
"content_type": "image/png",
"size": 1024000
}
}Input Schema
The following parameters are accepted in the request body.
No parameters available.
Example Request Body
{
"model": "google/veo3.1/image-to-video"
}Output Schema
The API returns a prediction response with the generated output URLs.
Example Response
{
"id": "pred_abc123",
"status": "completed",
"model": "model-name",
"outputs": [
"https://storage.atlascloud.ai/outputs/result.mp4"
],
"metrics": {
"predict_time": 45.2
},
"created_at": "2025-01-01T00:00:00Z",
"completed_at": "2025-01-01T00:00:10Z"
}Atlas Cloud Skills
Atlas Cloud Skills integrates 300+ AI models directly into your AI coding assistant. One command to install, then use natural language to generate images, videos, and chat with LLMs.
Supported Clients
Install
npx skills add AtlasCloudAI/atlas-cloud-skillsSetup API Key
Get your API key from the Atlas Cloud dashboard and set it as an environment variable.
export ATLASCLOUD_API_KEY="your-api-key-here"Capabilities
Once installed, you can use natural language in your AI assistant to access all Atlas Cloud models.
MCP Server
Atlas Cloud MCP Server connects your IDE with 300+ AI models via the Model Context Protocol. Works with any MCP-compatible client.
Supported Clients
Install
npx -y atlascloud-mcpConfiguration
Add the following configuration to your IDE's MCP settings file.
{
"mcpServers": {
"atlascloud": {
"command": "npx",
"args": [
"-y",
"atlascloud-mcp"
],
"env": {
"ATLASCLOUD_API_KEY": "your-api-key-here"
}
}
}
}Available Tools
API Schema
Schema not availableNo examples available
Please log in to view request history
You need to be logged in to access your model request history.
Log InGoogle Veo 3.1 — Image-to-Video (I2V) Model
Veo 3.1 I2V is Google DeepMind’s latest image-to-video generation model — an evolution of Veo’s cinematic foundation. It transforms a single still image or a pair of start & end frames into a high-fidelity 1080p motion sequence with natural movement, realistic lighting, and synchronized contextual audio.
Perfect for storyboarding, concept animation, and creative scene development, Veo 3.1 I2V captures the feeling of camera motion and environmental change while preserving your image’s style and composition.
Why it stands out
-
** Cinematic Motion Generation**
Animates still images with realistic subject and camera movement — from subtle pans to sweeping transitions.
-
** Frame Interpolation**
Supports single-frame animation and two-frame transitions — letting you morph from one image to another with fluid continuity.
-
** Native Audio Support**
Adds synchronized ambient sound, dialogue, or music automatically aligned with visual motion.
-
** Contextual Understanding**
Interprets both image content and prompt text to guide scene flow and atmosphere.
-
** High-Resolution Output**
Generates at 720p or 1080p, 24 FPS, and supports landscape (16:9) or portrait (9:16) aspect ratios.
Key Parameters
-
prompt — Describe motion or story context (e.g., “Slow dolly zoom on a city skyline as sunset light fades”).
-
image — Provide a starting frame (JPEG / PNG / WEBP).
-
lastFrame (optional) — Provide an ending frame to create an interpolation-style transition.
-
durationSeconds — Choose video length: 4s, 6s, or 8s.
-
resolution — 720p or 1080p.
-
aspectRatio — Landscape (16:9) or Portrait (9:16).
Pricing (Preview Stage)
| Model | Description | Input Type | Output | Price |
|---|---|---|---|---|
| Veo 3.1 (Video + Audio) | Generate videos with synchronized sound | Image / Image Pair | Video + Audio | $0.40 / sec |
| Veo 3.1 (Video only) | Generate silent motion sequences | Image / Image Pair | Video | $0.20 / sec |
Typical cost: ~$3.20 for an 8-second 1080p video (standard mode).
How to Use
-
Upload your starting image
Use a clear, well-lit frame.
-
(Optional) Add a last frame
Provide an ending image if you want a smooth transition.
-
Write your prompt
Describe the motion or transformation (e.g., “camera slowly zooms out as night falls”).
-
Set parameters
Choose duration (4s / 6s / 8s), resolution (720p / 1080p), and aspect ratio (16:9 or 9:16).
-
Generate video
Submit your request — Veo 3.1 I2V will produce motion, lighting, and audio automatically.
Pro Tips
-
Use consistent framing between start and end images for smoother interpolation.
-
Add camera verbs like “pan,” “tilt,” “dolly,” for cinematic control.
-
Keep prompts concise and clear — focus on movement and lighting.
-
For realistic transitions, limit drastic composition or color shifts between frames.
-
To ensure repeatability, use the same random seed value.
Notes & Limitations
-
Supported durations: 4, 6, or 8 seconds.
-
Frame rate: 24 FPS (fixed).
-
Generation time: ~2–3 minutes for 8s @1080p.






