La API de Gemini proporciona acceso a Veo 2, el modelo de generación de videos más capaz de Google hasta la fecha. Veo genera videos en una amplia variedad de estilos visuales y cinematográficos, capturando matices inmediatos para renderizar detalles intrincados de manera coherente en todos los fotogramas. Esta guía te ayudará a comenzar a usar Veo con la API de Gemini.
Si quieres obtener orientación sobre las instrucciones de video, consulta la sección Guía de instrucciones de Veo.
Antes de comenzar
Antes de llamar a la API de Gemini, asegúrate de tener instalado el SDK que elijas y de que una clave de API de Gemini esté configurada y lista para usar.
Para usar Veo con los SDKs de Google Gen AI, asegúrate de tener instalada una de las siguientes versiones:
- Python v1.10.0 o una versión posterior
- TypeScript y JavaScript v0.8.0 o versiones posteriores
- Go v1.0.0 o una versión posterior
Generar videos
En esta sección, se proporcionan ejemplos de código para generar videos con instrucciones de texto y con imágenes.
Generar a partir de texto
Puedes usar el siguiente código para generar videos con 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
JavaScript
import { GoogleGenAI } from "@google/genai";
import { createWriteStream } from "fs";
import { Readable } from "stream";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
async function main() {
let operation = await ai.models.generateVideos({
model: "veo-2.0-generate-001",
prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
config: {
personGeneration: "dont_allow",
aspectRatio: "16:9",
},
});
while (!operation.done) {
await new Promise((resolve) => setTimeout(resolve, 10000));
operation = await ai.operations.getVideosOperation({
operation: operation,
});
}
operation.response?.generatedVideos?.forEach(async (generatedVideo, n) => {
const resp = await fetch(`${generatedVideo.video?.uri}&key=GOOGLE_API_KEY`); // append your API key
const writer = createWriteStream(`video${n}.mp4`);
Readable.fromWeb(resp.body).pipe(writer);
});
}
main();
Go
package main
import (
"context"
"fmt"
"os"
"time"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, _ := genai.NewClient(ctx, &genai.ClientConfig{
APIKey: os.Getenv("GEMINI_API_KEY"),
Backend: genai.BackendGeminiAPI,
})
videoConfig := &genai.GenerateVideosConfig{
AspectRatio: "16:9",
PersonGeneration: "dont_allow",
}
operation, _ := client.Models.GenerateVideos(
ctx,
"veo-2.0-generate-001",
"Panning wide shot of a calico kitten sleeping in the sunshine",
nil,
videoConfig,
)
for !operation.Done {
time.Sleep(20 * time.Second)
operation, _ = client.Operations.GetVideosOperation(ctx, operation, nil)
}
for n, video := range operation.Response.GeneratedVideos {
client.Files.Download(ctx, video.Video, nil)
fname := fmt.Sprintf("video_%d.mp4", n)
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
}
}
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
# Obtain operation name to download video.
op_name=$(cat op_name)
# Check against status of operation.
while true; do
is_done=$(curl "${BASE_URL}/${op_name}?key=${GOOGLE_API_KEY}" | tee op_check.json | jq .done)
if [ "${is_done}" = "true" ]; then
cat op_check.json
echo "** Attach API_KEY to download video, or examine error message."
break
fi
echo "** Video ${op_name} has not downloaded yet! Check again after 5 seconds..."
# Wait for 5 seoncds to check again.
sleep 5
done
Este código tarda entre 2 y 3 minutos en ejecutarse, aunque puede tardar más si los recursos están limitados. Cuando termine de ejecutarse, deberías ver un video que se ve así:
Si ves un mensaje de error en lugar de un video, significa que los recursos están limitados y no se pudo completar tu solicitud. En este caso, vuelve a ejecutar el código.
Los videos generados se almacenan en el servidor durante 2 días y, luego, se
quitan. Si quieres guardar una copia local del video generado, debes ejecutar result()
y save()
en un plazo de 2 días después de la generación.
Generar a partir de imágenes
También puedes generar videos con imágenes. Con el siguiente código, se genera una imagen con Imagen y, luego, se usa como marco inicial para el video generado.
Primero, genera una imagen con 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
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
const response = await ai.models.generateImages({
model: "imagen-3.0-generate-002",
prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
config: {
numberOfImages: 1,
},
});
// you'll pass response.generatedImages[0].image.imageBytes to Veo
Go
package main
import (
"context"
"fmt"
"os"
"time"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, _ := genai.NewClient(ctx, &genai.ClientConfig{
APIKey: os.Getenv("GEMINI_API_KEY"),
Backend: genai.BackendGeminiAPI,
})
config := &genai.GenerateImagesConfig{
AspectRatio: "16:9",
NumberOfImages: 1,
}
response, _ := client.Models.GenerateImages(
ctx,
"imagen-3.0-generate-002",
"Panning wide shot of a calico kitten sleeping in the sunshine",
config,
)
// you'll pass response.GeneratedImages[0].Image to Veo
}
Luego, genera un video con la imagen resultante como primer fotograma:
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 is not allowed for image-to-video generation
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)
JavaScript
import { GoogleGenAI } from "@google/genai";
import { createWriteStream } from "fs";
import { Readable } from "stream";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
async function main() {
// get image bytes from Imagen, as shown above
let operation = await ai.models.generateVideos({
model: "veo-2.0-generate-001",
prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
image: {
imageBytes: response.generatedImages[0].image.imageBytes, // response from Imagen
mimeType: "image/png",
},
config: {
aspectRatio: "16:9",
numberOfVideos: 2,
},
});
while (!operation.done) {
await new Promise((resolve) => setTimeout(resolve, 10000));
operation = await ai.operations.getVideosOperation({
operation: operation,
});
}
operation.response?.generatedVideos?.forEach(async (generatedVideo, n) => {
const resp = await fetch(
`${generatedVideo.video?.uri}&key=GOOGLE_API_KEY`, // append your API key
);
const writer = createWriteStream(`video${n}.mp4`);
Readable.fromWeb(resp.body).pipe(writer);
});
}
main();
Go
image := response.GeneratedImages[0].Image
videoConfig := &genai.GenerateVideosConfig{
AspectRatio: "16:9",
NumberOfVideos: 2,
}
operation, _ := client.Models.GenerateVideos(
ctx,
"veo-2.0-generate-001",
"A dramatic scene based on the input image",
image,
videoConfig,
)
for !operation.Done {
time.Sleep(20 * time.Second)
operation, _ = client.Operations.GetVideosOperation(ctx, operation, nil)
}
for n, video := range operation.Response.GeneratedVideos {
client.Files.Download(ctx, video.Video, nil)
fname := fmt.Sprintf("video_with_image_input_%d.mp4", n)
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
}
}
Parámetros del modelo de Veo
(Las convenciones de nomenclatura varían según el lenguaje de programación).
prompt
: Es la solicitud de texto para el video. Cuando está presente, el parámetroimage
es opcional.image
: Es la imagen que se usará como primer fotograma del video. Cuando está presente, el parámetroprompt
es opcional.negativePrompt
: Es una cadena de texto que describe todo lo que deseas que el modelo desaliente de generar.aspectRatio
: Cambia la relación de aspecto del video generado. Los valores admitidos son"16:9"
y"9:16"
. El valor predeterminado es"16:9"
.personGeneration
: Permite que el modelo genere videos de personas. Se admiten los siguientes valores:- Generación de texto a video:
"dont_allow"
: No permite la inclusión de personas ni rostros."allow_adult"
: Genera videos que incluyan adultos, pero no niños.
- Generación de imagen a video:
- No se permite. El servidor rechazará la solicitud si se usa el parámetro.
- Generación de texto a video:
numberOfVideos
: Videos de salida solicitados, ya sea1
o2
.durationSeconds
: Duración de cada video de salida en segundos, entre5
y8
.enhance_prompt
: Habilita o inhabilita el reescribidor de instrucciones. Está habilitado de forma predeterminada.
Especificaciones
Modalidades |
|
Latencia de la solicitud |
|
Generación de longitud variable | 5-8 segundos |
Solución | 720p |
Velocidad de fotogramas | 24 fotogramas |
Relación de aspecto |
|
Idiomas de entrada (texto a video) | Inglés |
Los videos creados por Veo tienen marcas de agua con SynthID, nuestra herramienta para agregar marcas de agua y identificar contenido generado por IA, y pasan por filtros de seguridad y procesos de verificación de memorización que ayudan a mitigar los riesgos de privacidad, derechos de autor y sesgos.
Solución
Para aprovechar Veo al máximo, incorpora terminología específica de los videos en tus instrucciones. Veo comprende una amplia variedad de términos relacionados con lo siguiente:
- Composición de la toma: Especifica el encuadre y la cantidad de sujetos en la toma (p.ej., "tiros únicos", "dos veces" o "tiros por encima del hombro").
- Posicionamiento y movimiento de la cámara: Controla la ubicación y el movimiento de la cámara con términos como "nivel de los ojos", "ángulo alto", "ojo de gusano", "toma móvil", "toma con zoom", "toma lateral" y "toma de seguimiento".
- Efectos de enfoque y lente: Usa términos como "enfoque superficial", "enfoque profundo", "enfoque suave", "lente macro" y "lente gran angular" para lograr efectos visuales específicos.
- Tema y estilo general: Especifica estilos como “ciencia ficción”, “comedia romántica”, “película de acción” o “animación” para guiar la dirección creativa de Veo. También puedes describir los temas y fondos que quieras, como "paisaje urbano", "naturaleza", "vehículos" o "animales".
Guía de instrucciones de VEO
Esta sección de la guía de Veo contiene ejemplos de videos que puedes crear con Veo y te muestra cómo modificar instrucciones para producir resultados distintos.
Filtros de seguridad
Veo aplica filtros de seguridad en Gemini para garantizar que los videos generados y las fotos subidas no incluyan contenido ofensivo. Se bloquean las instrucciones que incumplen nuestros términos y lineamientos.
Conceptos básicos de la escritura de instrucciones
Las buenas instrucciones son descriptivas y claras. Para que el video generado sea lo más cercano posible a lo que deseas, comienza por identificar tu idea principal y, luego, agrega palabras clave y modificadores para definirla mejor.
Debes incluir los siguientes elementos en tu instrucción:
- Asunto: Es el objeto, la persona, el animal o el paisaje que quieres en tu video.
- Contexto: Es el fondo o el contexto en el que se coloca el sujeto.
- Acción: Indica qué está haciendo el sujeto (por ejemplo, caminar, correr o girar la cabeza).
- Estilo: Puede ser general o muy específico. Considera usar palabras clave de estilo película específicas, como película de terror, película negra, o estilos animados, como estilo de dibujos animados.
- Movimiento de la cámara: [Opcional] Qué está haciendo la cámara, como vista aérea, a la altura de los ojos, toma desde arriba o toma de ángulo bajo.
- Composición: Es la forma en que se encuadra la toma; por ejemplo, toma amplia, primer plano o primer plano extremo.
- Ambiance: [Opcional] Cómo contribuyen los colores y la luz a la escena, como los tonos azules, los tonos nocturnos o los tonos cálidos.
Más sugerencias para escribir instrucciones
Las siguientes sugerencias te ayudarán a escribir indicaciones que generen tus videos:
- Usa lenguaje descriptivo: Usa adjetivos y adverbios para pintar un cuadro claro para Veo.
- Proporciona contexto: Si es necesario, incluye información general para ayudar al modelo a comprender lo que deseas.
- Consulta estilos artísticos específicos: Si tienes en mente una estética en particular, consulta estilos artísticos o movimientos artísticos específicos.
- Usa herramientas de ingeniería de instrucciones: Considera explorar herramientas o recursos de ingeniería de instrucciones para ayudarte a definir mejor tus instrucciones y lograr resultados óptimos. Para obtener más información, visita Introducción al diseño de instrucciones.
- Mejora los detalles faciales en tus imágenes personales y grupales: Especifica los detalles faciales como un enfoque de la foto, como usar la palabra retrato en la instrucción.
Ejemplos de instrucciones y resultados
En esta sección, se presentan varias instrucciones y se destaca cómo los detalles descriptivos pueden elevar el resultado de cada video.
Hielos
En este video, se muestra cómo puedes usar los elementos de los conceptos básicos de escritura de instrucciones en tus instrucciones.
Instrucción | Resultado generado |
---|---|
Foto en primer plano (composición) de cápsulas que se derriten (sujeto) sobre una pared de roca congelada (contexto) con tonos azules fríos (ambiente), con acercamiento (movimiento de la cámara) y mantén un primer plano de las gotas de agua (acción). |
![]() |
Hombre hablando por teléfono
En estos videos, se muestra cómo puedes revisar tu instrucción con detalles cada vez más específicos para que Veo defina mejor el resultado según tus preferencias.
Instrucción | Resultado generado | Análisis |
---|---|---|
La cámara se mueve para mostrar un primer plano de un hombre desesperado con una gabardina verde. Está haciendo una llamada con un teléfono de pared de estilo rotativo con una luz de neón verde. Parece una escena de una película. |
![]() |
Este es el primer video generado en función de la instrucción. |
Un primer plano cinematográfico sigue a un hombre desesperado con una gabardina verde desgastada mientras marca un teléfono rotativo montado en una pared de ladrillos arenosos, bañado en el brillo fantasmagórico de un letrero de neón verde. La cámara se acerca, revelando la tensión en su mandíbula y la desesperación grabada en su rostro mientras se esfuerza por hacer la llamada. La profundidad de campo superficial se enfoca en su ceja fruncida y el teléfono rotativo negro, lo que desenfoca el fondo en un mar de colores neón y sombras difíciles, lo que crea una sensación de urgencia y aislamiento. |
![]() |
Una instrucción más detallada genera un video más enfocado con un entorno más rico. |
Un video con un movimiento suave que se acerca a un hombre desesperado con un abrigo verde, que usa un teléfono rotativo vintage contra una pared bañada en un extraño brillo verde neón. La cámara comienza a una distancia media y se acerca lentamente al rostro del hombre, revelando su expresión frenética y el sudor en su frente mientras marca el teléfono con urgencia. El foco está puesto en las manos del hombre, sus dedos moviéndose con el dial mientras intenta desesperadamente conectarse. La luz verde de neón proyecta sombras largas en la pared, lo que aumenta la atmósfera tensa. La escena está enmarcada para enfatizar el aislamiento y la desesperación del hombre, y destacar el marcado contraste entre el brillo vibrante del neón y la determinación sombría del hombre. |
![]() |
Agregar más detalles le da a la persona una expresión realista y crea una escena intensa y brillante. |
Leopardo de las nieves
En este ejemplo, se muestra el resultado que podría generar Veo para una instrucción simple.
Instrucción | Resultado generado |
---|---|
Una criatura linda con pelaje similar al de un leopardo de las nieves camina en un bosque invernal, renderización en 3D de estilo de dibujos animados. |
![]() |
Leopardo de las nieves corriendo
Esta consigna tiene más detalles y muestra un resultado generado que podría ser más cercano a lo que quieres en tu video.
Instrucción | Resultado generado |
---|---|
Crea una breve escena animada en 3D con un estilo de dibujos animados alegre. Una criatura linda con pelaje similar al de un leopardo de las nieves, ojos grandes y expresivos, y una forma amigable y redondeada que corre feliz por un bosque invernal fantástico. La escena debe incluir árboles redondeados cubiertos de nieve, copos de nieve que caen suavemente y luz solar cálida que se filtra a través de las ramas. Los movimientos ágiles y la gran sonrisa de la criatura deben transmitir puro deleite. Intenta crear un tono alegre y cálido con colores brillantes y alegres, y una animación divertida. |
![]() |
Ejemplos mediante la escritura de elementos
Estos ejemplos te muestran cómo definir mejor tus instrucciones con cada elemento básico.
Asunto
En este ejemplo, se muestra cómo especificar una descripción del asunto.
Descripción del asunto | Instrucción | Resultado generado |
---|---|---|
La descripción puede incluir un asunto o varios asuntos y acciones. Aquí, nuestro tema es "edificio de departamentos de concreto blanco". | Una renderización arquitectónica de un edificio de departamentos blanco de concreto con formas orgánicas que fluyen, mezclando a la perfección con vegetación exuberante y elementos futuristas |
![]() |
Contexto
En este ejemplo, se muestra cómo especificar el contexto.
Contexto | Instrucción | Resultado generado |
---|---|---|
El fondo o el contexto en el que se colocará el sujeto es muy importante. Intenta ubicar al sujeto en diferentes fondos, como en una calle concurrida o en el espacio exterior. | Un satélite flotando en el espacio exterior con la luna y algunas estrellas en el fondo. |
![]() |
Acción
En este ejemplo, se muestra cómo especificar la acción.
Acción | Instrucción | Resultado generado |
---|---|---|
Qué está haciendo el sujeto, como caminar, correr o girar la cabeza | Una toma amplia de una mujer caminando por la playa, mirando satisfecha y relajada hacia el horizonte al atardecer. |
![]() |
Estilo
En este ejemplo, se muestra cómo especificar el estilo.
Estilo | Instrucción | Resultado generado |
---|---|---|
Puedes agregar palabras clave para mejorar la calidad de generación y acercarla al estilo deseado, como la profundidad de campo superficial, la imagen fija de película, minimalista, surrealista, vintage, futurista o de doble exposición. | Estilo de cine negro, un hombre y una mujer caminan por la calle, misterio, cinemático, en blanco y negro. |
![]() |
Movimiento de la cámara
En este ejemplo, se muestra cómo especificar el movimiento de la cámara.
Movimiento de la cámara | Instrucción | Resultado generado |
---|---|---|
Las opciones de movimiento de la cámara incluyen toma en POV, vista aérea, vista de seguimiento con dron o toma de seguimiento. | Una toma en POV desde un auto clásico que conduce bajo la lluvia, en Canadá, por la noche, cinematográfica. |
![]() |
Composición
En este ejemplo, se muestra cómo especificar la composición.
Composición | Instrucción | Resultado generado |
---|---|---|
Cómo se encuadra la toma (toma amplia, primer plano, ángulo bajo) | Primer plano extremo de un ojo con la ciudad reflejada. |
![]() |
Crea un video de un plano general de un surfista caminando por una playa con una tabla de surf, un hermoso atardecer, cinemático. |
![]() |
Ambiente
En este ejemplo, se muestra cómo especificar el ambiente.
Ambiance | Instrucción | Resultado generado |
---|---|---|
Las paletas de colores desempeñan un papel fundamental en la fotografía, ya que influyen en el estado de ánimo y transmiten las emociones previstas. Prueba opciones como "tonos cálidos naranjas tenue", "luz natural", "amanecer" o "atardecer". Por ejemplo, una paleta cálida y dorada puede infundir un ambiente romántico y atmosférico en una fotografía. | Primer plano de una niña que sostiene un adorable cachorro de golden retriever en el parque, a la luz del sol. |
![]() |
Primer plano cinematográfico de una mujer triste que viaja en un autobús bajo la lluvia, tonos azules fríos, estado de ánimo triste. |
![]() |
Usa imágenes de referencia para generar videos
Puedes dar vida a las imágenes con la función imagen a video de Veo. Puedes usar recursos existentes o probar Imagen para generar algo nuevo.
Instrucción | Resultado generado |
---|---|
Conejo con una barra de chocolate. |
![]() |
Conejito se escapa. |
![]() |
Mensajes negativos
Las instrucciones negativas pueden ser una herramienta potente para especificar los elementos que no quieres en el video. Describe lo que quieres que el modelo no genere después de la frase "Consigna negativa". Sigue estas sugerencias:
❌ No uses lenguaje instructivo ni palabras como no o no hagas. Por ejemplo, "Sin paredes" o "No mostrar paredes".
✅ Describe lo que no quieres ver. Por ejemplo, “muro, marco”, lo que significa que no quieres que haya un muro ni un marco en el video.
Instrucción | Resultado generado |
---|---|
Genera una animación corta y estilizada de un roble grande y solitario con hojas que se agitan con fuerza en un viento fuerte. El árbol debe tener una forma ligeramente exagerada y caprichosa, con ramas dinámicas y fluidas. Las hojas deben mostrar una variedad de colores otoñales que se muevan y bailen con el viento. La animación debe usar una paleta de colores cálida y atractiva. |
![]() |
Genera una animación corta y estilizada de un roble grande y solitario con hojas que se agitan con fuerza en un viento fuerte. El árbol debe tener una forma ligeramente exagerada y caprichosa, con ramas dinámicas y fluidas. Las hojas deben mostrar una variedad de colores otoñales que se muevan y bailen con el viento. La animación debe usar una paleta de colores cálida y atractiva.
Con instrucciones negativas: fondo urbano, estructuras artificiales, atmósfera oscura, tormentosa o amenazante |
![]() |
Relaciones de aspecto
La generación de videos de Gemini Veo admite las siguientes dos relaciones de aspecto:
Relación de aspecto | Descripción |
---|---|
Pantalla ancha o 16:9 | Es la relación de aspecto más común para televisores, monitores y pantallas de teléfonos celulares (horizontal). Úsala cuando quieras capturar más del fondo, como en paisajes panorámicos. |
Vertical o 9:16 | Pantalla panorámica rota. Esta relación de aspecto se popularizó en aplicaciones de videos de formato corto, como YouTube Shorts. Úsalo para retratos u objetos altos con orientaciones verticales fuertes, como edificios, árboles, cascadas o edificios. |
Panorámica
Este mensaje es un ejemplo de la relación de aspecto de la pantalla panorámica de 16:9.
Instrucción | Resultado generado |
---|---|
Crea un video con una vista de dron de seguimiento de un hombre conduciendo un auto convertible rojo en Palm Springs, década de 1970, con luz solar cálida y sombras largas. |
![]() |
Vertical
Esta instrucción es un ejemplo de la relación de aspecto vertical de 9:16.
Instrucción | Resultado generado |
---|---|
Crea un video que destaque el movimiento suave de una majestuosa cascada hawaiana en una selva tropical frondosa. Enfócate en un flujo de agua realista, follaje detallado y una iluminación natural para transmitir tranquilidad. Captura el agua que corre, la atmósfera brumosa y la luz solar moteada que se filtra a través de la densa cobertura. Usa movimientos de cámara suaves y cinematográficos para mostrar la cascada y su entorno. Intenta lograr un tono pacífico y realista que transporte al público a la belleza serena de la selva tropical de Hawái. |
![]() |
¿Qué sigue?
- Gana más experiencia generando videos de IA con Veo Colab.
- Consulta ejemplos interesantes con Veo 2 en el sitio de Google DeepMind.