您可以通过指定视频的第一帧和最后一帧,使用 Gemini Enterprise Agent Platform 生成视频。支持的界面包括 Google Cloud 控制台和 Agent Platform API。
以下模型支持根据视频的第一帧和最后一帧生成视频:
如需详细了解如何编写有效的文本提示来生成视频, 请参阅 Veo 提示 指南。
准备工作
- 登录您的 Google Cloud 账号。如果您是新手 Google Cloud, 请创建一个账号来评估我们的产品在 实际场景中的表现。新客户还可获享 $300 赠金,用于 运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
为您的环境设置身份验证。
选择标签页以了解您打算如何使用本页面上的示例:
控制台
当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的 凭证。
安装 Google Cloud CLI。
如果您使用的是外部身份提供方 (IdP),则必须先 使用联合身份登录 gcloud CLI。
如需了解详情,请参阅 使用 REST 时进行身份验证 的 Google Cloud 身份验证文档。
根据第一帧和最后一帧创建视频
以下示例展示了如何指定 Veo 视频的第一帧和最后一帧:
控制台
在 Google Cloud 控制台中,依次前往 Agent Platform > Media Studio 页面。
点击视频 。
在任务 菜单中,选择图片转视频 。
在模型 菜单中,从显示的选项中选择一个模型。
在提示 框中,输入描述要生成的视频的文本提示。
在输入图片 部分中,点击开始 上传第一帧的图片。
可选:点击结束 上传最后一帧的图片。
可选:调整以下参数:
宽高比:选择 16:9 或 9:16。
结果数量:调整滑块或输入介于 1 和 4 之间的值。
视频时长:从菜单中选择视频时长。
输出目录:点击浏览以创建或选择一个 Cloud Storage 存储桶来存储生成的文件。
点击运行 。
Python
安装
pip install --upgrade google-genai
如需了解详情,请参阅 SDK 参考文档。
设置环境变量以将 Google Gen AI SDK 与 Vertex AI 搭配使用:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
REST
如需详细了解 Veo API,请参阅以下内容:
- 方法:
endpoints.predict VideoGenerationModelInstanceVideoGenerationModelParamsVideoGenerationModelResult
使用以下命令发送视频生成请求。此请求会启动长时间运行的操作,并将输出存储到您指定的 Cloud Storage 存储桶。
在使用任何请求数据之前, 请先进行以下替换:
-
PROJECT_ID:表示您的 Google Cloud 项目 ID 的字符串。 -
MODEL_ID:一个字符串,表示要使用的模型 ID。指定第一个或最后一个视频帧时,请使用以下选项之一:- Veo 2:
veo-2.0-generate-001 - Veo 3:
veo-3.1-generate-001 - Veo 3:
veo-3.1-fast-generate-001
- Veo 2:
-
TEXT_PROMPT:用于指导视频生成的文本提示。 -
PATH_TO_FIRST_FRAME_IMAGE:一个字符串,表示第一帧所对应图片的 Cloud Storage 路径。例如:"gs://video-bucket/input/first-frame.jpg"。 -
IMAGE_MIME_TYPE:一个字符串,表示输入图片的 MIME 类型。仅支持以下 MIME 类型的图片:image/jpegimage/png
-
PATH_TO_LAST_FRAME_IMAGE:一个字符串,表示最后一帧所对应图片的 Cloud Storage 路径。例如:"gs://video-bucket/input/last-frame.jpg"。 -
OUTPUT_STORAGE_URI:(可选)一个字符串,表示用于存储输出视频的 Cloud Storage 存储桶。如果未提供,则回答中会返回视频字节。例如:"gs://video-bucket/output/"。 -
RESPONSE_COUNT:要生成的视频文件数量。可接受的值范围为1-4。 -
DURATION:一个整数,表示生成的视频文件的时长。以下是每种模型接受的值:- Veo 2 模型:
5-8。默认值为8。 - Veo 3 模型:
4、6或8。默认为8。
- Veo 2 模型:
-
其他可选参数
根据您的应用场景,使用以下可选变量。在
"parameters": {}对象中添加以下部分或全部参数。"parameters": { "aspectRatio": "ASPECT_RATIO", "negativePrompt": "NEGATIVE_PROMPT", "personGeneration": "PERSON_SAFETY_SETTING", // "resolution": RESOLUTION, // Veo 3 models only "sampleCount": RESPONSE_COUNT, "seed": SEED_NUMBER }-
ASPECT_RATIO:(可选)一个字符串值,用于描述所生成视频的宽高比。您可使用以下值:"16:9"表示横向"9:16"表示纵向
默认值为
"16:9" -
NEGATIVE_PROMPT:(可选)一个字符串值,用于描述您想要阻止模型生成的内容。 -
PERSON_SAFETY_SETTING:(可选)一个字符串值,用于控制生成人物或人脸的安全设置。您可使用以下值:-
"allow_adult":仅允许生成成人形象和人脸。 -
"disallow":不生成人物或人脸。
默认值为
"allow_adult"。 -
-
RESOLUTION:(可选)用于控制生成的视频分辨率的字符串值。仅受 Veo 3 模型支持。您可使用以下 值:"720p""1080p""4k"(仅限 Veo 3.1 预览版模型)
默认值为
"720p"。 -
RESPONSE_COUNT:可选。一个整数值,用于描述要生成的视频数量。可接受的值范围为1-4。 -
SEED_NUMBER:可选。一个 uint32 值,模型使用该值生成确定性视频。通过在请求中指定种子编号而无需更改其他参数,可引导模型生成相同的视频。可接受的值范围为0-4294967295。
-
HTTP 方法和网址:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning
请求 JSON 正文:
{ "instances": [ { "prompt": "TEXT_PROMPT", "image": { "gcsUri": "PATH_TO_FIRST_FRAME_IMAGE, "mimeType": "IMAGE_MIME_TYPE" }, "lastFrame:" { "gcsUri": "PATH_TO_LAST_FRAME_IMAGE, "mimeType": "IMAGE_MIME_TYPE" } } ], "parameters": { "storageUri": "OUTPUT_STORAGE_URI", "sampleCount": RESPONSE_COUNT } }如需发送请求,请选择以下方式之一:
此请求会返回包含唯一操作 ID 的完整操作名称。使用此完整操作名称轮询视频生成请求的状态。curl
将请求正文保存在名为
request.json的文件中,然后执行以下命令:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning"PowerShell
将请求正文保存在名为
request.json的文件中,然后执行以下命令:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning" | Select-Object -Expand Content{ "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8" }-
可选:检查长时间运行的视频生成操作的状态。
在使用任何请求数据之前, 请先进行以下替换:
- PROJECT_ID:您的 Google Cloud 项目 ID。
- MODEL_ID:要使用的模型 ID。
- OPERATION_ID:在原始生成视频请求中返回的唯一操作 ID。
HTTP 方法和网址:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation
请求 JSON 正文:
{ "operationName": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/OPERATION_ID" }如需发送请求,请选择以下方式之一:
此请求会返回有关操作的信息,包括操作是否仍在运行或已完成。curl
将请求正文保存在名为
request.json的文件中,然后执行以下命令:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation"PowerShell
将请求正文保存在名为
request.json的文件中,然后执行以下命令:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation" | Select-Object -Expand Content