Veo 是 Google 旗下最强大的视频生成模型(由 DeepMind 开发),支持通过 Gemini API 使用。
你可以用它实现:
- 📄 文本转视频(Text-to-Video)
- 🖼️ 图片转视频(Image-to-Video)
- 🤖 多模态提示(文字 + 图像 +风格描述)生成高质量短视频
价格
每秒是0.35美金,视频时长范围为 5 ~ 8 秒
• 因此,每次调用的价格在:
• $1.75 ~ $2.80 美元 / 次调用
怎么调用?支持哪些语言?
你可以用 Gemini API + Gen AI SDK 发起调用,目前支持:
- ✅ Python ≥ 1.10.0
- ✅ JavaScript / TypeScript ≥ 0.8.0
- ✅ Go ≥ 1.0.0
调用方式包括:
- 使用文本提示生成视频
- 先用 Imagen 生成图片,再作为起始帧生成视频
请求参数详解(可调选项)
如何使用?开发流程一览
✅ 1. 安装环境 & SDK 要求
需安装 Google Gen AI SDK,并配置 Gemini API Key:
语言SDK 要求Python>= v1.10.0JS / TS>= v0.8.0Go>= v1.0.0
✅ 2. 文本转视频代码结构(Python 示例):
``` import time from google import genai from google.genai import types
client = genai.Client() # read API key from GOOGLEAPIKEY
operation = client.models.generatevideos( model="veo-2.0-generate-001", prompt="Panning wide shot of a calico kitten sleeping in the sunshine", config=types.GenerateVideosConfig( persongeneration="dontallow", # "dontallow" or "allowadult" aspectratio="16:9", # "16:9" or "9:16" ), )
while not operation.done: time.sleep(20) operation = client.operations.get(operation)
for n, generatedvideo in enumerate(operation.response.generatedvideos): client.files.download(file=generatedvideo.video) generatedvideo.video.save(f"video{n}.mp4") # save the video
```
此代码大约需要 2-3 分钟才能运行完毕,但如果资源受限,则可能需要更长时间。运行完成后,您应该会看到如下视频:
如果您看到错误消息,而不是视频,则表示资源有限,您的请求无法完成。在这种情况下,请再次运行代码。
生成的视频会在服务器上存储 2 天,之后就会被移除。如果您想保存生成的视频的本地副本,则必须在生成后的 2 天内运行 result() 和 save()。
✅ 3. 图片转视频方式(Image-to-Video)
您还可以使用图片生成视频。以下代码使用 Imagen 生成图片,然后使用生成的图片作为生成的视频的起始帧。
首先,使用 Imagen 生成图片:
``` prompt="Panning wide shot of a calico kitten sleeping in the sunshine",
imagen = client.models.generateimages( model="imagen-3.0-generate-002", prompt=prompt, config=types.GenerateImagesConfig( aspectratio="16:9", numberofimages=1 ) )
images[0] ```
然后,使用生成的图片作为第一帧生成视频:
``` operation = client.models.generatevideos( model="veo-2.0-generate-001", prompt=prompt, image = images[0], config=types.GenerateVideosConfig( # persongeneration only accepts "dontallow" for image-to-video aspectratio="16:9", # "16:9" or "9:16" numberofvideos=2 ), )
Wait for videos to generate
while not operation.done: time.sleep(20) operation = client.operations.get(operation)
for n, video in enumerate(operation.response.generatedvideos): fname = f'withimage_input{n}.mp4' print(fname) video.save(fname) ```
⚠️ 注意:图片转视频不支持人物生成功能(person_generation="dont_allow")
提示词写法建议(Prompt Engineering)
Veo 可以理解非常复杂的电影语言,包括:
推荐提示结构:
``` [主题] + [背景] + [动作] + [风格] + [相机运动] + [构图] + [氛围]
```
写好提示是生成好视频的关键!你可以参考以下结构:
- 主题(Subject):谁在画面中?(人、动物、物体)
- 背景(Background):在哪发生?(城市、森林、室内…)
- 动作(Action):在做什么?(跑步、打电话、跳舞…)
- 风格(Style):动画、电影感、卡通、复古…
- 相机运动(Camera):跟拍、航拍、摇臂、推近…
- 构图(Composition):广角、特写、近景…
- 氛围(Ambiance):冷暖色调、日落、梦幻、悲伤等
✅ 示例 Prompt:
一位穿绿色风衣的男子,在夜晚下雨的街头用旋转电话打电话。镜头推近他的脸部,霓虹灯光晃动,画面风格像黑色电影,气氛悲伤,采用浅景深与特写镜头。
否定提示(Negative Prompt)注意事项
用于明确你不想出现的元素。
✅ 正确写法:
``` negativePrompt="城市背景, 建筑物, 黑暗, 威胁氛围"
```
❌ 不推荐写法:
- “不要有房子”
- “不能出现人脸” (错误点:含否定语或命令式语言)
构图与宽高比:控制画面呈现风格
参数场景适用描述aspectRatio="16:9"横屏(风景、电影感)aspectRatio="9:16"竖屏(短视频、人物特写)
你还可以通过 prompt 控制:
- 📸 相机运动:推拉、航拍、平移、摇臂
- 🎥 构图方式:特写镜头、广角、俯拍
- 🌈 色调氛围:冷色调、暖阳、柔和光线等
视频生成机制 & 限制说明
✅ 执行机制:
- 使用异步任务 operation 轮询获取状态
- 每个生成视频在服务器上 仅保留 2 天,需尽早保存
⚠️ 注意事项:
- 每次生成最多 2 个视频版本
- 文本必须为英文,生成速度可能波动
- 上传图像的尺寸和质量会影响视频效果