Gemini API 可让您使用 Veo 2,这是 Google 的先进视频生成模型。Veo 旨在帮助您构建新一代 AI 应用,将用户的提示和图片转换为高品质的视频素材资源。
本指南将帮助您开始使用 Gemini API 与 Veo 集成。
Veo 简介
Veo 是 Google 迄今为止最强大的视频生成模型。它可以生成各种电影和视觉风格的视频,捕捉提示中的细微之处,以便在各个画面中一致呈现精致细节。
如需了解详情并查看示例输出,请参阅 Google DeepMind Veo 概览。
规格
模态 |
|
请求延迟时间 |
|
可变长度生成 | 5-8 秒 |
解决方法 | 720p |
帧速率 | 24 帧/秒 |
宽高比 |
|
输入语言(文字转视频) | 英语 |
Veo 制作的视频会使用 SynthID(我们用于嵌入水印和识别 AI 生成内容的工具)添加水印,并通过安全过滤器和记忆检查流程,以帮助降低隐私、版权和偏见风险。
准备工作
在调用 Gemini API 之前,请确保您已安装所选的 SDK,并已配置好 Gemini API 密钥,可以使用。
如需将 Veo 与 Google Gen AI SDK 搭配使用,请确保您已安装以下某个版本:
- Python v1.10.0 或更高版本
- TypeScript 和 JavaScript v0.8.0 或更高版本
- Go v1.0.0 或更高版本
生成视频
根据文本生成
您可以使用以下代码通过 Veo 生成视频:
Python
import time
from google import genai
from google.genai import types
client = genai.Client() # read API key from GOOGLE_API_KEY
operation = client.models.generate_videos(
model="veo-2.0-generate-001",
prompt="Panning wide shot of a calico kitten sleeping in the sunshine",
config=types.GenerateVideosConfig(
person_generation="dont_allow", # "dont_allow" or "allow_adult"
aspect_ratio="16:9", # "16:9" or "9:16"
),
)
while not operation.done:
time.sleep(20)
operation = client.operations.get(operation)
for n, generated_video in enumerate(operation.response.generated_videos):
client.files.download(file=generated_video.video)
generated_video.video.save(f"video{n}.mp4") # save the video
REST
# Use curl to send a POST request to the predictLongRunning endpoint
# The request body includes the prompt for video generation
curl "${BASE_URL}/models/veo-2.0-generate-001:predictLongRunning?key=${GOOGLE_API_KEY}" \
-H "Content-Type: application/json" \
-X "POST" \
-d '{
"instances": [{
"prompt": "Panning wide shot of a calico kitten sleeping in the sunshine"
}
],
"parameters": {
"aspectRatio": "16:9",
"personGeneration": "dont_allow",
}
}' | tee result.json | jq .name | sed 's/"//g' > op_name
此代码大约需要 2-3 分钟才能运行完毕,但如果资源受限,则可能需要更长时间。运行完成后,您应该会看到如下视频:
如果您看到错误消息,而不是视频,则表示资源有限,您的请求无法完成。在这种情况下,请再次运行代码。
生成的视频会在服务器上存储 2 天,之后就会被移除。如果您想保存生成的视频的本地副本,则必须在生成后的 2 天内运行 result()
和 save()
。
根据图片生成
您还可以使用图片生成视频。以下代码使用 Imagen 生成图片,然后使用生成的图片作为生成的视频的起始帧。
首先,使用 Imagen 生成图片:
Python
prompt="Panning wide shot of a calico kitten sleeping in the sunshine",
imagen = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
config=types.GenerateImagesConfig(
aspect_ratio="16:9",
number_of_images=1
)
)
imagen.generated_images[0].image
然后,使用生成的图片作为第一帧生成视频:
Python
operation = client.models.generate_videos(
model="veo-2.0-generate-001",
prompt=prompt,
image = imagen.generated_images[0].image,
config=types.GenerateVideosConfig(
# person_generation only accepts "dont_allow" for image-to-video
aspect_ratio="16:9", # "16:9" or "9:16"
number_of_videos=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.generated_videos):
fname = f'with_image_input{n}.mp4'
print(fname)
client.files.download(file=video.video)
video.video.save(fname)
Veo 模型参数
(命名惯例因编程语言而异。)
prompt
:视频的文本提示。image
参数是可选的。image
:要用作视频第一帧的图片。prompt
参数是可选的。negativePrompt
:一个文本字符串,用于描述您想要阻止模型生成的内容aspectRatio
:更改生成的视频的宽高比。支持的值为"16:9"
和"9:16"
。默认值为"16:9"
。personGeneration
:允许模型生成人物视频。支持以下值:- 文本转视频生成:
"dont_allow"
:禁止在图片中包含人物或人脸。"allow_adult"
:生成包含成人但不包含儿童的视频。
- 图片转视频生成功能:
"dont_allow"
:图片转视频生成的默认值,也是唯一值。
- 文本转视频生成:
numberOfVideos
:请求的输出视频,1
或2
。durationSeconds
:每个输出视频的时长(以秒为单位),介于5
和8
之间。enhance_prompt
:启用或停用提示重写器。默认处于启用状态。
可以尝试的操作
如需充分利用 Veo,请在提示中加入视频专用术语。Veo 可以理解与以下内容相关的各种术语:
- 镜头构图:指定镜头中的取景和正文数量(例如,“单人镜头”“双人镜头”“肩上镜头”)。
- 相机定位和移动:使用“平视”“高角度”“虫眼视角”“摇臂拍摄”“缩放拍摄”“平移拍摄”和“跟踪拍摄”等术语来控制相机的位置和移动。
- 对焦和镜头效果:使用“浅景深”“深景深”“柔焦”“微距镜头”和“广角镜头”等术语来实现特定的视觉效果。
- 整体风格和主题:通过指定“科幻片”“爱情喜剧片”“动作片”或“动画”等风格,引导 Veo 的创意方向。您还可以描述您想要的正文和背景,例如“城市景观”“自然”“车辆”或“动物”。
Veo 提示指南
Veo 指南的这一部分包含您可以使用 Veo 创建的视频示例,并介绍了如何修改提示以生成不同的结果。
安全过滤器
Veo 会在 Gemini 中应用安全过滤器,以确保生成的视频和上传的照片不含冒犯性内容。我们会屏蔽违反条款和准则的提示。
提示撰写的基础知识
好的提示应具有描述性且清晰。为了让生成的视频尽可能贴近您的预期,请先确定核心创意,然后通过添加关键字和修饰符来优化创意。
问题应包含以下元素:
- 正文:您希望在视频中呈现的对象、人物、动物或场景。
- 背景:正文所处的背景或环境。
- 动作:正文正在执行的操作(例如行走、奔跑或转头)。
- 风格:可以是常规内容,也可以是非常具体的内容。考虑使用特定的电影类型关键字,例如恐怖片、黑色电影,或卡通等动画风格。
- 相机运动:[可选] 相机的拍摄方式,例如航拍、平视、俯拍或低角度拍摄。
- 构图:[可选] 画面的取景方式,例如广角镜头、特写镜头或特特写镜头。
- Ambiance:[可选] 色彩和光线对场景的影响,例如蓝色调、夜晚或暖色调。
有关撰写提示的更多提示
以下提示可帮助您撰写用于生成视频的提示:
- 使用描述性语言:使用形容词和副词为 Veo 描绘清晰的画面。
- 提供背景信息:根据需要,添加背景信息以帮助模型了解您的需求。
- 参考特定艺术风格:如果您有特定的审美观,请参考特定艺术风格或艺术运动。
- 利用提示工程工具:可考虑探索提示工程工具或资源,以帮助您优化提示并实现最佳结果。如需了解详情,请参阅提示设计简介。
- 增强个人和群组图片中的面部细节:指定面部细节作为照片的焦点,例如在提示中使用肖像一词。
提示和输出示例
本部分提供了几个提示,重点介绍了描述性详细信息如何提升每段视频的效果。
冰柱
本视频演示了如何在问题中使用问题撰写基础知识中的元素。
提示 | 生成的输出 |
---|---|
冰冻岩壁(背景)上正在融化的冰柱(正文)的特写镜头(构图),采用冷色调(氛围),并通过缩放(摄像头运动)来保持水滴的特写细节(动作)。 |
![]() |
一位男士正在打电话
这些视频演示了如何通过提供越来越具体的详细信息来修改问题,以便 Veo 按照您的喜好优化输出结果。
提示 | 生成的输出 | 分析 |
---|---|---|
摄像机推车拍摄,特写了一名身穿绿色风衣的绝望男子。他正在使用带有绿色霓虹灯的旋转式壁挂电话拨打电话。它看起来像电影场景。 |
![]() |
这是根据提示生成的第一个视频。 |
电影般的特写镜头跟随一位穿着风雨残破的绿色风衣的绝望男子,他拨打着安装在粗糙砖墙上的旋转电话,而绿色霓虹灯的幽光笼罩着他。摄像机推近,显示了他的下巴紧绷,以及他努力拨打电话时脸上刻下的绝望。浅景深将焦点对准他皱起的眉头和黑色旋转电话,背景被模糊处理成霓虹色和模糊阴影的海洋,营造出紧迫感和孤独感。 |
![]() |
提示越详细,视频的画面越聚焦,环境越丰富。 |
视频中,一台老式旋转电话靠在墙上,墙上散发着诡异的绿色霓虹光芒,身穿绿色风衣的绝望男子正在使用这部电话,镜头以平滑的动作推向男子。摄像头从中距离开始,慢慢靠近男子的脸部,展示他急切拨打电话时的慌张表情和眉上的汗水。画面聚焦于男子的手,他的手指在拨号盘上摸索,拼命尝试连接。绿色的霓虹灯在墙上投下长长的阴影,更增添了紧张的氛围。画面构图旨在强调男子的孤独和绝望,突出霓虹灯的明亮光芒与男子的坚定决心之间的鲜明对比。 |
![]() |
添加更多细节可让正文呈现逼真的表情,并营造出生动而富有感染力的场景。 |
雪豹
此示例演示了 Veo 可能会针对简单的问题生成的输出。
提示 | 生成的输出 |
---|---|
一只毛发如雪豹的可爱生物在冬季森林中漫步,采用 3D 卡通风格渲染。 |
![]() |
奔跑的雪豹
此提示更详细,并展示了生成的输出结果,可能更接近您在视频中想要的内容。
提示 | 生成的输出 |
---|---|
以欢快的卡通风格制作短视频 3D 动画场景。一只可爱的生物,毛皮如雪豹,眼睛又大又有神,身形圆润可爱,在奇幻的冬季森林中快乐地蹦跳。场景应包含圆形的白雪覆盖的树木、轻柔飘落的雪花,以及透过树枝的温暖阳光。该生物的弹跳动作和灿烂笑容应传达出纯粹的喜悦。采用明亮、欢快的色彩和俏皮的动画,营造积极向上、温暖人心的氛围。 |
![]() |
通过写入元素的示例
以下示例展示了如何按每个基本元素优化问题。
主题
以下示例展示了如何指定主题说明。
主题说明 | 提示 | 生成的输出 |
---|---|---|
此说明可以包含一个主题,也可以包含多个主题和操作。在这里,我们的主题是“白色混凝土公寓楼”。 | 一栋白色混凝土公寓楼的建筑渲染图,采用流畅的有机形状,与茂密的绿色植物和未来主义元素无缝融合 |
![]() |
上下文
以下示例展示了如何指定上下文。
上下文 | 提示 | 生成的输出 |
---|---|---|
主体所处的背景或环境非常重要。尝试将正文置于各种背景下,例如繁忙的街道、外太空。 | 一颗卫星在外太空中漂浮,背景是月亮和一些星星。 |
![]() |
操作
此示例展示了如何指定操作。
操作 | 提示 | 生成的输出 |
---|---|---|
拍摄对象在做什么,例如走路、跑步或转头。 | 宽镜头拍摄的画面:一名女子在海滩上散步,在日落时分朝着地平线满意而放松地凝视。 |
![]() |
样式
此示例展示了如何指定样式。
样式 | 提示 | 生成的输出 |
---|---|---|
您可以添加关键字来提升生成画质,并使其更接近预期的风格,例如浅景深、电影画面、极简主义、超现实主义、复古、未来主义或双重曝光。 | 黑色电影风格、一男一女在街上散步、神秘、电影感、黑白。 |
![]() |
相机移动
此示例展示了如何指定相机运动。
相机移动 | 提示 | 生成的输出 |
---|---|---|
摄像头动作选项包括第一人称视角拍摄、航拍、跟踪无人机视图或跟踪拍摄。 | 在加拿大夜晚下雨时,从一辆老式汽车的驾驶员视角拍摄的电影画面。 |
![]() |
构图
此示例展示了如何指定构图。
构图 | 提示 | 生成的输出 |
---|---|---|
取景方式(广角、特写、低角度)。 | 特写镜头拍摄的眼睛,其中反射出城市景色。 |
![]() |
制作一个视频,其中包含广角镜头拍摄的冲浪者手持冲浪板在沙滩上行走的画面,以及美丽的日落,采用电影般的画面效果。 |
![]() |
氛围
此示例展示了如何指定氛围。
氛围 | 提示 | 生成的输出 |
---|---|---|
调色板在摄影中发挥着至关重要的作用,会影响氛围并传达预期的情感。你可以尝试使用“柔和的橙色暖色调”“自然光”“日出”或“日落”等指令。例如,温暖的金色调可以为照片注入浪漫而富有氛围感。 | 在阳光明媚的公园里,一个女孩抱着可爱的金毛猎犬小狗的特写镜头。 |
![]() |
电影般的特写镜头,画面中一位伤心的女士在雨中乘坐公交车,冷色调蓝色,伤感氛围。 |
![]() |
使用参考图片生成视频
您可以使用 Veo 的图片转视频功能,让图片动起来。 您可以使用现有素材资源,也可以尝试使用 Imagen 生成新素材资源。
提示 | 生成的输出 |
---|---|
手持巧克力棒的兔子。 |
![]() |
兔子逃跑了。 |
![]() |
否定提示
否定提示是一种强大的工具,有助于指定您不希望在视频中出现的元素。在“否定提示”字样后面,说明您想要阻止模型生成的内容。请按照以下提示操作。
❌ 请勿使用指令性语言或“没有”或“不”等字词。例如,“无墙壁”或“不显示墙壁”。
✅ 请描述您不想看到的内容。例如,“墙、框架”,表示您不希望视频中出现墙或框架。
提示 | 生成的输出 |
---|---|
生成一个简短的样式化动画,其中显示一棵孤独的大橡树,叶子在强风中剧烈摇摆。树应采用略微夸张、不拘一格的形式,并具有动态流畅的树枝。叶子应呈现各种秋色,在风中旋转舞动。动画应使用温暖、富有吸引力的配色方案。 |
![]() |
生成一个简短的样式化动画,其中显示一棵孤独的大橡树,叶子在强风中剧烈摇摆。树应采用略微夸张、不拘一格的形式,并具有动态流畅的树枝。叶子应呈现各种秋色,在风中旋转舞动。动画应使用温暖、富有吸引力的配色方案。 包含负面提示 - 城市背景、人工建筑、黑暗、暴风或威胁气氛。 |
![]() |
宽高比
Gemini Veo 视频生成功能支持以下两个宽高比:
宽高比 | 说明 |
---|---|
宽屏或 16:9 | 电视、显示器和手机屏幕(横向)的最常用宽高比。如果您想拍摄更多背景(例如风景),请使用这种宽高比。 |
纵向或 9:16 | 旋转的宽屏。这种宽高比深受短视频应用(例如 YouTube Shorts)的欢迎。可将这种宽高比用于具有强烈垂直方向的肖像或较高对象,例如建筑物、树或瀑布。 |
宽屏
此提示是宽屏宽高比为 16:9 的示例。
提示 | 生成的输出 |
---|---|
制作一段视频,其中包含无人机跟踪视图:一名男子在 1970 年代的棕榈泉驾驶红色敞篷车,阳光温暖,阴影长长。 |
![]() |
纵向
此提示是纵向宽高比为 9:16 的示例。
提示 | 生成的输出 |
---|---|
制作一个视频,重点展示茂密热带雨林中雄伟壮观的夏威夷瀑布的流畅动作。重点呈现逼真的水流、细致的树叶和自然光线,营造宁静氛围。拍摄奔腾的河水、迷雾般的氛围以及透过茂密树冠洒落的阳光。使用流畅的电影镜头运镜来展示瀑布及其周围环境。力求营造宁静、真实的色调,将观看者带入夏威夷热带雨林的宁静美景。 |
![]() |
后续步骤
- 通过 Veo Colab 获得更多生成 AI 视频的经验。