Veo 3.1 to najnowocześniejszy model Google do generowania 8-sekundowych filmów w rozdzielczości 720p lub 1080p o wysokiej jakości, które charakteryzują się niesamowitym realizmem i zawierają wygenerowany dźwięk. Dostęp do tego modelu możesz uzyskać w sposób zautomatyzowany za pomocą interfejsu Gemini API. Więcej informacji o dostępnych wariantach modelu Veo znajdziesz w sekcji Wersje modelu.
Veo 3.1 doskonale radzi sobie z różnymi stylami wizualnymi i filmowymi oraz wprowadza kilka nowych funkcji:
- Rozszerzenie wideo: rozszerzaj filmy, które zostały wcześniej wygenerowane za pomocą Veo.
- Generowanie konkretnych klatek: wygeneruj film, podając pierwszą i ostatnią klatkę.
- Kierowanie na podstawie obrazu: użyj maksymalnie 3 obrazów referencyjnych, aby określić zawartość wygenerowanego filmu.
Więcej informacji o pisaniu skutecznych promptów tekstowych do generowania filmów znajdziesz w przewodniku po promptach Veo.
Generowanie filmu na podstawie tekstu
Wybierz przykład, aby dowiedzieć się, jak wygenerować film z dialogami, kinowym realizmem lub kreatywną animacją:
Python
import time
from google import genai
from google.genai import types
client = genai.Client()
prompt = """A close up of two people staring at a cryptic drawing on a wall, torchlight flickering.
A man murmurs, 'This must be it. That's the secret code.' The woman looks at him and whispering excitedly, 'What did you find?'"""
operation = client.models.generate_videos(
model="veo-3.1-generate-preview",
prompt=prompt,
)
# 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("dialogue_example.mp4")
print("Generated video saved to dialogue_example.mp4")
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const prompt = `A close up of two people staring at a cryptic drawing on a wall, torchlight flickering.
A man murmurs, 'This must be it. That's the secret code.' The woman looks at him and whispering excitedly, 'What did you find?'`;
let operation = await ai.models.generateVideos({
model: "veo-3.1-generate-preview",
prompt: prompt,
});
// 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: "dialogue_example.mp4",
});
console.log(`Generated video saved to dialogue_example.mp4`);
Przeczytaj
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 := `A close up of two people staring at a cryptic drawing on a wall, torchlight flickering.
A man murmurs, 'This must be it. That's the secret code.' The woman looks at him and whispering excitedly, 'What did you find?'`
operation, _ := client.Models.GenerateVideos(
ctx,
"veo-3.1-generate-preview",
prompt,
nil,
nil,
)
// 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 := "dialogue_example.mp4"
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
log.Printf("Generated video saved to %s\n", fname)
}
REST
# 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.1-generate-preview:predictLongRunning" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-X "POST" \
-d '{
"instances": [{
"prompt": "A close up of two people staring at a cryptic drawing on a wall, torchlight flickering. A man murmurs, \"This must be it. That'\''s the secret code.\" The woman looks at him and whispering excitedly, \"What did you find?\""
}
]
}' | 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 dialogue_example.mp4 -H "x-goog-api-key: $GEMINI_API_KEY" "${video_uri}"
break
fi
# Wait for 5 seconds before checking again.
sleep 10
done
Generowanie filmu na podstawie obrazu
Poniższy kod pokazuje, jak wygenerować obraz za pomocą Gemini 2.5 Flash Image, czyli Nano Banana, a następnie użyć go jako klatki początkowej do wygenerowania filmu za pomocą Veo 3.1.
Python
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 Nano Banana.
image = client.models.generate_content(
model="gemini-2.5-flash-image",
prompt=prompt,
)
# Step 2: Generate video with Veo 3.1 using the image.
operation = client.models.generate_videos(
model="veo-3.1-generate-preview",
prompt=prompt,
image=image.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("veo3_with_image_input.mp4")
print("Generated video saved to veo3_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 Nano Banana.
const imageResponse = await ai.models.generateContent({
model: "gemini-2.5-flash-image",
prompt: prompt,
});
// Step 2: Generate video with Veo 3.1 using the image.
let operation = await ai.models.generateVideos({
model: "veo-3.1-generate-preview",
prompt: prompt,
image: {
imageBytes: imageResponse.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: "veo3_with_image_input.mp4",
});
console.log(`Generated video saved to veo3_with_image_input.mp4`);
Przeczytaj
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 Nano Banana.
imageResponse, err := client.Models.GenerateContent(
ctx,
"gemini-2.5-flash-image",
prompt,
nil, // GenerateImagesConfig
)
if err != nil {
log.Fatal(err)
}
// Step 2: Generate video with Veo 3.1 using the image.
operation, err := client.Models.GenerateVideos(
ctx,
"veo-3.1-generate-preview",
prompt,
imageResponse.GeneratedImages[0].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 := "veo3_with_image_input.mp4"
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
log.Printf("Generated video saved to %s\n", fname)
}
Korzystanie z obrazów referencyjnych
Veo 3.1 akceptuje teraz maksymalnie 3 obrazy referencyjne, które pomagają określać zawartość wygenerowanego filmu. Prześlij zdjęcia osoby, postaci lub produktu, aby zachować wygląd obiektu w filmie wyjściowym.
Na przykład użycie tych 3 obrazów wygenerowanych za pomocą Nano Banana jako odniesień z dobrze napisanym promptem spowoduje utworzenie tego filmu:
`dress_image` |
`woman_image` |
`glasses_image` |
---|---|---|
![]() |
![]() |
![]() |
Python
import time
from google import genai
client = genai.Client()
prompt = "The video opens with a medium, eye-level shot of a beautiful woman with dark hair and warm brown eyes. She wears a magnificent, high-fashion flamingo dress with layers of pink and fuchsia feathers, complemented by whimsical pink, heart-shaped sunglasses. She walks with serene confidence through the crystal-clear, shallow turquoise water of a sun-drenched lagoon. The camera slowly pulls back to a medium-wide shot, revealing the breathtaking scene as the dress's long train glides and floats gracefully on the water's surface behind her. The cinematic, dreamlike atmosphere is enhanced by the vibrant colors of the dress against the serene, minimalist landscape, capturing a moment of pure elegance and high-fashion fantasy."
dress_reference = types.VideoGenerationReferenceImage(
image=dress_image, # Generated separately with Nano Banana
reference_type="asset"
)
sunglasses_reference = types.VideoGenerationReferenceImage(
image=glasses_image, # Generated separately with Nano Banana
reference_type="asset"
)
woman_reference = types.VideoGenerationReferenceImage(
image=woman_image, # Generated separately with Nano Banana
reference_type="asset"
)
operation = client.models.generate_videos(
model="veo-3.1-generate-preview",
prompt=prompt,
config=types.GenerateVideosConfig(
reference_images=[dress_reference, glasses_reference, woman_reference],
),
)
# 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("veo3.1_with_reference_images.mp4")
print("Generated video saved to veo3.1_with_reference_images.mp4")
Używanie pierwszej i ostatniej klatki
Veo 3.1 umożliwia tworzenie filmów za pomocą interpolacji lub określania pierwszej i ostatniej klatki filmu. Informacje o pisaniu skutecznych promptów tekstowych do generowania filmów znajdziesz w przewodniku po promptach Veo.
Python
import time
from google import genai
client = genai.Client()
prompt = "A cinematic, haunting video. A ghostly woman with long white hair and a flowing dress swings gently on a rope swing beneath a massive, gnarled tree in a foggy, moonlit clearing. The fog thickens and swirls around her, and she slowly fades away, vanishing completely. The empty swing is left swaying rhythmically on its own in the eerie silence."
operation = client.models.generate_videos(
model="veo-3.1-generate-preview",
prompt=prompt,
image=first_image, # Generated separately with Nano Banana
config=types.GenerateVideosConfig(
last_frame=last_image # Generated separately with Nano Banana
),
)
# 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("veo3.1_with_interpolation.mp4")
print("Generated video saved to veo3.1_with_interpolation.mp4")
`first_image` |
`last_image` |
veo3.1_with_interpolation.mp4 |
---|---|---|
![]() |
![]() |
![]() |
Wydłużanie filmów wygenerowanych przez Veo
Używaj Veo 3.1, aby wydłużać filmy wygenerowane wcześniej za pomocą Veo o 7 sekund i nawet 20 razy.
Ograniczenia dotyczące filmu wejściowego:
- Filmy wygenerowane przez Veo mogą trwać maksymalnie 141 sekund.
- Interfejs Gemini API obsługuje rozszerzenia wideo tylko w przypadku filmów wygenerowanych przez Veo.
- Filmy wejściowe powinny mieć określoną długość, format obrazu i wymiary:
- Format obrazu: 9:16 lub 16:9
- Rozdzielczość: 720p
- Długość filmu: maksymalnie 141 sekund
Wynikiem działania rozszerzenia jest jeden film łączący film przesłany przez użytkownika z wygenerowanym rozszerzonym filmem, który może trwać do 148 sekund.
W tym przykładzie wykorzystujemy wygenerowany przez Veo film butterfly_video, który jest tu pokazany z pierwotnym promptem, i rozszerzamy go za pomocą parametru video
oraz nowego prompta:
Prompt | Wyjście: butterfly_video |
---|---|
Motyl origami macha skrzydłami i wylatuje przez drzwi balkonowe do ogrodu. |
![]() |
Python
import time
from google import genai
client = genai.Client()
prompt = "Track the butterfly into the garden as it lands on an orange origami flower. A fluffy white puppy runs up and gently pats the flower."
operation = client.models.generate_videos(
model="veo-3.1-generate-preview",
video=butterfly_video,
prompt=prompt,
config=types.GenerateVideosConfig(
number_of_videos=1,
resolution="720p"
),
)
# 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("veo3.1_extension.mp4")
print("Generated video saved to veo3.1_extension.mp4")
Informacje o pisaniu skutecznych promptów tekstowych do generowania filmów znajdziesz w przewodniku po promptach Veo.
Obsługa operacji asynchronicznych
Generowanie filmów jest zadaniem wymagającym dużej mocy obliczeniowej. Gdy wyślesz żądanie do interfejsu API, rozpocznie on długotrwałe zadanie i natychmiast zwróci obiekt operation
. Następnie musisz wysyłać zapytania, dopóki film nie będzie gotowy. Wskazuje na to stan done
.
Podstawą tego procesu jest pętla sondowania, która okresowo sprawdza stan zadania.
Python
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.1-generate-preview",
prompt="A cinematic shot of a majestic lion in the savannah.",
)
# Alternatively, you can use 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.1-generate-preview",
prompt: "A cinematic shot of a majestic lion in the savannah.",
});
// Alternatively, you can use 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 ...
Parametry i specyfikacje interfejsu Veo API
Są to parametry, które możesz ustawić w żądaniu interfejsu API, aby kontrolować proces generowania filmu.
Parametr | Opis | Veo 3.1 i Veo 3.1 Fast | Veo 3 i Veo 3 Fast | Veo 2 |
---|---|---|---|---|
prompt |
Tekstowy opis filmu. Obsługuje wskazówki audio. | string |
string |
string |
negativePrompt |
Tekst opisujący, czego nie należy umieszczać w filmie. | string |
string |
string |
image |
Obraz początkowy do animacji. | Image obiekt |
Image obiekt |
Image obiekt |
lastFrame |
Obraz końcowy, do którego ma przejść film interpolacyjny. Musi być używany w połączeniu z parametrem image . |
Image obiekt |
Image obiekt |
Image obiekt |
referenceImages |
Maksymalnie 3 obrazy, które będą używane jako odniesienia do stylu i treści. | Obiekt VideoGenerationReferenceImage (tylko Veo 3.1) |
nie dotyczy | nie dotyczy |
video |
Film, który ma być używany w rozszerzeniu z filmem. | Video obiekt |
nie dotyczy | nie dotyczy |
aspectRatio |
Format obrazu filmu. | "16:9" (domyślna, 720p i 1080p),"9:16" (720p i 1080p) |
"16:9" (domyślnie, 720p i 1080p),"9:16" (720p i 1080p) |
"16:9" (domyślna, 720p),"9:16" (720p) |
resolution |
Format obrazu filmu. | "720p" (domyślnie), "1080p" (obsługuje tylko czas trwania 8 s)"720p" tylko w przypadku rozszerzenia |
"720p" (domyślnie), "1080p" (tylko 16:9) |
Nieobsługiwany |
durationSeconds |
Długość wygenerowanego filmu. | "4" , "6" , "8" .Musi mieć wartość „8”, gdy używasz rozszerzenia lub interpolacji (obsługuje formaty 16:9 i 9:16) oraz gdy używasz referenceImages (obsługuje tylko format 16:9). |
"4" , "6" , "8" |
"5" , "6" , "8" |
personGeneration |
Określa generowanie osób. (Ograniczenia regionalne znajdziesz w sekcji Ograniczenia) |
Zamiana tekstu na film i rozszerzenie:"allow_all" tylkoZamiana obrazu na film, interpolacja i obrazy referencyjne: "allow_adult" tylko
|
Tekst na film:"allow_all" tylkoObraz na film: "allow_adult" tylko
|
Tekst na film: "allow_all" , "allow_adult" , "dont_allow"
Obraz na film: "allow_adult" i "dont_allow"
|
Pamiętaj, że parametr seed
jest też dostępny w przypadku modeli Veo 3.
Nie gwarantuje to determinizmu, ale nieco go poprawia.
Możesz dostosować generowanie filmów, ustawiając parametry w prośbie.
Możesz na przykład użyć symbolu negativePrompt
, aby naprowadzić model.
Python
import time
from google import genai
from google.genai import types
client = genai.Client()
operation = client.models.generate_videos(
model="veo-3.1-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.1-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`);
Przeczytaj
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.1-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)
}
REST
# 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.1-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
Przewodnik po promptach w Veo
W tej sekcji znajdziesz przykłady filmów, które możesz utworzyć za pomocą Veo, oraz dowiesz się, jak modyfikować prompty, aby uzyskać różne wyniki.
Filtry bezpieczeństwa
Veo stosuje w Gemini filtry bezpieczeństwa, aby mieć pewność, że wygenerowane filmy i przesłane zdjęcia nie zawierają obraźliwych treści. Prompty, które naruszają nasze warunki i wytyczne, są blokowane.
Podstawowe informacje o pisaniu promptów
Dobre prompty są opisowe i jasne. Aby w pełni wykorzystać możliwości Veo, zacznij od określenia głównego pomysłu, dopracuj go, dodając słowa kluczowe i modyfikatory, a także uwzględnij w promptach terminologię związaną z wideo.
W prompcie powinny się znaleźć te elementy:
- Temat: obiekt, osoba, zwierzę lub sceneria, które chcesz umieścić w filmie, np. pejzaż miejski, przyroda, pojazdy lub szczenięta.
- Działanie: co robi osoba (np. idzie, biegnie lub obraca głowę).
- Styl: określ kierunek kreatywny za pomocą słów kluczowych dotyczących konkretnego stylu filmu, np. science fiction, horror, film noir lub stylów animowanych, takich jak kreskówka.
- Położenie i ruch kamery: [opcjonalnie] steruj położeniem i ruchem kamery za pomocą określeń takich jak widok z lotu ptaka, na poziomie oczu, zdjęcie z góry, zdjęcie z ruchu lub z perspektywy żabiej.
- Kompozycja: [opcjonalnie] sposób kadrowania ujęcia, np. szerokie ujęcie, zbliżenie, jedno ujęcie lub dwa ujęcia.
- Efekty ostrości i obiektywu: [opcjonalnie] użyj terminów takich jak płytka ostrość, głęboka ostrość, miękka ostrość, obiektyw makro i obiektyw szerokokątny, aby uzyskać określone efekty wizualne.
- Ambiance: [Opcjonalnie] Jak kolor i światło wpływają na scenę, np. niebieskie odcienie, noc lub ciepłe odcienie.
Więcej wskazówek dotyczących pisania promptów
- Używaj opisowego języka: używaj przymiotników i przysłówków, aby dokładnie opisać, co chcesz uzyskać.
- Uwydatnij szczegóły twarzy: określ szczegóły twarzy jako główny element zdjęcia, np. używając w prompcie słowa portret.
Bardziej szczegółowe strategie tworzenia promptów znajdziesz w artykule Wprowadzenie do projektowania promptów.
Prośba o dźwięk
Za pomocą Veo 3 możesz podać wskazówki dotyczące efektów dźwiękowych, szumu otoczenia i dialogów. Model wychwytuje niuanse tych wskazówek, aby wygenerować zsynchronizowaną ścieżkę dźwiękową.
- Dialog: używaj cudzysłowów, aby oznaczyć konkretne wypowiedzi. (Przykład: „To musi być klucz” – mruknął).
- Efekty dźwiękowe: dokładnie opisz dźwięki. (Przykład: opony głośno piszczą, silnik ryczy).
- Szum otoczenia: opisz dźwięki otoczenia. (Przykład: W tle słychać cichy, upiorny szum).
Te filmy pokazują, jak za pomocą promptów generować dźwięk w Veo 3 z coraz większą ilością szczegółów.
Prompt | Wygenerowane dane wyjściowe |
---|---|
Więcej szczegółów (dialogi i otoczenie) Szerokie ujęcie zamglonego lasu w północno-zachodniej części Stanów Zjednoczonych. Dwoje wyczerpanych wędrowców, mężczyzna i kobieta, przedzierają się przez paprocie. Mężczyzna nagle się zatrzymuje i wpatruje się w drzewo. Zbliżenie: na korze drzewa widoczne są świeże, głębokie ślady pazurów. Mężczyzna: (kładzie rękę na nożu myśliwskim) „To nie jest zwykły niedźwiedź”. Kobieta: (głos drży ze strachu, rozgląda się po lesie) „To co to jest?” Szorstka kora, łamiące się gałązki, kroki na wilgotnej ziemi. Ćwierka samotny ptak. |
![]() |
Mniej szczegółów (dialog) Animacja wycinankowa. Nowy bibliotekarz: „Gdzie trzymacie zakazane książki?” Stary kurator: „Nie. Oni nas zatrzymają”. |
![]() |
Wypróbuj te prompty, aby usłyszeć dźwięk. Wypróbuj Veo 3
Promptowanie z użyciem obrazów referencyjnych
Możesz użyć co najmniej 1 obrazu jako danych wejściowych, aby kierować generowanymi filmami, korzystając z funkcji obrazu do filmu w Veo. Veo używa obrazu wejściowego jako klatki początkowej. Wybierz obraz, który najbardziej przypomina pierwszą scenę filmu, aby animować przedmioty codziennego użytku, ożywiać rysunki i obrazy oraz dodawać ruch i dźwięk do scen przyrodniczych.
Prompt | Wygenerowane dane wyjściowe |
---|---|
Obraz wejściowy (wygenerowany przez Nano Banana) Hiperrealistyczne zdjęcie makro przedstawiające miniaturowych surferów pływających na falach oceanu w rustykalnej kamiennej umywalce w łazience. Z mosiężnego kranu w stylu vintage leje się woda, tworząc nieustanną falę. Surrealistyczne, fantazyjne, jasne naturalne oświetlenie. |
![]() |
Film wygenerowany przez Veo 3.1 Surrealistyczny, kinowy film makro. Malutcy surferzy pływają na nieustannie pojawiających się falach w kamiennej umywalce. Nieustannie płynąca woda z mosiężnego kranu w stylu vintage tworzy niekończące się fale. Kamera powoli przesuwa się po fantazyjnej, oświetlonej słońcem scenie, a miniaturowe figurki sprawnie rzeźbią turkusową wodę. |
![]() |
Veo 3.1 umożliwia odwoływanie się do obrazów lub składników w celu kierowania treścią generowanego filmu. Prześlij maksymalnie 3 obrazy pojedynczej osoby, postaci lub produktu. Veo zachowuje wygląd obiektu w filmie wyjściowym.
Prompt | Wygenerowane dane wyjściowe |
---|---|
Obraz referencyjny (wygenerowany przez Nano Banana) Żabnica głębinowa czai się w głębokiej, ciemnej wodzie, pokazując zęby i świecącą przynętę. |
![]() |
Obraz referencyjny (wygenerowany przez Nano Banana) Różowy kostium księżniczki dla dziecka z różdżką i tiarą na jednolitym tle produktu. |
![]() |
Film wyjściowy (wygenerowany przez Veo 3.1) Utwórz zabawną kreskówkową wersję ryby w kostiumie, która pływa i machając różdżką. |
![]() |
Za pomocą Veo 3.1 możesz też generować filmy, określając pierwszą i ostatnią klatkę filmu.
Prompt | Wygenerowane dane wyjściowe |
---|---|
Pierwszy obraz (wygenerowany przez Nano Banana) Fotorealistyczny obraz wysokiej jakości przedstawiający z przodu rudego kota prowadzącego czerwony kabriolet na francuskiej riwierze. |
![]() |
Ostatni obraz (wygenerowany przez Nano Banana) Pokaż, co się stanie, gdy samochód zjedzie z klifu. |
![]() |
Film wyjściowy (wygenerowany przez Veo 3.1) Opcjonalnie |
![]() |
Ta funkcja zapewnia precyzyjną kontrolę nad kompozycją ujęcia, ponieważ pozwala określić klatkę początkową i końcową. Prześlij obraz lub użyj klatki z wcześniej wygenerowanego filmu, aby mieć pewność, że scena zaczyna się i kończy dokładnie tak, jak chcesz.
Promptowanie rozszerzenia
Aby przedłużyć film wygenerowany w Veo za pomocą Veo 3.1, użyj go jako danych wejściowych wraz z opcjonalnym promptem tekstowym. Wydłużenie kończy ostatnią sekundę lub 24 klatki filmu i pozwala scenie rozwijać się naturalnie, bez przerywania akcji.
Pamiętaj, że nie można skutecznie przedłużyć głosu, jeśli nie występuje on w ostatniej sekundzie filmu.
Prompt | Wygenerowane dane wyjściowe |
---|---|
Film wejściowy (wygenerowany przez Veo 3.1) Paralotniarz startuje ze szczytu góry i zaczyna szybować w dół, nad dolinami pokrytymi kwiatami. |
![]() |
Film wyjściowy (wygenerowany przez Veo 3.1) Przedłuż ten film, dodając scenę, w której paralotniarz powoli opada. |
![]() |
Przykładowe prompty i dane wyjściowe
W tej sekcji znajdziesz kilka promptów, które pokazują, jak szczegółowe opisy mogą poprawić efekt każdego filmu.
Sople
Z tego filmu dowiesz się, jak w prompcie wykorzystać elementy podstaw pisania promptów.
Prompt | Wygenerowane dane wyjściowe |
---|---|
Zbliżenie (kompozycja) topniejących sopli (obiekt) na zamarzniętej (kontekst) skalnej ścianie (kontekst) w chłodnych, niebieskich odcieniach (atmosfera), z przybliżeniem (ruch kamery) zachowującym szczegóły kropel wody (działanie). |
![]() |
Mężczyzna rozmawia przez telefon
Te filmy pokazują, jak możesz poprawiać prompt, dodając coraz bardziej szczegółowe informacje, aby Veo dostosował wygenerowany film do Twoich potrzeb.
Prompt | Wygenerowane dane wyjściowe |
---|---|
Mniej szczegółów Kamera przesuwa się, aby pokazać zbliżenie na zdesperowanego mężczyznę w zielonym prochowcu. Dzwoni z telefonu ściennego z tarczą, który jest oświetlony zielonym neonem. Wygląda jak scena z filmu. |
![]() |
Więcej szczegółów Zbliżenie w stylu filmowym przedstawia zdesperowanego mężczyznę w spranym zielonym prochowcu, który wybiera numer na telefonie z tarczą zamontowanym na szorstkiej ceglanej ścianie, oświetlonej upiornym blaskiem zielonego neonu. Kamera zbliża się do niego, ukazując napięcie w jego szczęce i rozpacz na twarzy, gdy próbuje wykonać połączenie. Płytka głębia ostrości skupia się na jego zmarszczonym czole i czarnym telefonie obrotowym, rozmywając tło w morze neonowych kolorów i niewyraźnych cieni, co tworzy poczucie pilności i izolacji. |
![]() |
Irbis śnieżny
Prompt | Wygenerowane dane wyjściowe |
---|---|
Prosty prompt: Urocze stworzenie z futrem podobnym do futra irbisa śnieżnego idzie przez zimowy las, render w stylu kreskówki 3D. |
![]() |
Szczegółowy prompt: Utwórz krótką scenę animowaną 3D w radosnym stylu kreskówkowym. Urocze stworzenie z futrem podobnym do futra pantery śnieżnej, dużymi, wyrazistymi oczami i przyjazną, zaokrągloną sylwetką radośnie kroczy przez fantastyczny zimowy las. Scena powinna przedstawiać zaokrąglone, pokryte śniegiem drzewa, delikatnie padające płatki śniegu i ciepłe światło słoneczne przebijające się przez gałęzie. Skoczne ruchy i szeroki uśmiech stworzenia powinny wyrażać czystą radość. Postaw na optymistyczny, ciepły ton, jasne, wesołe kolory i zabawne animacje. |
![]() |
Przykłady według elementów tekstu
Te przykłady pokazują, jak doprecyzować prompty za pomocą poszczególnych elementów podstawowych.
Temat i kontekst
Określ główny obiekt (temat) oraz tło lub otoczenie (kontekst).
Prompt | Wygenerowane dane wyjściowe |
---|---|
Render architektoniczny białego betonowego budynku mieszkalnego o płynnych, organicznych kształtach, płynnie łączącego się z bujną zielenią i futurystycznymi elementami. |
![]() |
Satelita unoszący się w kosmosie z księżycem i gwiazdami w tle. |
![]() |
Działanie
Określ, co robi osoba (np. chodzi, biegnie lub obraca głowę).
Prompt | Wygenerowane dane wyjściowe |
---|---|
Szeroki kadr przedstawiający kobietę spacerującą po plaży. Jest zadowolona i zrelaksowana, patrzy w stronę horyzontu o zachodzie słońca. |
![]() |
Styl
Dodaj słowa kluczowe, aby skierować generowanie w stronę określonej estetyki (np. surrealistycznej, vintage, futurystycznej, film noir).
Prompt | Wygenerowane dane wyjściowe |
---|---|
Film noir, mężczyzna i kobieta idą ulicą, tajemnica, kinowy, czarno-biały. |
![]() |
Ruch kamery i kompozycja
Określ, jak porusza się kamera (ujęcie z perspektywy pierwszej osoby, widok z lotu ptaka, widok z drona śledzącego) i jak jest kadrowane ujęcie (ujęcie szerokie, zbliżenie, ujęcie z dołu).
Prompt | Wygenerowane dane wyjściowe |
---|---|
Zdjęcie z perspektywy pierwszej osoby przedstawiające zabytkowy samochód jadący w deszczu w Kanadzie w nocy, w stylu filmowym. |
![]() |
Ekstremalne zbliżenie oka, w którym odbija się miasto. |
![]() |
Atmosfera
Palety kolorów i oświetlenie wpływają na nastrój. Spróbuj użyć terminów takich jak „przygaszony pomarańczowy, ciepłe odcienie”, „naturalne światło”, „wschód słońca” lub „chłodne odcienie niebieskiego”.
Prompt | Wygenerowane dane wyjściowe |
---|---|
Zbliżenie na dziewczynkę trzymającą uroczego szczeniaka golden retrievera w parku, w świetle słonecznym. |
![]() |
Filmowe zbliżenie smutnej kobiety jadącej autobusem w deszczu, chłodne niebieskie odcienie, smutny nastrój. |
![]() |
Negatywne prompty
Wykluczone prompty określają elementy, których nie chcesz widzieć w filmie.
- ❌ Nie używaj języka instruktażowego, np. nie lub nie. (np. „Brak ścian”).
- ✅ Opisz, czego nie chcesz zobaczyć. (np. „ściana, rama”).
Prompt | Wygenerowane dane wyjściowe |
---|---|
Bez negatywnego prompta: wygeneruj krótką, stylizowaną animację przedstawiającą duże, samotne drzewo dębu, którego liście są gwałtownie poruszane przez silny wiatr… [truncated] |
![]() |
Z negatywnym promptem: [Ten sam prompt] Negatywny prompt: tło miejskie, struktury stworzone przez człowieka, mroczna, burzowa lub groźna atmosfera. |
![]() |
Formaty obrazu
Veo umożliwia określenie formatu filmu.
Prompt | Wygenerowane dane wyjściowe |
---|---|
Panoramiczny (16:9) Utwórz film z widokiem z drona śledzącego mężczyznę jadącego czerwonym kabrioletem w Palm Springs w latach 70. XX wieku. Ciepłe światło słoneczne, długie cienie. |
![]() |
Orientacja pionowa (9:16) Utwórz film przedstawiający płynny ruch majestatycznego hawajskiego wodospadu w bujnym lesie deszczowym. Skup się na realistycznym przepływie wody, szczegółowych liściach i naturalnym oświetleniu, aby przekazać spokój. Uchwyć szumiącą wodę, mglistą atmosferę i plamki światła słonecznego przenikające przez gęste korony drzew. Użyj płynnych, filmowych ruchów kamery, aby pokazać wodospad i jego otoczenie. Postaw na spokojny, realistyczny ton, który przeniesie widza w spokojne piękno hawajskiego lasu deszczowego. |
![]() |
Ograniczenia
- Czas oczekiwania na żądanie: min. 11 sekund, maks. 6 minut (w godzinach szczytu).
- Ograniczenia regionalne: w UE, Wielkiej Brytanii, Szwajcarii i regionie MENA dozwolone są te wartości parametru
personGeneration
:- Veo 3:
allow_adult
. - Veo 2:
dont_allow
iallow_adult
. Wartość domyślna todont_allow
.
- Veo 3:
- Przechowywanie filmów: wygenerowane filmy są przechowywane na serwerze przez 2 dni, a następnie usuwane. Aby zapisać kopię lokalną, musisz pobrać film w ciągu 2 dni od jego wygenerowania. Rozszerzone filmy są traktowane jako nowo wygenerowane filmy.
- Znaki wodne: filmy utworzone za pomocą Veo są oznaczane znakiem wodnym przy użyciu SynthID, naszego narzędzia do dodawania znaków wodnych i identyfikowania treści generowanych przez AI. Filmy można weryfikować za pomocą platformy weryfikacyjnej SynthID.
- Bezpieczeństwo: wygenerowane filmy są sprawdzane przez filtry bezpieczeństwa i procesy weryfikacji zapamiętywania, które pomagają ograniczać ryzyko związane z prywatnością, prawami autorskimi i stronniczością.
- Błąd dźwięku: Veo 3.1 może czasami zablokować generowanie filmu z powodu filtrów bezpieczeństwa lub innych problemów z przetwarzaniem dźwięku. Jeśli wygenerowanie filmu zostanie zablokowane, nie obciążymy Cię opłatą.
Funkcje modelu
Funkcja | Opis | Veo 3.1 i Veo 3.1 Fast | Veo 3 i Veo 3 Fast | Veo 2 |
---|---|---|---|---|
Dźwięk | Natywnie generuje dźwięk z filmu. | Natywnie generuje dźwięk z filmu. | ✔️ Zawsze włączone | ❌ Tylko cichy |
Rodzaje danych wejściowych | Typ danych wejściowych użytych do wygenerowania. | Tekst na film, obraz na film, film na film | Zamiana tekstu na film, zamiana obrazu na film | Zamiana tekstu na film, zamiana obrazu na film |
Rozdzielczość | Rozdzielczość wyjściowa filmu. | 720p i 1080p (tylko 8 s) 720p tylko w przypadku korzystania z rozszerzenia z filmem. |
720p i 1080p (tylko 16:9) | 720p |
Liczba klatek | Liczba klatek na sekundę wyjściowego filmu. | 24 kl./s | 24 kl./s | 24 kl./s |
Czas trwania filmu | Długość wygenerowanego filmu. | 8 sekund, 6 sekund, 4 sekundy 8 sekund tylko w przypadku używania obrazów referencyjnych |
8 sekund | 5–8 sekund |
Filmy na żądanie | Liczba filmów wygenerowanych w ramach jednego żądania. | 1 | 1 | 1 lub 2 |
Stan i szczegóły | Dostępność modelu i dalsze szczegóły. | Podgląd | Stabilna | Stabilna |
Wersje modelu
Więcej informacji o korzystaniu z modeli Veo znajdziesz na stronach Ceny i Limity żądań.
Veo 3.1 (wersja testowa)
Właściwość | Opis |
---|---|
Kod modelu |
Gemini API
|
Obsługiwane typy danych |
Wejście Tekst, obraz Dane wyjściowe Film z dźwiękiem |
Limity |
Wpisywanie tekstu 1024 tokeny Film wyjściowy 1 |
Ostatnia aktualizacja | Wrzesień 2025 r. |
Veo 3.1 Fast (wersja testowa)
Właściwość | Opis |
---|---|
Kod modelu |
Gemini API
|
Obsługiwane typy danych |
Wejście Tekst, obraz Dane wyjściowe Film z dźwiękiem |
Limity |
Wpisywanie tekstu 1024 tokeny Film wyjściowy 1 |
Ostatnia aktualizacja | Wrzesień 2025 r. |
Veo 3
Właściwość | Opis |
---|---|
Kod modelu |
Gemini API
|
Obsługiwane typy danych |
Wejście Tekst, obraz Dane wyjściowe Film z dźwiękiem |
Limity |
Wpisywanie tekstu 1024 tokeny Film wyjściowy 1 |
Ostatnia aktualizacja | Lipiec 2025 r. |
Veo 3 Fast
Veo 3 Fast umożliwia deweloperom tworzenie filmów z dźwiękiem przy zachowaniu wysokiej jakości i optymalizacji pod kątem szybkości oraz zastosowań biznesowych. Jest to idealne rozwiązanie w przypadku usług backendu, które programowo generują reklamy, narzędzi do szybkiego testowania A/B koncepcji kreatywnych lub aplikacji, które muszą szybko tworzyć treści do mediów społecznościowych.Właściwość | Opis |
---|---|
Kod modelu |
Gemini API
|
Obsługiwane typy danych |
Wejście Tekst, obraz Dane wyjściowe Film z dźwiękiem |
Limity |
Wpisywanie tekstu 1024 tokeny Film wyjściowy 1 |
Ostatnia aktualizacja | Lipiec 2025 r. |
Veo 2
Właściwość | Opis |
---|---|
Kod modelu |
Gemini API
|
Obsługiwane typy danych |
Wejście Tekst, obraz Dane wyjściowe Wideo |
Limity |
Wpisywanie tekstu Nie dotyczy Wejście obrazu Dowolna rozdzielczość i format obrazu, rozmiar pliku do 20 MB Film wyjściowy Do 2 |
Ostatnia aktualizacja | Kwiecień 2025 r. |
Co dalej?
- Zacznij korzystać z interfejsu Veo 3.1 API, eksperymentując w Veo Quickstart Colab i aplecie Veo 3.1.
- Dowiedz się, jak pisać jeszcze lepsze prompty, korzystając z naszego wprowadzenia do projektowania promptów.