Veo 3 — это передовая модель Google для создания высококачественных 8-секундных видеороликов с разрешением 720p из текстовых команд, отличающихся потрясающим реализмом и встроенным звуком. Veo 3 отлично работает с широким спектром визуальных и кинематографических стилей. Выберите пример ниже, чтобы узнать, как создать видео с диалогами, кинематографическим реализмом или креативной анимацией.
Создание видео из изображений
Следующий код демонстрирует генерацию изображения с помощью Imagen , а затем использование этого изображения в качестве начального кадра для видео.
Питон
import time
from google import genai
client = genai.Client()
prompt = "Panning wide shot of a calico kitten sleeping in the sunshine"
# Step 1: Generate an image with Imagen
imagen = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
)
# Step 2: Generate video with Veo 2 using the image
operation = client.models.generate_videos(
model="veo-2.0-generate-001",
prompt=prompt,
image=imagen.generated_images[0].image,
)
# Poll the operation status until the video is ready
while not operation.done:
print("Waiting for video generation to complete...")
time.sleep(10)
operation = client.operations.get(operation)
# Download the video
video = operation.response.generated_videos[0]
client.files.download(file=video.video)
video.video.save("veo2_with_image_input.mp4")
print("Generated video saved to veo2_with_image_input.mp4")
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const prompt = "Panning wide shot of a calico kitten sleeping in the sunshine";
// Step 1: Generate an image with Imagen
const imagenResponse = await ai.models.generateImages({
model: "imagen-3.0-generate-002",
prompt: prompt,
});
// Step 2: Generate video with Veo 2 using the image
let operation = await ai.models.generateVideos({
model: "veo-2.0-generate-001", // Use Veo 2
prompt: prompt,
image: {
imageBytes: imagenResponse.generatedImages[0].image.imageBytes,
mimeType: "image/png",
},
});
// Poll the operation status until the video is ready
while (!operation.done) {
console.log("Waiting for video generation to complete...")
await new Promise((resolve) => setTimeout(resolve, 10000));
operation = await ai.operations.getVideosOperation({
operation: operation,
});
}
// Download the video
ai.files.download({
file: operation.response.generatedVideos[0].video,
downloadPath: "veo2_with_image_input.mp4",
});
console.log(`Generated video saved to veo2_with_image_input.mp4`);
Идти
package main
import (
"context"
"log"
"os"
"time"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
prompt := "Panning wide shot of a calico kitten sleeping in the sunshine"
// Step 1: Generate an image with Imagen
imagenResponse, err := client.Models.GenerateImages(
ctx,
"imagen-3.0-generate-002",
prompt,
nil, // GenerateImagesConfig
)
if err != nil {
log.Fatal(err)
}
// Step 2: Generate video with Veo 2 using the image
operation, err := client.Models.GenerateVideos(
ctx,
"veo-2.0-generate-001",
prompt,
imagenResponse.GeneratedImages[0].Image, // Use generated image
nil, // GenerateVideosConfig
)
if err != nil {
log.Fatal(err)
}
// Poll the operation status until the video is ready
for !operation.Done {
log.Println("Waiting for video generation to complete...")
time.Sleep(10 * time.Second)
operation, _ = client.Operations.GetVideosOperation(ctx, operation, nil)
}
// Download the video
video := operation.Response.GeneratedVideos[0]
client.Files.Download(ctx, video.Video, nil)
fname := "veo2_with_image_input.mp4"
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
log.Printf("Generated video saved to %s\n", fname)
}
Параметры и характеристики генерации видео
Это параметры, которые вы можете задать в своем API-запросе для управления процессом генерации видео.
Параметр | Описание | Veo 3 (предварительный просмотр) | Veo 2 (Стабильная) |
---|---|---|---|
prompt | Текстовое описание видео. Поддерживает звуковые подсказки. | string | string |
negativePrompt | Текст с описанием того, чего следует избегать в видео. | string | string |
image | Исходное изображение для анимации. | Не поддерживается | Объект Image |
aspectRatio | Соотношение сторон видео. | "16:9" | "16:9" , "9:16" |
personGeneration | Управляет поколением людей. | "allow_all" | "allow_all" , "allow_adult" , "dont_allow" |
Вы можете настроить генерацию видео, задав параметры в запросе. Например, можно указать negativePrompt
для управления моделью.
Питон
import time
from google import genai
from google.genai import types
client = genai.Client()
operation = client.models.generate_videos(
model="veo-3.0-generate-preview",
prompt="A cinematic shot of a majestic lion in the savannah.",
config=types.GenerateVideosConfig(negative_prompt="cartoon, drawing, low quality"),
)
# Poll the operation status until the video is ready
while not operation.done:
print("Waiting for video generation to complete...")
time.sleep(10)
operation = client.operations.get(operation)
# Download the generated video
generated_video = operation.response.generated_videos[0]
client.files.download(file=generated_video.video)
generated_video.video.save("parameters_example.mp4")
print("Generated video saved to parameters_example.mp4")
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
let operation = await ai.models.generateVideos({
model: "veo-3.0-generate-preview",
prompt: "A cinematic shot of a majestic lion in the savannah.",
config: {
aspectRatio: "16:9",
negativePrompt: "cartoon, drawing, low quality"
},
});
// Poll the operation status until the video is ready
while (!operation.done) {
console.log("Waiting for video generation to complete...")
await new Promise((resolve) => setTimeout(resolve, 10000));
operation = await ai.operations.getVideosOperation({
operation: operation,
});
}
// Download the generated video
ai.files.download({
file: operation.response.generatedVideos[0].video,
downloadPath: "parameters_example.mp4",
});
console.log(`Generated video saved to parameters_example.mp4`);
Идти
package main
import (
"context"
"log"
"os"
"time"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
videoConfig := &genai.GenerateVideosConfig{
AspectRatio: "16:9",
NegativePrompt: "cartoon, drawing, low quality",
}
operation, _ := client.Models.GenerateVideos(
ctx,
"veo-3.0-generate-preview",
"A cinematic shot of a majestic lion in the savannah.",
nil,
videoConfig,
)
// Poll the operation status until the video is ready
for !operation.Done {
log.Println("Waiting for video generation to complete...")
time.Sleep(10 * time.Second)
operation, _ = client.Operations.GetVideosOperation(ctx, operation, nil)
}
// Download the generated video
video := operation.Response.GeneratedVideos[0]
client.Files.Download(ctx, video.Video, nil)
fname := "parameters_example.mp4"
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
log.Printf("Generated video saved to %s\n", fname)
}
ОТДЫХ
# Note: This script uses jq to parse the JSON response.
# GEMINI API Base URL
BASE_URL="https://generativelanguage.googleapis.com/v1beta"
# Send request to generate video and capture the operation name into a variable.
operation_name=$(curl -s "${BASE_URL}/models/veo-3.0-generate-preview:predictLongRunning" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-X "POST" \
-d '{
"instances": [{
"prompt": "A cinematic shot of a majestic lion in the savannah."
}
],
"parameters": {
"aspectRatio": "16:9",
"negativePrompt": "cartoon, drawing, low quality"
}
}' | jq -r .name)
# Poll the operation status until the video is ready
while true; do
# Get the full JSON status and store it in a variable.
status_response=$(curl -s -H "x-goog-api-key: $GEMINI_API_KEY" "${BASE_URL}/${operation_name}")
# Check the "done" field from the JSON stored in the variable.
is_done=$(echo "${status_response}" | jq .done)
if [ "${is_done}" = "true" ]; then
# Extract the download URI from the final response.
video_uri=$(echo "${status_response}" | jq -r '.response.generateVideoResponse.generatedSamples[0].video.uri')
echo "Downloading video from: ${video_uri}"
# Download the video using the URI and API key and follow redirects.
curl -L -o parameters_example.mp4 -H "x-goog-api-key: $GEMINI_API_KEY" "${video_uri}"
break
fi
# Wait for 5 seconds before checking again.
sleep 10
done
Обработка асинхронных операций
Генерация видео — задача, требующая больших вычислительных ресурсов. При отправке запроса API запускает длительную задачу и немедленно возвращает объект operation
. После этого необходимо продолжать опрос, пока видео не будет готово, что подтверждается статусом done
, равным true.
Основой этого процесса является цикл опроса, который периодически проверяет статус задания.
Питон
import time
from google import genai
from google.genai import types
client = genai.Client()
# After starting the job, you get an operation object
operation = client.models.generate_videos(
model="veo-3.0-generate-preview",
prompt="A cinematic shot of a majestic lion in the savannah.",
)
# Alternatively, you can use the operation.name to get the operation
operation = types.GenerateVideosOperation(name=operation.name)
# This loop checks the job status every 10 seconds
while not operation.done:
time.sleep(10)
# Refresh the operation object to get the latest status
operation = client.operations.get(operation)
# Once done, the result is in operation.response
# ... process and download your video ...
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
// After starting the job, you get an operation object
let operation = await ai.models.generateVideos({
model: "veo-3.0-generate-preview",
prompt: "A cinematic shot of a majestic lion in the savannah.",
});
// Alternatively, you can use the operation.name to get the operation
// operation = types.GenerateVideosOperation(name=operation.name)
// This loop checks the job status every 10 seconds
while (!operation.done) {
await new Promise((resolve) => setTimeout(resolve, 1000));
// Refresh the operation object to get the latest status
operation = await ai.operations.getVideosOperation({ operation });
}
// Once done, the result is in operation.response
// ... process and download your video ...
Особенности модели
Особенность | Описание | Veo 3 (предварительный просмотр) | Veo 2 (Стабильная) |
---|---|---|---|
Аудио | Генерирует аудио с видео в собственном формате. | ✔️ Всегда включен | ❌ Только без звука |
Модальности ввода | Тип входных данных, используемых для генерации. | Текст в видео | Текст в видео, изображение в видео |
Разрешение | Выходное разрешение видео. | 720p | 720p |
Частота кадров | Выходная частота кадров видео. | 24 кадра в секунду | 24 кадра в секунду |
Продолжительность видео | Продолжительность сгенерированного видео. | 8 секунд | 5-8 секунд |
Видео по запросу | Количество видео, сгенерированных за один запрос. | 1 | 1 или 2 |
Статус и подробности | Наличие модели и дополнительная информация. | Предварительный просмотр | Стабильный |
Дополнительную информацию об ограничениях по использованию Veo можно найти на страницах «Модели» , «Цены» и «Ограничения по скорости» .
Veo-руководство по быстрому запуску
В этом разделе содержатся примеры видеороликов, которые можно создать с помощью Veo, а также показано, как изменять подсказки для получения различных результатов.
Фильтры безопасности
Veo применяет фильтры безопасности в Gemini, чтобы гарантировать отсутствие оскорбительного контента в создаваемых видео и загружаемых фотографиях. Сообщения, нарушающие наши условия и правила, блокируются.
Запрос на аудио (Veo 3)
С помощью Veo 3 вы можете задавать сигналы для звуковых эффектов, фонового шума и диалогов. Модель улавливает нюансы этих сигналов для создания синхронизированной звуковой дорожки.
- Диалог: Используйте кавычки для конкретных фраз. (Пример: «Это, должно быть, ключ», — пробормотал он.)
- Звуковые эффекты (SFX): Подробно опишите звуки. (Пример: громкий визг шин, рёв двигателя.)
- Окружающий шум: Опишите звуковой ландшафт окружающей среды. (Пример: на заднем плане слышится слабый, жуткий гул.)
В этих видеороликах демонстрируется генерация звука Veo 3 с возрастающим уровнем детализации.
Быстрый | Сгенерированный вывод |
---|---|
Подробнее (Диалоги и Атмосфера) Крупный план: двое людей смотрят на загадочный рисунок на стене, мерцает свет факела. «Это, должно быть, ключ», — пробормотал он, обводя узор. «Но что это значит?» — недоуменно спросила она, наклонив голову. Влажный камень, замысловатая резьба, скрытые символы. На заднем плане раздаётся слабый, жуткий гул. | |
Меньше подробностей (Диалог) Кемпинг (покадровая съёмка): Отдыхающий: «Теперь я наедине с природой!» Медведь: «Природа предпочла бы личное пространство». |
Попробуйте сами эти подсказки, чтобы услышать аудио! Попробуйте Veo 3
Основы письма в оперативном режиме
Хорошие подсказки должны быть описательными и понятными. Чтобы максимально эффективно использовать Veo, начните с определения основной идеи, уточните её, добавив ключевые слова и модификаторы, а также используйте в подсказках терминологию, связанную с видео.
В ваше приглашение следует включить следующие элементы:
- Тема : объект, человек, животное или пейзаж, которые вы хотите включить в свое видео, например, городской пейзаж , природа , транспортные средства или щенки .
- Действие : что делает субъект (например, идет , бежит или поворачивает голову ).
- Стиль : Укажите творческое направление, используя определенные ключевые слова стиля фильма, например, «научная фантастика» , «фильм ужасов» , «фильм-нуар» или анимационные стили, например, мультфильм .
- Расположение и движение камеры : [Необязательно] Управляйте местоположением и движением камеры, используя такие термины, как вид с воздуха , уровень глаз , съемка сверху вниз , съемка с тележки или взгляд червя .
- Композиция : [Необязательно] Как кадрирован снимок, например, общий план , крупный план , одиночный план или два плана .
- Эффекты фокусировки и объектива : [Необязательно] Используйте такие термины, как «неглубокий фокус» , «глубокий фокус» , «мягкий фокус» , «макрообъектив » и «широкоугольный объектив» для достижения определенных визуальных эффектов.
- Атмосфера : [Необязательно] Как цвет и свет влияют на сцену, например, синие тона , ночь или теплые тона .
Дополнительные советы по написанию подсказок
- Используйте описательный язык : используйте прилагательные и наречия, чтобы нарисовать ясную картину Veo.
- Улучшите детали лица : укажите детали лица как основной акцент фотографии, например, используя слово «портрет» в подсказке.
Для получения более подробных стратегий создания подсказок посетите раздел Введение в разработку подсказок .
Примеры подсказок и вывода
В этом разделе представлено несколько подсказок, показывающих, как описательные детали могут улучшить результат каждого видео.
Сосульки
В этом видео показано, как можно использовать элементы основ написания подсказок в своих подсказках.
Быстрый | Сгенерированный вывод |
---|---|
Крупный план (композиция) тающих сосулек (объект) на замерзшей каменной стене (контекст) в холодных синих тонах (атмосфера), увеличенный (движение камеры) с сохранением деталей крупным планом капель воды (действие). |
Мужчина по телефону
В этих видеороликах показано, как можно дополнить подсказку более конкретными подробностями, чтобы Veo мог улучшить вывод по вашему желанию.
Быстрый | Сгенерированный вывод |
---|---|
Меньше подробностей Камера наезжает, показывая крупным планом отчаявшегося мужчину в зелёном плаще. Он звонит по дисковому настенному телефону с зелёной неоновой подсветкой. Похоже на сцену из фильма. | |
Более подробно Кинематографический кадр крупным планом показывает отчаявшегося мужчину в потертом зеленом плаще, набирающего номер дискового телефона, установленного на шершавой кирпичной стене, в зловещем свете зеленой неоновой вывески. Камера наезжает, показывая напряжение в его челюсти и отчаяние, отражающееся на его лице, когда он пытается позвонить. Небольшая глубина резкости фокусируется на его нахмуренном лбу и черном дисковом телефоне, размывая фон, превращая его в море неоновых цветов и нечетких теней, создавая ощущение безотлагательности и одиночества. |
Снежный барс
Быстрый | Сгенерированный вывод |
---|---|
Простая подсказка: Милое существо с мехом, похожим на мех снежного барса, гуляет по зимнему лесу, 3D-рендеринг в стиле мультфильма. | |
Подробная подсказка: Создайте короткую 3D-анимацию в радостном мультяшном стиле. Милое существо с мехом, похожим на снежного барса, большими выразительными глазами и дружелюбным округлым телом радостно скачет по причудливому зимнему лесу. В сцене должны быть округлые заснеженные деревья, мягко падающие снежинки и тёплый солнечный свет, пробивающийся сквозь ветви. Пружинящие движения и широкая улыбка существа должны передавать чистый восторг. Стремитесь к жизнерадостному, трогательному настроению, используя яркие, жизнерадостные цвета и игривую анимацию. |
Примеры написания элементов
Эти примеры покажут вам, как оптимизировать подсказки по каждому базовому элементу.
Тема и контекст
Укажите основной фокус (тему) и фон или среду (контекст).
Быстрый | Сгенерированный вывод |
---|---|
Архитектурная визуализация белого бетонного жилого дома с плавными органическими формами, гармонично сочетающегося с пышной зеленью и футуристическими элементами. | |
Спутник, плывущий в космическом пространстве, на заднем плане — луна и несколько звезд. |
Действие
Укажите, что делает субъект (например, идет, бежит или поворачивает голову).
Быстрый | Сгенерированный вывод |
---|---|
Общий план женщины, идущей по пляжу, выглядящей довольной и расслабленной на фоне заката. |
Стиль
Добавьте ключевые слова, чтобы направить поколение к определенной эстетике (например, сюрреалистичный, винтажный, футуристический, фильм-нуар).
Быстрый | Сгенерированный вывод |
---|---|
Стиль фильма нуар, мужчина и женщина идут по улице, детектив, кинематографичный, черно-белый. |
Движение камеры и композиция
Укажите, как движется камера (съемка от первого лица, вид сверху, вид с дрона) и как кадрируется снимок (общий план, крупный план, нижний ракурс).
Быстрый | Сгенерированный вывод |
---|---|
Снимок от первого лица из старинной машины, едущей под дождем, Канада ночью, кинематографично. | |
Крупный план глаза с отражением города в нем. |
Атмосфера
Цветовая палитра и освещение влияют на настроение. Попробуйте использовать такие термины, как «приглушённые тёплые оранжевые тона», «естественный свет», «восход солнца» или «холодные синие тона».
Быстрый | Сгенерированный вывод |
---|---|
Крупный план девочки, держащей очаровательного щенка золотистого ретривера в парке, солнечный свет. | |
Кинематографический снимок крупным планом грустной женщины, едущей в автобусе под дождем, холодные синие тона, грустное настроение. |
Используйте референсные изображения для создания видео
Вы можете оживить изображения, используя функцию Veo по преобразованию изображений в видео .
Быстрый | Сгенерированный вывод |
---|---|
Входное изображение (сгенерировано Imagen) Зайчик с шоколадным батончиком. | |
Выходное видео (сгенерировано Veo 2) Зайчик убегает. |
Отрицательные подсказки
Отрицательные подсказки указывают на элементы, которые вы не хотите видеть в видео.
- ❌ Не используйте поучительные выражения, такие как «нет» или «нельзя » (например, «Никаких стен»).
- ✅ Опишите, чего вы не хотите видеть. (например, «стена, рама»).
Быстрый | Сгенерированный вывод |
---|---|
Без отрицательной подсказки: Создайте короткую стилизованную анимацию большого одинокого дуба с листьями, энергично развевающимися на сильном ветру... [сокращено] | |
С отрицательным ответом: [Тот же запрос] Отрицательная подсказка: городской фон, искусственные сооружения, темная, штормовая или угрожающая атмосфера. |
Соотношения сторон
Veo позволяет вам указать соотношение сторон вашего видео.
Быстрый | Сгенерированный вывод |
---|---|
Широкоэкранный (16:9) Создайте видео с использованием беспилотника, на котором запечатлен мужчина за рулем красного кабриолета в Палм-Спрингс, 1970-е годы, теплый солнечный свет, длинные тени. | |
Портрет (9:16 — только Veo 2) Создайте видео, демонстрирующее плавное движение величественного гавайского водопада среди пышного тропического леса. Сделайте акцент на реалистичном течении воды, детальной прорисовке листвы и естественном освещении, чтобы передать атмосферу спокойствия. Запечатлейте бурлящий поток воды, туманную атмосферу и пробивающиеся сквозь густые заросли солнечные лучи. Используйте плавные, кинематографичные движения камеры, чтобы показать водопад и его окрестности. Стремитесь к умиротворяющей, реалистичной атмосфере, переносящей зрителя в безмятежную красоту гавайского тропического леса. |
Ограничения
- Задержка запроса: мин.: 11 секунд; макс.: 6 минут (в часы пик).
- Региональные ограничения:
personGeneration: "allow_all"
(значение по умолчанию в Veo 3) иpersonGeneration
Image-to-video (Veo 2) не разрешены в странах ЕС, Великобритании, Швейцарии, Ближнего Востока и Северной Африки. - Хранение видео: Сгенерированные видео хранятся на сервере в течение 2 дней, после чего удаляются. Чтобы сохранить локальную копию, необходимо скачать видео в течение 2 дней с момента его создания.
- Водяные знаки: Видеоролики, созданные Veo, помечаются водяными знаками с помощью SynthID — нашего инструмента для маркировки водяными знаками и идентификации контента, созданного с помощью искусственного интеллекта.
- Безопасность: Созданные видеоролики проходят через фильтры безопасности и процессы проверки на запоминание, которые помогают снизить риски, связанные с конфиденциальностью, авторскими правами и предвзятостью.
Что дальше?
- Поэкспериментируйте с Veo 3 в Veo Quickstart Colab .
- Узнайте, как писать еще более качественные подсказки, из нашего Введения в разработку подсказок .
- Если вам необходимо использовать функцию преобразования изображений в видео или другие функции Veo 2, см. Руководство по Veo 2 и миграции .