יצירת סרטונים באמצעות Veo 3.1 ב-Gemini API

Veo 3.1 הוא המודל המתקדם ביותר של Google ליצירת סרטונים באיכות גבוהה באורך 8 שניות ברזולוציה 720p או 1080p, עם ריאליזם מדהים ואודיו שנוצר באופן מקורי. אפשר לגשת למודל הזה באופן פרוגרמטי באמצעות Gemini API. מידע נוסף על הגרסאות הזמינות של מודל Veo זמין בקטע גרסאות המודל.

מודל Veo 3.1 מצטיין במגוון רחב של סגנונות ויזואליים וקולנועיים, ומציג כמה יכולות חדשות:

  • הארכת סרטונים: הארכת סרטונים שנוצרו בעבר באמצעות Veo.
  • יצירה של פריימים ספציפיים: אפשר ליצור סרטון על ידי ציון הפריימים הראשון והאחרון.
  • הנחיה מבוססת-תמונה: אפשר להשתמש בעד שלוש תמונות להנחיית התוכן של הסרטון שנוצר.

מידע נוסף על כתיבת הנחיות טקסט יעילות ליצירת סרטונים זמין במדריך ההנחיות ל-Veo

יצירת סרטון מטקסט

בוחרים דוגמה כדי לראות איך ליצור סרטון עם דיאלוג, ריאליזם קולנועי או אנימציה יצירתית:

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`);

Go

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

יצירת סרטון מתמונה

בדוגמת הקוד הבאה מוצגת יצירת תמונה באמצעות Gemini 2.5 Flash Image (שנקרא גם Nano Banana), ולאחר מכן שימוש בתמונה הזו כמסגרת הפתיחה ליצירת סרטון באמצעות 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`);

Go

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)
}

שימוש בתמונות לדוגמה

מעכשיו אפשר להעלות עד 3 תמונות לדוגמה ב-Veo 3.1 כדי להנחות את ה-AI ליצור סרטון עם תוכן שמתאים לכם. כדי לשמור על המראה של הנושא בסרטון הפלט, צריך לספק תמונות של אדם, דמות או מוצר.

לדוגמה, אם משתמשים בשלוש התמונות האלה שנוצרו באמצעות Nano Banana כמקור השראה עם הנחיה כתובה היטב, ייווצר הסרטון הבא:

`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")
אישה הולכת בלגונה כשהיא לובשת שמלה אופנתית ומשקפי שמש
veo3.1_with_reference_images.mp4

שימוש בפריים הראשון ובפריים האחרון

‫Veo 3.1 מאפשר ליצור סרטונים באמצעות אינטרפולציה, או על ידי ציון הפריימים הראשון והאחרון של הסרטון. מידע על כתיבת הנחיות טקסט יעילות ליצירת סרטונים זמין במדריך ההנחיות ל-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
אישה רפאים עם שיער לבן ארוך ושמלה מתנפנפת מתנדנדת בעדינות על נדנדת חבלים אישה רפאים נעלמת מהנדנדה סרטון קולנועי ומטריד של אישה מוזרה שנעלמת מנדנדה בערפל

הארכת סרטונים ב-Veo

אתם יכולים להשתמש ב-Veo 3.1 כדי להאריך סרטונים שיצרתם בעבר באמצעות Veo ב-7 שניות, ועד 20 פעמים.

מגבלות על סרטוני קלט:

  • הסרטונים שנוצרים ב-Veo יכולים להיות באורך של עד 141 שניות.
  • ‫Gemini API תומך בתוספים של סרטונים רק בסרטונים שנוצרו באמצעות Veo.
  • הסרטונים שמוזנים צריכים להיות באורך מסוים, עם יחס גובה-רוחב ומימדים מסוימים:
    • יחס גובה-רוחב: 9:16 או 16:9
    • רזולוציה: 720p
    • אורך הסרטון: 141 שניות או פחות

הפלט של התוסף הוא סרטון יחיד שמשלב את סרטון הקלט של המשתמש ואת הסרטון המורחב שנוצר, באורך של עד 148 שניות.

בדוגמה הזו, הסרטון שנוצר על ידי Veo‏ butterfly_video, שמוצג כאן עם ההנחיה המקורית שלו, מורחב באמצעות הפרמטר video והנחיה חדשה:

הנחיה פלט: butterfly_video
פרפר אוריגמי מנפנף בכנפיו ועף מחוץ לדלתות הצרפתיות אל הגינה. פרפר אוריגמי מנפנף בכנפיו ועף מחוץ לדלתות הצרפתיות אל הגינה.

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")
הפרפר עף לתוך הגן ונוחת על פרח אוריגמי. גור לבן ורך רץ קדימה ומלטף בעדינות את הפרח.
veo3.1_extension.mp4

מידע על כתיבת הנחיות טקסט יעילות ליצירת סרטונים זמין במדריך ההנחיות ל-Veo.

טיפול בפעולות אסינכרוניות

יצירת סרטונים היא משימה שדורשת הרבה משאבי מחשוב. כששולחים בקשה ל-API, מתחילה משימה ארוכה ומוחזר מיד אובייקט operation. לאחר מכן, צריך לשלוח בקשות חוזרות עד שהסרטון יהיה מוכן, כלומר עד שהסטטוס done יהיה true.

הליבה של התהליך הזה היא לולאת דגימה, שבודקת מעת לעת את סטטוס העבודה.

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 ...

פרמטרים ומפרטים של Veo API

אלה הפרמטרים שאפשר להגדיר בבקשת ה-API כדי לשלוט בתהליך יצירת הסרטון.

פרמטר תיאור ‫Veo 3.1 ו-Veo 3.1 Fast ‫Veo 3 ו-Veo 3 Fast Veo 2
prompt תיאור הטקסט של הסרטון. תומך בסימנים קוליים. string string string
negativePrompt טקסט שמתאר מה לא לכלול בסרטון. string string string
image תמונה ראשונית להנפשה. Image אובייקט Image אובייקט Image אובייקט
lastFrame התמונה הסופית של סרטון האינטרפולציה למעבר. חובה להשתמש בו בשילוב עם הפרמטר image. Image אובייקט Image אובייקט Image אובייקט
referenceImages עד שלוש תמונות שישמשו כדוגמאות לסגנון ולתוכן. VideoGenerationReferenceImage אובייקט (Veo 3.1 בלבד) לא רלוונטי לא רלוונטי
video הסרטון שבו רוצים להשתמש בתוסף הסרטון. Video אובייקט לא רלוונטי לא רלוונטי
aspectRatio יחס הגובה-רוחב של הסרטון. "16:9" (ברירת מחדל, 720p ו-1080p),‏
"9:16"(720p ו-1080p)

"16:9" (ברירת מחדל, 720p ו-1080p),‏
"9:16" (720p ו-1080p)
"16:9" (ברירת מחדל, 720p),‏
"9:16" (720p)
resolution יחס הגובה-רוחב של הסרטון. "720p" (ברירת מחדל),
"1080p" (תומך רק במשך של 8 שניות)

"720p" רק לתוסף
"720p" (ברירת המחדל),
"1080p" (16:9 בלבד)
לא נתמך
durationSeconds אורך הסרטון שנוצר. "4", "6", "8".

הערך צריך להיות 8 כשמשתמשים בהרחבה או באינטרפולציה (נתמכים יחסי גובה-רוחב של 16:9 ו-9:16), וכשמשתמשים ב-referenceImages (נתמך רק יחס גובה-רוחב של 16:9)
"4",‏ "6",‏ "8" "5",‏ "6",‏ "8"
personGeneration המדיניות קובעת את האפשרות ליצור תמונות של אנשים.
(בקטע מגבלות מפורטות הגבלות אזוריות)
טקסט לווידאו ותוסף:
"allow_all" בלבד
תמונה לווידאו, אינטרפולציה ותמונות להשוואה:
"allow_adult" בלבד
טקסט לווידאו:
"allow_all" בלבד
תמונה לווידאו:
"allow_adult" בלבד
טקסט לסרטון:
"allow_all",‏ "allow_adult",‏ "dont_allow"
תמונה לסרטון:
"allow_adult" ו-"dont_allow"

שימו לב שפרמטר seed זמין גם במודלים של Veo 3. הפעולה הזו לא מבטיחה דטרמיניזם, אבל היא משפרת אותו במידה מסוימת.

אתם יכולים להתאים אישית את יצירת הסרטון על ידי הגדרת פרמטרים בבקשה. לדוגמה, אפשר לציין את negativePrompt כדי להנחות את המודל.

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`);

Go

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

מדריך לכתיבת הנחיות ב-Veo

בקטע הזה יש דוגמאות לסרטונים שאפשר ליצור באמצעות Veo, והסברים על שינוי ההנחיות כדי ליצור תוצאות שונות.

מסנני בטיחות

ב-Veo מופעלים מסנני בטיחות ב-Gemini כדי לוודא שסרטונים שנוצרו ותמונות שהועלו לא מכילים תוכן פוגעני. הנחיות שמפירות את התנאים וההנחיות שלנו נחסמות.

יסודות בכתיבת הנחיות

הנחיות טובות הן תיאוריות וברורות. כדי להפיק את המרב מ-Veo, כדאי להתחיל בזיהוי הרעיון המרכזי, לשפר את הרעיון באמצעות הוספה של מילות מפתח ומשנים, ולשלב בהנחיות מינוח שקשור לסרטונים.

האלמנטים הבאים צריכים להיכלל בהנחיה:

  • נושא: האובייקט, האדם, החיה או הנוף שאתם רוצים בסרטון, כמו נוף עירוני, טבע, כלי רכב או גורים.
  • פעולה: מה הנושא עושה (לדוגמה, הליכה, ריצה או הפניית הראש).
  • סגנון: מציינים את הכיוון הקריאייטיבי באמצעות מילות מפתח ספציפיות שקשורות לסגנון הסרט, כמו מדע בדיוני, סרט אימה, סרט אפל או סגנונות אנימציה כמו סרט מצויר.
  • מיקום המצלמה ותנועה: [אופציונלי] שליטה במיקום המצלמה ובתנועה שלה באמצעות מונחים כמו תצלומי אוויר, גובה העיניים, צילום מלמעלה למטה, צילום עם עגלת מצלמה או צילום מזווית נמוכה.
  • קומפוזיציה: [אופציונלי] איך הצילום ממוסגר, למשל צילום רחב, תקריב, צילום יחיד או צילום של שני אנשים.
  • פוקוס ואפקטים של עדשה: [אופציונלי] אפשר להשתמש במונחים כמו פוקוס רדוד, פוקוס עמוק, פוקוס רך, עדשת מאקרו ועדשה רחבת זווית כדי להשיג אפקטים חזותיים ספציפיים.
  • אווירה: [אופציונלי] תיאור של האווירה שנוצרת על ידי הצבע והאור בסצנה, למשל גוונים כחולים, לילה או גוונים חמים.

טיפים נוספים לכתיבת הנחיות

  • להשתמש בשפה תיאורית: כדאי להשתמש בשמות תואר ובתיאורי פועל כדי ליצור תמונה ברורה ב-Veo.
  • שיפור הפרטים של הפנים: מציינים שהפנים הן המוקד של התמונה, למשל באמצעות המילה דיוקן בהנחיה.

למידע נוסף על אסטרטגיות מקיפות יותר ליצירת הנחיות, אפשר לעיין במאמר מבוא ליצירת הנחיות.

הנחיות לאודיו

עם Veo 3, אתם יכולים לספק רמזים לאפקטים קוליים, לרעשי רקע ולדיאלוגים. המודל מזהה את הניואנסים של הרמזים האלה כדי ליצור פסקול מסונכרן.

  • דיאלוג: משתמשים במירכאות לציטוט של דיבור ספציפי. (דוגמה: "This must be the key," he murmured.)
  • אפקטים קוליים (SFX): תיאור מפורש של הצלילים. (דוגמה: צמיגים חורקים בעוצמה, מנוע שואג).
  • רעשי הסביבה: תיאור של נוף הקול של הסביבה. (דוגמה: המהום חלש ומצמרר ברקע).

בסרטונים האלה מוצגות הנחיות ליצירת אודיו באמצעות Veo 3, עם רמות פירוט הולכות וגדלות.

הנחיה הפלט שנוצר באמצעות AI
יותר פרטים (דיאלוג ואווירה)
צילום רחב של יער מעורפל באזור הפסיפיק נורת' וסט. שני מטיילים מותשים, גבר ואישה, עוברים בין שרכים כשהגבר עוצר בפתאומיות ובוהה בעץ. תקריב: סימני שריטות עמוקים וטריים חרוטים בקליפת העץ. גבר: (יד על סכין הציד) "זה לא דוב רגיל". אישה: (קולה מתוח מפחד, סורקת את היער) "אז מה זה?" נביחה מחוספסת, ענפים נשברים, צעדים על האדמה הלחה. ציפור בודדה מצייצת.
שני אנשים ביער נתקלים בסימנים של דוב.
פחות פרטים (דיאלוג)
אנימציה של נייר חתוך. ספרן חדש: "איפה אתם שומרים את הספרים האסורים?" האוצר הישן: "לא. הם שומרים אותנו."
ספרנים מצוירים דנים בספרים אסורים

כדאי לנסות את ההנחיות האלה בעצמכם כדי לשמוע את האודיו. להתנסות עם Veo 3

מתן הנחיות באמצעות תמונות לדוגמה

אתם יכולים להשתמש בתמונה אחת או יותר כקלט כדי להנחות את הסרטונים שנוצרו, באמצעות היכולות של Veo ליצירת סרטון מתמונה. ‫Veo משתמש בתמונת הקלט כפריים הראשוני. בוחרים תמונה שהכי קרובה למה שרוצים שתהיה הסצנה הראשונה בסרטון, כדי להנפיש חפצים יומיומיים, להפיח חיים בציורים, ולהוסיף תנועה וקול לסצנות טבע.

הנחיה הפלט שנוצר באמצעות AI
תמונת קלט (נוצרה על ידי Nano Banana)
תמונת מאקרו היפר-ריאליסטית של גולשים זעירים שגולשים על גלי האוקיינוס בתוך כיור אבן כפרי בחדר אמבטיה. ברז פליז בסגנון וינטג' פתוח ויוצר גל מתמשך. סוריאליסטי, גחמני, תאורה טבעית בהירה.
גולשים זעירים רוכבים על גלי האוקיינוס בתוך כיור אבן כפרי בחדר רחצה.
סרטון פלט (נוצר על ידי Veo 3.1)
סרטון מאקרו סוריאליסטי בסגנון קולנועי. גולשים קטנים גולשים על גלים מתגלגלים בכיור אבן בחדר רחצה. ברז פליז ישן שפועל יוצר את הגלים האינסופיים. המצלמה מבצעת פנינג איטי על פני הסצנה הגחמנית שטופת השמש, כשדמויות מיניאטוריות חורטות במיומנות את מי הטורקיז.
גולשים קטנים שמסתובבים במעגלים בכיור באמבטיה.

גרסה Veo 3.1 מאפשרת לכם להפנות לתמונות או למרכיבים כדי לכוון את התוכן של הסרטון שנוצר. אפשר לספק עד שלוש תמונות נכס של אדם אחד, דמות או מוצר. בסרטון הפלט, המראה של הנושא נשמר.

הנחיה הפלט שנוצר באמצעות AI
תמונת הפניה (נוצרה על ידי Nano Banana)
דג חכאי שחי במים עמוקים אורב במים העמוקים והחשוכים, השיניים חשופות והפיתיון זוהר.
דג חכה כהה וזוהר
תמונה לדוגמה (נוצרה על ידי Nano Banana)
תמונה של תחפושת נסיכה ורודה לילדות, עם שרביט וכתר, על רקע מוצר פשוט.
תחפושת נסיכה ורודה לילדים
סרטון הפלט (נוצר על ידי Veo 3.1)
צור גרסת קריקטורה מטופשת של הדג כשהוא לובש את התחפושת, שוחה ומנופף בשרביט.
דג חכה שלובש תחפושת של נסיכה

ב-Veo 3.1, אפשר גם ליצור סרטונים על ידי ציון הפריימים הראשון והאחרון של הסרטון.

הנחיה הפלט שנוצר באמצעות AI
התמונה הראשונה (נוצרה על ידי Nano Banana)
תמונה מציאותית באיכות גבוהה של חתול ג'ינג'י נוהג במכונית ספורט אדומה עם גג נפתח בחוף הריביירה הצרפתית.
חתול ג'ינג'י נוהג במכונית מרוץ אדומה עם גג נפתח
התמונה האחרונה (נוצרה על ידי Nano Banana)
הצגת מה שקורה כשהמכונית ממריאה מצוק.
חתול ג'ינג'י נוהג במכונית קבריולט אדומה ונופל מצוק
סרטון פלט (נוצר על ידי Veo 3.1)
אופציונלי
חתול נוהג מעל צוק וממריא

התכונה הזו מאפשרת לכם לשלוט בדיוק בהרכב הצילום, כי אתם יכולים להגדיר את פריים ההתחלה ואת פריים הסיום. כדי לוודא שהסצנה מתחילה ומסתיימת בדיוק כמו שדמיינתם, אתם יכולים להעלות תמונה או להשתמש בפריים מסרטון קודם שיצרתם.

הנחיות לתוסף

כדי להאריך סרטון שנוצר ב-Veo באמצעות Veo 3.1, משתמשים בסרטון כקלט יחד עם הנחיה כתובה אופציונלית. הארכה – הפעולה הזו מסיימת את השנייה האחרונה או את 24 הפריימים האחרונים של הסרטון וממשיכה את הפעולה.

שימו לב: אי אפשר להאריך את הקטע עם הקול בצורה יעילה אם הוא לא מופיע בשנייה האחרונה של הסרטון.

הנחיה הפלט שנוצר באמצעות AI
סרטון קלט (נוצר על ידי Veo 3.1)
הדאון-היל יוצא מפסגת ההר ומתחיל לגלוש במורד ההרים שמשקיפים על העמקים המכוסים בפרחים למטה.
מצנח רחיפה ממריא מפסגת הר
סרטון פלט (נוצר על ידי Veo 3.1)
תמשיך את הסרטון הזה עם מצנח רחיפה שיורד לאט.
מצנח רחיפה ממריא מפסגת הר, ואז יורד לאט

הנחיות ופלט לדוגמה

בקטע הזה מוצגות כמה הנחיות, שממחישות איך פרטים תיאוריים יכולים לשפר את התוצאה של כל סרטון.

נטיפי קרח

בסרטון הזה מוצגות דוגמאות לשימוש ברכיבים של כתיבת הנחיות בסיסית בהנחיה.

הנחיה הפלט שנוצר באמצעות AI
תקריב (קומפוזיציה) של נטיפי קרח נמסים (נושא) על קיר סלעי קפוא (הקשר) עם גוונים כחולים קרירים (אווירה), בהגדלה (תנועת המצלמה) תוך שמירה על פרטים של טיפות מים (פעולה). נטיפי קרח מטפטפים על רקע כחול.

גבר בטלפון

בסרטונים האלה מוצגות דוגמאות לאופן שבו אפשר לשנות את ההנחיה ולהוסיף לה פרטים ספציפיים יותר כדי ש-Veo ישפר את הפלט לפי הטעם שלכם.

הנחיה הפלט שנוצר באמצעות AI
פחות פרטים
המצלמה מתקרבת כדי להציג תקריב של גבר נואש במעיל גשם ירוק. הוא מתקשר בטלפון קיר עם חוגה, עם תאורת ניאון ירוקה. זה נראה כמו סצנה בסרט.
גבר מדבר בטלפון.
פרטים נוספים
תקריב קולנועי של גבר נואש במעיל גשם ירוק דהוי, מחייג בטלפון חוגה שמחובר לקיר לבנים מחוספס, שטוף באור המפחיד של שלט ניאון ירוק. המצלמה מתקרבת אליו, ורואים את המתח בלסת שלו ואת הייאוש שמוטבע בפניו כשהוא מנסה להתקשר. עומק השדה הרדוד מתמקד במצח המקומט שלו ובטלפון השחור עם החוגה, ומטשטש את הרקע לים של צבעי ניאון וצללים לא ברורים, ויוצר תחושה של דחיפות ובידוד.
גבר מדבר בטלפון

נמר השלג

הנחיה הפלט שנוצר באמצעות AI
הנחיה פשוטה:
יצור חמוד עם פרווה שדומה לזו של נמר השלג הולך ביער חורפי, רינדור בסגנון סרטים מצוירים בתלת ממד.
נמר השלג הוא רדום.
הנחיה מפורטת:
תצור סצנת אנימציה קצרה בתלת ממד בסגנון סרטים מצוירים שמח. יצור חמוד עם פרווה כמו של נמר שלג, עיניים גדולות ומלאות הבעה וצורה ידידותית ומעוגלת, מדלג בשמחה ביער חורפי משעשע. הסצנה צריכה לכלול עצים מעוגלים ומכוסים בשלג, פתיתי שלג עדינים שנופלים ואור שמש חמים שמסונן דרך הענפים. התנועות הקופצניות של היצור והחיוך הרחב שלו צריכים לשדר שמחה טהורה. השתמשו בטון אופטימי ומחמם לב, עם צבעים בהירים ועליזים ואנימציה שובבה.
הנמר השלג פועל מהר יותר.

דוגמאות לפי רכיבי כתיבה

בדוגמאות האלה מוסבר איך לשפר את ההנחיות לפי כל אחד מהרכיבים הבסיסיים.

נושא והקשר

צריך לציין את המוקד (הנושא) ואת הרקע או הסביבה (ההקשר).

הנחיה הפלט שנוצר באמצעות AI
הדמיה אדריכלית של בניין דירות מבטון לבן עם צורות אורגניות זורמות, שמשתלב בצורה חלקה עם צמחייה עשירה ואלמנטים עתידניים פלייסהולדר.
לוויין שמרחף בחלל החיצון עם הירח וכמה כוכבים ברקע. לוויין שמרחף באטמוספירה.

פעולה

מציינים מה הנושא עושה (למשל, הליכה, ריצה או סיבוב הראש).

הנחיה הפלט שנוצר באמצעות AI
צילום רחב של אישה הולכת לאורך החוף, נראית מרוצה ורגועה, ומביטה אל האופק בשקיעה. השקיעה יפהפייה.

סגנון

מוסיפים מילות מפתח כדי לכוון את היצירה לסגנון אסתטי ספציפי (למשל, סוריאליסטי, וינטג', עתידני, פילם נואר).

הנחיה הפלט שנוצר באמצעות AI
סגנון פילם נואר, גבר ואישה הולכים ברחוב, מסתורין, קולנועי, שחור לבן. סגנון הפילם נואר יפהפה.

תנועת המצלמה והקומפוזיציה

מציינים איך המצלמה זזה (צילום מנקודת מבט מסוימת, צילום אווירי, צילום במעקב עם רחפן) ואיך התמונה ממוסגרת (צילום רחב, תקריב, צילום מזווית נמוכה).

הנחיה הפלט שנוצר באמצעות AI
צילום מנקודת מבט של מכונית וינטג' שנוסעת בגשם, קנדה בלילה, בסגנון קולנועי. השקיעה יפהפייה.
תקריב קיצוני של עין עם השתקפות של העיר בתוכה. השקיעה יפהפייה.

אווירה

לוחות צבעים ותאורה משפיעים על האווירה. אפשר לנסות מונחים כמו "כתום מושתק, גוונים חמים", "אור טבעי", "זריחה" או "גוונים כחולים קרירים".

הנחיה הפלט שנוצר באמצעות AI
תקריב של ילדה שמחזיקה גור גולדן רטריבר חמוד בפארק, באור שמש. גור כלבים בזרועות של ילדה צעירה.
תמונת תקריב קולנועית של אישה עצובה שנוסעת באוטובוס בגשם, עם גוונים כחולים קרירים ואווירה עצובה. אישה נוסעת באוטובוס ונראית עצובה.

הנחיות שליליות

הנחיות שליליות מציינות אלמנטים שלא רוצים בסרטון.

  • ❌ אל תשתמשו בשפה שמנחה את המשתמש, כמו לא או אל. (למשל: 'אין קירות').
  • ‫✅ כדאי לתאר מה לא רוצים לראות. (למשל: ‫'wall, frame').
הנחיה הפלט שנוצר באמצעות AI
ללא הנחיה שלילית:
צור אנימציה קצרה ומסוגננת של עץ אלון גדול ובודד עם עלים שמתעופפים ברוח חזקה... [truncated]
עץ עם מילים.
עם הנחיה שלילית:
[אותה הנחיה]

הנחיה שלילית: רקע עירוני, מבנים מעשה ידי אדם, אווירה חשוכה, סוערת או מאיימת.
עץ ללא מילים שליליות.

יחסי גובה-רוחב

ב-Veo אפשר לציין את יחס הגובה-רוחב של הסרטון.

הנחיה הפלט שנוצר באמצעות AI
מסך רחב (16:9)
יצירת סרטון עם תצוגת מעקב מרחפן של גבר שנוהג במכונית אדומה עם גג נפתח בפאלם ספרינגס, שנות ה-70, אור שמש חם, צללים ארוכים.
גבר נוהג במכונית קבריולט אדומה בפאלם ספרינגס, בסגנון שנות ה-70.
לאורך (9:16)
צור סרטון שמציג את התנועה החלקה של מפל מלכותי בהוואי בתוך יער גשם עבות. התמקדות בזרימת מים ריאליסטית, בעלווה מפורטת ובתאורה טבעית כדי להעביר תחושה של שלווה. צלמו את המים הזורמים, את האווירה הערפילית ואת קרני השמש המנוקדות שמסוננות דרך חופת העצים הצפופה. כדאי להשתמש בתנועות מצלמה חלקות וקולנועיות כדי להציג את המפל והסביבה שלו. השתמשו בטון שליו וריאליסטי, שיעביר את הצופה ליופי השליו של יער הגשם בהוואי.
מפל מרשים בהוואי, בתוך יער גשם עשיר בצמחייה.

מגבלות

  • זמן האחזור של הבקשה: מינימום: 11 שניות; מקסימום: 6 דקות (בשעות העומס).
  • הגבלות אזוריות: במיקומים באיחוד האירופי, בבריטניה, בשווייץ ובאזור המזרח התיכון וצפון אפריקה (MENA), הערכים המותרים לpersonGeneration הם:
    • ‫Veo 3: allow_adult בלבד.
    • ‫Veo 2: dont_allow ו-allow_adult. ברירת המחדל היא dont_allow.
  • שמירת סרטונים: סרטונים שנוצרו מאוחסנים בשרת למשך יומיים, ולאחר מכן הם מוסרים. כדי לשמור עותק מקומי, צריך להוריד את הסרטון תוך יומיים ממועד היצירה. סרטונים ארוכים נחשבים לסרטונים חדשים שנוצרו.
  • סימון בסימן מים: סרטונים שנוצרו על ידי Veo מסומנים בסימן מים באמצעות SynthID, הכלי שלנו לסימון בסימן מים ולזיהוי תוכן שנוצר על ידי AI. אפשר לאמת סרטונים באמצעות פלטפורמת האימות SynthID.
  • בטיחות: הסרטונים שנוצרים עוברים דרך מסנני בטיחות ותהליכי בדיקה של זיכרון, שעוזרים לצמצם את הסיכונים לפגיעה בפרטיות, בזכויות יוצרים ובדעות קדומות.
  • שגיאה באודיו: לפעמים Veo 3.1 חוסם יצירת סרטון בגלל מסנני בטיחות או בעיות אחרות בעיבוד האודיו. לא נחייב אתכם אם הסרטון שלכם ייחסם ולא תתאפשר יצירה שלו.

תכונות המודל

תכונה תיאור ‫Veo 3.1 ו-Veo 3.1 Fast ‫Veo 3 ו-Veo 3 Fast Veo 2
אודיו יוצר אודיו עם סרטון באופן טבעי. יוצר אודיו עם סרטון באופן טבעי. ✔️ תמיד מופעל ❌ רק שקט
אמצעי קלט סוג הקלט שמשמש ליצירה. טקסט לווידאו, תמונה לווידאו, וידאו לווידאו סרטון לפי טקסט, סרטון לפי תמונה סרטון לפי טקסט, סרטון לפי תמונה
פתרון רזולוציית הפלט של הסרטון. ‫720p ו-1080p (אורך של 8 שניות בלבד)

‫720p בלבד כשמשתמשים בתוסף וידאו.
‫720p ו-1080p (רק 16:9) 720p
קצב פריימים קצב הפריימים של הסרטון בפלט. 24 פריימים לשנייה 24 פריימים לשנייה 24 פריימים לשנייה
משך הסרטון אורך הסרטון שנוצר. ‫8 שניות, 6 שניות, 4 שניות
8 שניות רק כשמשתמשים בתמונות לדוגמה
8 שניות ‫5-8 שניות
סרטונים לכל בקשה מספר הסרטונים שנוצרו לכל בקשה. 1 1 ‫1 או 2
סטטוס ופרטים זמינות המודל ופרטים נוספים. לתצוגה המקדימה יציב יציב

גרסאות של מודלים

במאמרים תמחור ומגבלות קצב מפורטים פרטים נוספים על השימוש במודל Veo.

גרסת טרום-השקה של Veo 3.1

נכס תיאור
קוד הדגם

Gemini API

veo-3.1-generate-preview

סוגי נתונים נתמכים

קלט

טקסט, תמונה

פלט

סרטון עם אודיו

מגבלות

קלט טקסט

‫1,024 טוקנים

סרטון הפלט

1

העדכון האחרון ספטמבר 2025

גרסת טרום-השקה של Veo 3.1 Fast

נכס תיאור
קוד הדגם

Gemini API

veo-3.1-fast-generate-preview

סוגי נתונים נתמכים

קלט

טקסט, תמונה

פלט

סרטון עם אודיו

מגבלות

קלט טקסט

‫1,024 טוקנים

סרטון הפלט

1

העדכון האחרון ספטמבר 2025

Veo 3

נכס תיאור
קוד הדגם

Gemini API

veo-3.0-generate-001

סוגי נתונים נתמכים

קלט

טקסט, תמונה

פלט

סרטון עם אודיו

מגבלות

קלט טקסט

‫1,024 טוקנים

סרטון הפלט

1

העדכון האחרון יולי 2025

Veo 3 Fast

‫Veo 3 Fast מאפשר למפתחים ליצור סרטונים עם סאונד, תוך שמירה על איכות גבוהה ואופטימיזציה של מהירות ותרחישי שימוש עסקיים. הוא מתאים במיוחד לשירותי קצה עורפי (backend) שמייצרים מודעות באופן אוטומטי, לכלים לבדיקות A/B מהירות של רעיונות קריאייטיב או לאפליקציות שצריכות ליצור במהירות תוכן לרשתות החברתיות.
נכס תיאור
קוד הדגם

Gemini API

veo-3.0-fast-generate-001

סוגי נתונים נתמכים

קלט

טקסט, תמונה

פלט

סרטון עם אודיו

מגבלות

קלט טקסט

‫1,024 טוקנים

סרטון הפלט

1

העדכון האחרון יולי 2025

Veo 2

נכס תיאור
קוד הדגם

Gemini API

veo-2.0-generate-001

סוגי נתונים נתמכים

קלט

טקסט, תמונה

פלט

וידאו

מגבלות

קלט טקסט

לא רלוונטי

קלט תמונה

כל רזולוציה ויחס גובה-רוחב של תמונה עד גודל קובץ של 20MB

סרטון הפלט

עד 2

העדכון האחרון אפריל 2025

המאמרים הבאים