Skip to main content

Google Veo 3.1 (Video)

VeoAdapter wraps Google's Veo 3.1 family through the Gemini API (models.generate_videos, polled until done).

Model idNotes
veo-3.1-generate-preview (default)Highest quality; 720p / 1080p / 4k
veo-3.1-fast-generate-previewFaster, cheaper; 720p / 1080p / 4k
veo-3.1-lite-generate-previewLowest cost; 720p / 1080p only, no reference images
Veo 3.0 retired

veo-3.0-generate-001 and veo-3.0-fast-generate-001 were shut down on 30 Jun 2026. The adapter now rejects them with a clear error.

Authentication​

export GEMINI_API_KEY="your_api_key"   # same key as Nano Banana / Gemini Omni

Rules enforced by the adapter​

  • duration_seconds: "4", "6" or "8".
  • 1080p and 4k require duration_seconds="8".
  • First + last frame and reference-image modes require 8 s; reference images also require 16:9, at most 3 images, and a non-Lite model.

CLI / MCP​

# Text-to-video
opentryon video-generate --model veo --prompt "A model walking a runway" --duration 8 --resolution 4k

# Image-to-video
opentryon video-generate --model veo --prompt "Slow push-in" --image look.jpg

# First + last frame
opentryon video-generate --model veo --prompt "Dress changes colour" \
--image first.jpg --last-image last.jpg --duration 8

# Reference images (up to 3)
opentryon video-generate --model veo --prompt "Editorial walk" \
--reference-image a.jpg b.jpg --duration 8 --aspect-ratio 16:9

# Cheaper Lite tier
opentryon video-generate --model veo --prompt "Lookbook loop" \
--model-version veo-3.1-lite-generate-preview

MCP tool: video_generate_veo.

Python​

from tryon.api.veo import VeoAdapter

adapter = VeoAdapter()
video = adapter.generate_text_to_video(
prompt="A cinematic runway shot", duration_seconds="8", resolution="1080p",
)
open("veo.mp4", "wb").write(video)

video = adapter.generate_image_to_video(
image="first.jpg", last_image="last.jpg", prompt="Smooth transition", duration_seconds="8",
)

Methods: generate_text_to_video (optionally reference_images=), generate_image_to_video (optionally last_image=), generate_video_with_references, generate_video_with_frames.

See also​

Veo is cloud-only; there are no open weights.