使用 Veo 生成视频

Gemini API 可让您使用 Veo 2,这是 Google 的先进视频生成模型。Veo 旨在帮助您构建新一代 AI 应用,将用户的提示和图片转换为高品质的视频素材资源。

本指南将帮助您开始使用 Gemini API 与 Veo 集成。

Veo 简介

Veo 是 Google 迄今为止最强大的视频生成模型。它可以生成各种电影和视觉风格的视频,捕捉提示中的细微之处,以便在各个画面中一致呈现精致细节。

如需了解详情并查看示例输出,请参阅 Google DeepMind Veo 概览

规格

模态
  • 文本转视频生成
  • 图片转视频生成
请求延迟时间
  • 最短:11 秒
  • 最长:6 分钟(高峰时段)
可变长度生成 5-8 秒
解决方法 720p
帧速率 24 帧/秒
宽高比
  • 16:9 - 横向
  • 9:16 - 纵向
输入语言(文字转视频) 英语

Veo 制作的视频会使用 SynthID(我们用于嵌入水印和识别 AI 生成内容的工具)添加水印,并通过安全过滤器和记忆检查流程,以帮助降低隐私、版权和偏见风险。

准备工作

在调用 Gemini API 之前,请确保您已安装所选的 SDK,并已配置好 Gemini API 密钥,可以使用。

如需将 Veo 与 Google Gen AI SDK 搭配使用,请确保您已安装以下某个版本:

生成视频

本部分提供了使用文本提示使用图片生成视频的代码示例。

根据文本生成

您可以使用以下代码通过 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:请求的输出视频,12
  • durationSeconds:每个输出视频的时长(以秒为单位),介于 58 之间。
  • 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 视频的经验。