Starting April 29, 2025, Gemini 1.5 Pro and Gemini 1.5 Flash models are not available in projects that have no prior usage of these models, including new projects. For details, seeModel versions and lifecycle.
Stay organized with collectionsSave and categorize content based on your preferences.
You can use Veo on Vertex AI to extend videos that you previously generated using
Veo. You can extend videos using either the Google Cloud console or
the Vertex AI API.
For information about writing effective text prompts for video generation,
see theVeo prompt
guide.
Before you begin
Sign in to your Google Cloud account. If you're new to
Google Cloud,create an accountto evaluate how our products perform in
real-world scenarios. New customers also get $300 in free credits to
run, test, and deploy workloads.
In the Google Cloud console, on the project selector page,
select or create a Google Cloud project.
Set environment variables to use the Gen AI SDK with Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values# with appropriate values for your project.exportGOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECTexportGOOGLE_CLOUD_LOCATION=globalexportGOOGLE_GENAI_USE_VERTEXAI=True
importtimefromgoogleimportgenaifromgoogle.genai.typesimportGenerateVideosConfig,Videoclient=genai.Client()# TODO(developer): Update and un-comment below line# output_gcs_uri = "gs://your-bucket/your-prefix"operation=client.models.generate_videos(model="veo-2.0-generate-001",prompt="a butterfly flies in and lands on the flower",video=Video(uri="gs://cloud-samples-data/generative-ai/video/flower.mp4",),config=GenerateVideosConfig(aspect_ratio="16:9",output_gcs_uri=output_gcs_uri,),)whilenotoperation.done:time.sleep(15)operation=client.operations.get(operation)print(operation)ifoperation.response:print(operation.result.generated_videos[0].video.uri)# Example response:# gs://your-bucket/your-prefix
REST
After youset up your environment,
you can use REST to test a text prompt. The following sample sends a request to the publisher
model endpoint.
Use the following command to send a video generation request. This
request begins a long-running operation and stores output to a
Cloud Storage bucket you specify.
Before using any of the request data,
make the following replacements:
TEXT_PROMPT: The text prompt used to guide video generation.
PATH_TO_VIDEO: The Cloud Storage path to the
Veo video that you're extending.
OUTPUT_STORAGE_URI: Optional: The Cloud Storage bucket to
store the output videos. If not provided, video bytes are returned in the
response. For example:gs://video-bucket/output/.
RESPONSE_COUNT: The number of video files you want to generate.
Accepted integer values: 1-4.
DURATION: The length of video files that you want to generate.
Accepted integer values are 5-8.
Additional optional parameters
Use the following optional variables depending on your use
case. Add some or all of the following parameters in the"parameters": {}object.
ASPECT_RATIO:
Optional: A string value that describes the aspect ratio of the generated
videos. You can use the following values:
"16:9"for landscape
"9:16"for portrait
The default value is"16:9"
NEGATIVE_PROMPT: Optional: A string
value that describes content that you want to prevent the model from
generating.
PERSON_SAFETY_SETTING:
Optional: A string value that controls the safety setting for generating
people or face generation. You can use the following values:
"allow_adult": Only allow generation of adult people and
faces.
"disallow": Doesn't generate people or faces.
The default value is"allow_adult".
RESOLUTION:
Optional: A string value that controls the resolution of the generated
video. Supported byVeo 3 models only.You can use the following
values:
"720p"
"1080p"
The default value is"720p".
RESPONSE_COUNT:
Optional. An integer value that describes the number of videos to generate.
The accepted range of values is1-4.
SEED_NUMBER:
Optional. An uint32 value that the model uses to generate deterministic
videos. Specifying a seed number with your request without changing other
parameters guides the model to produce the same videos. The accepted range
of values is0-4294967295.
HTTP method and URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001:predictLongRunning
This request returns a full operation name with a unique operation ID. Use this
full operation name to poll that status of the video generation request.
OPERATION_ID: The unique operation ID returned in the original generate video
request.
HTTP method and URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,[]]