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

אתם יכולים להשתמש ב-Gemini Omni Flash או ב-Veo ב-Gemini Enterprise Agent Platform כדי ליצור סרטונים על ידי ציון הפריימים הראשונים והאחרונים של הסרטון. הממשקים הנתמכים כוללים את מסוף Cloud de Confiance ואת Agent Platform API.

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

Gemini Omni Flash

לחצו כדי להרחיב את רשימת המודלים הנתמכים

Veo

לחצו כדי להרחיב את רשימת המודלים הנתמכים

מידע נוסף על כתיבת פרומפטים טקסטואליים יעילים ליצירת סרטונים זמין במדריך לפרומפטים של Veo.

איך מנסים את Gemini Omni Flash ב-Colab

לפני שמתחילים

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Enable the Agent Platform API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  3. מגדירים אימות לסביבה.

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

    המסוף

    כשמשתמשים במסוף Cloud de Confiance כדי לגשת Cloud de Confiance by S3NS לשירותים ולממשקי ה-API, לא צריך להגדיר אימות.

    REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      מתקינים את ה-CLI של Google Cloud ואז נכנסים ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .

איך משתמשים ב-Gemini Omni Flash כדי ליצור סרטון מהפריים הראשון והאחרון

כדי ליצור סרטונים באמצעות Gemini Omni Flash:

REST

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

  • סינכרוני: ללא שמירת מצב: יוצרים סרטון בבקשה אחת בלי לשמר את מצב האינטראקציה בשרת.
  • סינכרוני: עם שמירת מצב: מגדירים את store לערך true כדי לשמר את מצב האינטראקציה, וכך אפשר לאחזר את התוצאה מאוחר יותר או להפנות למזהה האינטראקציה לעריכת וידאו בכמה שלבים.
  • סינכרוני: סטרימינג עם שמירת מצב: מגדירים את store ואת stream ל-true כדי לקבל את המחשבות של המודל באופן מצטבר בזמן שהן נוצרות, ואז את הסרטון שנוצר.
  • אסינכרוני: מגדירים את background לערך true כדי להריץ את יצירת הסרטון ברקע ולאחזר את התוצאה מאוחר יותר באמצעות מזהה האינטראקציה.

אינטראקציות אסינכרוניות ואינטראקציות שנשמרו נשמרות למשך עד 14 ימים.

מידע נוסף על השימוש ב-Gemini Omni Flash API זמין במאמר Interactions API.

סינכרוני: בלי שמירת מצב

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫MODEL_ID: מחרוזת שמייצגת את מזהה המודל שבו רוצים להשתמש. אלה הערכים הקבילים:
    • "gemini-omni-1.1-flash-preview"
  • ‫TEXT_PROMPT: הפרומפט הטקסטואלי שמשמש להנחיית יצירת הסרטון.
  • ‫CLOUD_STORAGE_INPUT_URI: מחרוזת שמייצגת את הקטגוריה של Cloud Storage שמכילה את המדיה של הקלט. לדוגמה: "gs://video-bucket/input/".
  • ‫CLOUD_STORAGE_OUTPUT_URI: אופציונלי: מחרוזת שמייצגת את הקטגוריה של Cloud Storage שבה יישמרו סרטוני הפלט. אם לא מציינים את מספר הבייטים, הם מוחזרים בתגובה. לדוגמה: "gs://video-bucket/output/".
  • ‫ASPECT_RATIO: אופציונלי: מחרוזת שמייצגת את יחס הגובה-רוחב הצפוי של סרטון הפלט. אם לא מציינים יחס גובה-רוחב, הוא נקבע לפי ההנחיה. אלה הערכים הקבילים:
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION:

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

    במאפיין gemini-omni-1.1-flash-preview אפשר להשתמש בערכים הבאים:

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    ‫gemini-omni-flash-preview תומך רק ב-"720p".

  • ‫DURATION: מחרוזת שמייצגת את האורך של קובצי הווידאו שנוצרו. המחרוזות המותרות הן מספרים שלמים בין 3 ל-10, ואחריהם האות s לשניות. לדוגמה, "10s".

ה-method של ה-HTTP וכתובת ה-URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

גוף בקשת JSON:

{
  "model": "MODEL_ID",
  "input": [
    {
      "type": "text",
      "text": "TEXT_PROMPT"
    },
    {
      "type": "image",
      "uri": "CLOUD_STORAGE_INPUT_URI",
      "mime_type": "image/png"
    },
    {
      "type": "image",
      "uri": "CLOUD_STORAGE_INPUT_URI",
      "mime_type": "image/png"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "image_to_video"
    }
  }
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
התשובה מכילה אינטראקציה שכוללת את המחשבות של המודל וסרטון פלט.
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type":"thought",
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "uri":"gs://some/output_path/123.mp4",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction",
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}

סינכרוני: עם שמירת מצב

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫MODEL_ID: מחרוזת שמייצגת את מזהה המודל לשימוש. אלה הערכים הקבילים:
    • "gemini-omni-1.1-flash-preview"
  • ‫TEXT_PROMPT: הפרומפט הטקסטואלי שמשמש להנחיית יצירת הסרטון.
  • ‫CLOUD_STORAGE_INPUT_URI: מחרוזת שמייצגת את הקטגוריה של Cloud Storage שמכילה את המדיה של הקלט. לדוגמה: "gs://video-bucket/input/".
  • ‫CLOUD_STORAGE_OUTPUT_URI: אופציונלי: מחרוזת שמייצגת את הקטגוריה של Cloud Storage שבה יישמרו סרטוני הפלט. אם לא מציינים את מספר הבייטים, הם מוחזרים בתגובה. לדוגמה: "gs://video-bucket/output/".
  • ‫ASPECT_RATIO: אופציונלי: מחרוזת שמייצגת את יחס הגובה-רוחב הצפוי של סרטון הפלט. אם לא מציינים יחס גובה-רוחב, הוא נקבע לפי ההנחיה. אלה הערכים הקבילים:
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION:

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

    במאפיין gemini-omni-1.1-flash-preview אפשר להשתמש בערכים הבאים:

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    ‫gemini-omni-flash-preview תומך רק ב-"720p".

  • ‫DURATION: מחרוזת שמייצגת את האורך של קובצי הווידאו שנוצרו. המחרוזות המותרות הן מספרים שלמים בין 3 ל-10, ואחריהם האות s לשניות. לדוגמה, "10s".

ה-method של ה-HTTP וכתובת ה-URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

גוף בקשת JSON:

{
  "model": "MODEL_ID",
  "background": false,
  "store": true,
  "stream": false,
  "input": [
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "TEXT_PROMPT"
        },
        {
          "type": "image",
          "uri": "CLOUD_STORAGE_INPUT_URI",
          "mime_type": "image/png"
        },
        {
          "type": "image",
          "uri": "CLOUD_STORAGE_INPUT_URI",
          "mime_type": "image/png"
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ]
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
התשובה מכילה אינטראקציה שכוללת את המחשבות של המודל וסרטון פלט.
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type":"thought",
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "uri":"gs://some/output_path/123.mp4",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction",
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}
כדי לקבל את הסרטון שנוצר, משתמשים ב-INTERACTION_ID:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫INTERACTION_ID: מזהה האינטראקציה מהבקשה האסינכרונית.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID

כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID"

PowerShell

מריצים את הפקודה הבאה:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID" | Select-Object -Expand Content
התגובה תהיה בפורמט דומה לזה:
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "5 second, 9:16 video. Use the image as the first frame."
        },
        {
          "type": "image",
          "uri": "gs://some/path",
          "mime_type": "image/png"
        }
      ]
    },
    {
      "type":"thought"
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "data":"VIDEO DATA",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction"
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}

סינכרוני: סטרימינג עם שמירת מצב

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫MODEL_ID: מחרוזת שמייצגת את מזהה המודל שבו רוצים להשתמש. אלה הערכים הקבילים:
    • "gemini-omni-1.1-flash-preview"
  • ‫TEXT_PROMPT: הפרומפט הטקסטואלי שמשמש להנחיית יצירת הסרטון.
  • ‫CLOUD_STORAGE_INPUT_URI: מחרוזת שמייצגת את הקטגוריה של Cloud Storage שמכילה את המדיה של הקלט. לדוגמה: "gs://video-bucket/input/".
  • ‫CLOUD_STORAGE_OUTPUT_URI: אופציונלי: מחרוזת שמייצגת את הקטגוריה של Cloud Storage שבה יישמרו סרטוני הפלט. אם לא מציינים את מספר הבייטים, הם מוחזרים בתגובה. לדוגמה: "gs://video-bucket/output/".
  • ‫ASPECT_RATIO: אופציונלי: מחרוזת שמייצגת את יחס הגובה-רוחב הצפוי של סרטון הפלט. אם לא מציינים יחס גובה-רוחב, הוא נקבע לפי ההנחיה. אלה הערכים הקבילים:
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION:

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

    במאפיין gemini-omni-1.1-flash-preview אפשר להשתמש בערכים הבאים:

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    ‫gemini-omni-flash-preview תומך רק ב-"720p".

  • ‫DURATION: מחרוזת שמייצגת את האורך של קובצי הווידאו שנוצרו. המחרוזות המותרות הן מספרים שלמים בין 3 ל-10, ואחריהם האות s לשניות. לדוגמה, "10s".

ה-method של ה-HTTP וכתובת ה-URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

גוף בקשת JSON:

{
  "model": "MODEL_ID",
  "background": false,
  "store": true,
  "stream": true,
  "input": [
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "TEXT_PROMPT"
        },
        {
          "type": "image",
          "uri": "CLOUD_STORAGE_INPUT_URI",
          "mime_type": "image/png"
        },
        {
          "type": "image",
          "uri": "CLOUD_STORAGE_INPUT_URI",
          "mime_type": "image/png"
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ]
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
התשובה מכילה אינטראקציה שכוללת את המחשבות של המודל וסרטון פלט.
event: interaction.created
data: {"interaction":{"id":"INTERACTION_ID","status":"in_progress","object":"interaction","model":"gemini-omni-flash-preview"},"event_type":"interaction.created"}

event: interaction.status_update
data: {"interaction_id":"INTERACTION_ID","status":"in_progress","event_type":"interaction.status_update"}

event: step.start
data: {"index":0,"step":{"type":"thought"},"event_type":"step.start"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"signature":"...","type":"thought_signature"},"event_type":"step.delta"}

event: step.stop
data: {"index":0,"event_type":"step.stop"}

event: step.start
data: {"index":1,"step":{"type":"model_output"},"event_type":"step.start"}

event: step.delta
data: {"index":1,"delta":{"mime_type":"video/mp4","uri":"gs://some/output_path/123.mp4","type":"video"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.stop
data: {"index":1,"event_type":"step.stop"}

event: interaction.completed
data: {"interaction":{"id":"INTERACTION_ID","status":"completed","usage":{"total_tokens":17812,"total_input_tokens":21,"input_tokens_by_modality":[{"modality":"text","tokens":21}],"total_output_tokens":17376,"output_tokens_by_modality":[{"modality":"video","tokens":17376}],"total_thought_tokens":415},"created":"2026-08-12T21:26:20Z","updated":"2026-08-12T21:26:20Z","event_id":"EVENT_ID","object":"interaction","model":"gemini-omni-flash-preview"},"event_id":"EVENT_ID","event_type":"interaction.completed"}

event: done
data: [DONE]
כדי להזרים את האינטראקציה המאוחסנת ואת הסרטון שנוצר, משתמשים ב-INTERACTION_ID עם ‎ `?stream=true` ‎:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫INTERACTION_ID: מזהה האינטראקציה מהבקשה.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true

כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true"

PowerShell

מריצים את הפקודה הבאה:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true" | Select-Object -Expand Content
התגובה היא זרם של אירועים שנשלחים מהשרת (SSE) בפורמט שדומה לזה:
event: interaction.created
data: {"interaction":{"id":"INTERACTION_ID","status":"in_progress","object":"interaction","model":"gemini-omni-flash-preview"},"event_type":"interaction.created"}

event: interaction.status_update
data: {"interaction_id":"INTERACTION_ID","status":"in_progress","event_type":"interaction.status_update"}

event: step.start
data: {"index":0,"step":{"type":"thought"},"event_type":"step.start"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"signature":"...","type":"thought_signature"},"event_type":"step.delta"}

event: step.stop
data: {"index":0,"event_type":"step.stop"}

event: step.start
data: {"index":1,"step":{"type":"model_output"},"event_type":"step.start"}

event: step.delta
data: {"index":1,"delta":{"mime_type":"video/mp4","uri":"gs://some/output_path/123.mp4","type":"video"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.stop
data: {"index":1,"event_type":"step.stop"}

event: interaction.completed
data: {"interaction":{"id":"INTERACTION_ID","status":"completed","usage":{"total_tokens":17664,"total_input_tokens":21,"input_tokens_by_modality":[{"modality":"text","tokens":21}],"total_output_tokens":17376,"output_tokens_by_modality":[{"modality":"video","tokens":17376}],"total_thought_tokens":267},"created":"2026-08-12T21:33:08Z","updated":"2026-08-12T21:33:08Z","event_id":"EVENT_ID","object":"interaction","model":"gemini-omni-flash-preview"},"event_id":"EVENT_ID","event_type":"interaction.completed"}

event: done
data: [DONE]

אסינכרוני

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫MODEL_ID: מחרוזת שמייצגת את מזהה המודל שבו רוצים להשתמש. אלה הערכים הקבילים:
    • "gemini-omni-1.1-flash-preview"
  • ‫TEXT_PROMPT: הפרומפט הטקסטואלי שמשמש להנחיית יצירת הסרטון.
  • ‫CLOUD_STORAGE_INPUT_URI: מחרוזת שמייצגת את הקטגוריה של Cloud Storage שמכילה את המדיה של הקלט. לדוגמה: "gs://video-bucket/input/".
  • ‫CLOUD_STORAGE_OUTPUT_URI: אופציונלי: מחרוזת שמייצגת את הקטגוריה של Cloud Storage שבה יישמרו סרטוני הפלט. אם לא מציינים את מספר הבייטים, הם מוחזרים בתגובה. לדוגמה: "gs://video-bucket/output/".
  • ‫ASPECT_RATIO: אופציונלי: מחרוזת שמייצגת את יחס הגובה-רוחב הצפוי של סרטון הפלט. אם לא מציינים יחס גובה-רוחב, הוא נקבע לפי ההנחיה. אלה הערכים הקבילים:
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION:

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

    במאפיין gemini-omni-1.1-flash-preview אפשר להשתמש בערכים הבאים:

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    ‫gemini-omni-flash-preview תומך רק ב-"720p".

  • ‫DURATION: מחרוזת שמייצגת את האורך של קובצי הווידאו שנוצרו. המחרוזות המותרות הן מספרים שלמים בין 3 ל-10, ואחריהם האות s לשניות. לדוגמה, "10s".

ה-method של ה-HTTP וכתובת ה-URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

גוף בקשת JSON:

{
  "model": "MODEL_ID",
  "input": [
    {
      "background": true,
      "type": "text",
      "text": "TEXT_PROMPT"
    },
    {
      "type": "image",
      "uri": "CLOUD_STORAGE_INPUT_URI",
      "mime_type": "image/png"
    },
    {
      "type": "image",
      "uri": "CLOUD_STORAGE_INPUT_URI",
      "mime_type": "image/png"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "image_to_video"
    }
  }
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
התשובה מכילה מזהה אינטראקציה, שבו תשתמשו כדי לקבל את הסרטון שיצרתם.
{
  "id":"INTERACTION_ID",
  "status":"in_progress",
  "object":"interaction"
}
אחר כך, משתמשים ב-INTERACTION_ID כדי לקבל את הסרטון שנוצר:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫INTERACTION_ID: מזהה האינטראקציה מהבקשה האסינכרונית.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID

כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID"

PowerShell

מריצים את הפקודה הבאה:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID" | Select-Object -Expand Content
התגובה תהיה בפורמט דומה לזה:
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "5 second, 9:16 video. Use the image as the first frame."
        },
        {
          "type": "image",
          "uri": "gs://some/path",
          "mime_type": "image/png"
        }
      ]
    },
    {
      "type":"thought"
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "data":"VIDEO DATA",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction"
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}

איך משתמשים ב-Veo כדי ליצור סרטון מפריים הפתיחה ופריים הסיום

בדוגמאות הבאות אפשר לראות איך מציינים את הפריים הראשון והאחרון של סרטון ב-Veo:

המסוף

  1. במסוף Cloud de Confiance , נכנסים לדף Agent Platform > Media Studio.

    Media Studio

  2. לוחצים על סרטון.

  3. בתפריט משימה, לוחצים על יצירת סרטון מתמונה.

  4. בתפריט מודל, בוחרים מודל מהאפשרויות שמוצגות.

  5. בתיבה פרומפט, מזינים פרומפט טקסטואלי שמתאר את הסרטונים שרוצים ליצור.

  6. בקטע Input images, לוחצים על Start כדי להעלות תמונה לפריים הראשון.

  7. אופציונלי: לוחצים על סיום כדי להעלות תמונה לפריים האחרון.

  8. אופציונלי: משנים את הפרמטרים הבאים:

    • יחס גובה-רוחב: בוחרים באפשרות 16:9 או 9:16.

    • מספר התוצאות: משנים את המיקום של פס ההזזה או מזינים ערך בין 1 ל-4.

    • אורך הסרטון: בוחרים אורך סרטון מהתפריט.

    • ספריית פלט: לוחצים על עיון כדי ליצור או לבחור קטגוריה של Cloud Storage לאחסון הקבצים שנוצרו.

  9. לוחצים על Run.

Python

התקנה

pip install --upgrade google-genai

מידע נוסף זמין ב מאמרי העזרה של ה-SDK.

מגדירים משתני סביבה כדי להשתמש ב-Google Gen AI SDK עם Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

import time
from google import genai
from google.genai.types import GenerateVideosConfig, Image

client = genai.Client()

# TODO(developer): Update and un-comment below line
# output_gcs_uri = "gs://your-bucket/your-prefix"

operation = client.models.generate_videos(
    model="veo-3.1-generate-001",
    prompt="a hand reaches in and places a glass of milk next to the plate of cookies",
    image=Image(
        gcs_uri="gs://cloud-samples-data/generative-ai/image/cookies.png",
        mime_type="image/png",
    ),
    config=GenerateVideosConfig(
        aspect_ratio="16:9",
        last_frame=Image(
            gcs_uri="gs://cloud-samples-data/generative-ai/image/cookies-milk.png",
            mime_type="image/png",
        ),
        output_gcs_uri=output_gcs_uri,
    ),
)

while not operation.done:
    time.sleep(15)
    operation = client.operations.get(operation)
    print(operation)

if operation.response:
    print(operation.result.generated_videos[0].video.uri)

# Example response:
# gs://your-bucket/your-prefix

REST

מידע נוסף על Veo API זמין במאמרים הבאים:

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

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
    • ‫MODEL_ID: מחרוזת שמייצגת את מזהה המודל שבו רוצים להשתמש. כשמציינים את הפריים הראשון או האחרון של הסרטון, משתמשים באחת מהאפשרויות הבאות:
      • ‫Veo 3: veo-3.1-generate-001
      • ‫Veo 3: veo-3.1-fast-generate-001
    • ‫TEXT_PROMPT: פרומפט הטקסט שמשמש להנחיית יצירת הסרטון.
    • ‫PATH_TO_FIRST_FRAME_IMAGE: מחרוזת שמייצגת את הנתיב ב-Cloud Storage לתמונה של הפריים הראשון. לדוגמה: "gs://video-bucket/input/first-frame.jpg".
    • ‫IMAGE_MIME_TYPE: מחרוזת שמייצגת את סוג ה-MIME של תמונת הקלט. אפשר להשתמש רק בתמונות מסוגי ה-MIME הבאים:
      • image/jpeg
      • image/png
    • ‫PATH_TO_LAST_FRAME_IMAGE: מחרוזת שמייצגת את הנתיב ב-Cloud Storage לתמונה של הפריים האחרון. לדוגמה: "gs://video-bucket/input/last-frame.jpg".
    • ‫OUTPUT_STORAGE_URI: אופציונלי: מחרוזת שמייצגת את הקטגוריה של Cloud Storage שבה יישמרו סרטוני הפלט. אם לא מציינים את הפרמטר, הבייטים של הסרטון מוחזרים בתגובה. לדוגמה: "gs://video-bucket/output/".
    • ‫RESPONSE_COUNT: מספר קובצי הווידאו שרוצים ליצור. הטווח המותר של הערכים הוא 1-4.
    • ‫DURATION: מספר שלם שמייצג את אורך קובצי הווידאו שנוצרו. אלה הערכים הקבילים לכל דגם:
      • מודלים של Veo 2: ‏ 5-8. ברירת המחדל היא 8.
      • מודלים של Veo 3: ‏ 4,‏ 6 או 8. ערך ברירת המחדל הוא 8.
    • פרמטרים אופציונליים נוספים

      אתם יכולים להשתמש במשתנים האופציונליים הבאים בהתאם לתרחיש לדוגמה. מוסיפים חלק מהפרמטרים הבאים או את כולם לאובייקט "parameters": {}.

      "parameters": {
        "aspectRatio": "ASPECT_RATIO",
        "negativePrompt": "NEGATIVE_PROMPT",
        "personGeneration": "PERSON_SAFETY_SETTING",
        // "resolution": RESOLUTION, // Veo 3 models only
        "sampleCount": RESPONSE_COUNT,
        "seed": SEED_NUMBER
      }
      • ‫ASPECT_RATIO: אופציונלי: ערך מחרוזת שמתאר את יחס הגובה-רוחב של הסרטונים שנוצרו. אפשר להשתמש בערכים הבאים:
        • ‫"16:9" לתמונה לרוחב
        • ‫"9:16" לאורך

        ערך ברירת המחדל הוא "16:9"

      • ‫NEGATIVE_PROMPT: אופציונלי: ערך מחרוזת שמתאר תוכן שרוצים למנוע מהמודל ליצור.
      • ‫PERSON_SAFETY_SETTING: אופציונלי: ערך מחרוזת ששולט בהגדרת הבטיחות ליצירת אנשים או פנים. אפשר להשתמש בערכים הבאים:
        • "allow_adult": אפשר ליצור רק תמונות של אנשים ופנים של מבוגרים.
        • ‫"disallow": לא יוצרת אנשים או פנים.

        ערך ברירת המחדל הוא "allow_adult".

      • ‫RESOLUTION: אופציונלי: ערך מחרוזת שקובע את הרזולוציה של הסרטון שנוצר. נתמך רק במודלים של Veo 3. אפשר להשתמש בערכים הבאים:
        • "720p"
        • "1080p"
        • ‫"4k" (מודלים של Veo 3.1 בגרסת טרום-השקה בלבד)

        ערך ברירת המחדל הוא "720p".

      • RESPONSE_COUNT: אופציונלי. ערך מספרי שלם שמתאר את מספר הסרטונים שרוצים ליצור. הטווח המותר של הערכים הוא 1 עד 4.
      • SEED_NUMBER: אופציונלי. ערך uint32 שהמודל משתמש בו כדי ליצור סרטונים דטרמיניסטיים. אם מציינים מספר seed בבקשה בלי לשנות פרמטרים אחרים, המודל ייצור את אותם סרטונים. טווח הערכים הקבילים הוא 0-4294967295.

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning

    גוף בקשת JSON:

    {
      "instances": [
        {
          "prompt": "TEXT_PROMPT",
           "image": {
             "gcsUri": "PATH_TO_FIRST_FRAME_IMAGE,
             "mimeType": "IMAGE_MIME_TYPE"
           },
           "lastFrame:" {
             "gcsUri": "PATH_TO_LAST_FRAME_IMAGE,
             "mimeType": "IMAGE_MIME_TYPE"
           }
        }
      ],
      "parameters": {
        "storageUri": "OUTPUT_STORAGE_URI",
        "sampleCount": RESPONSE_COUNT
      }
    }
    

    כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

    curl

    שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning"

    PowerShell

    שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning" | Select-Object -Expand Content
    הבקשה הזו מחזירה שם פעולה מלא עם מזהה פעולה ייחודי. כדי לבדוק את הסטטוס של הבקשה ליצירת סרטון, צריך להשתמש בשם הפעולה המלא הזה.
    {
      "name":
      "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
    }
    

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

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • ‫PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS .
    • ‫MODEL_ID: מזהה המודל שבו רוצים להשתמש.
    • ‫OPERATION_ID: מזהה הפעולה הייחודי שהוחזר בבקשה המקורית ליצירת סרטון.

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation

    גוף בקשת JSON:

    {
      "operationName": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/OPERATION_ID"
    }
    

    כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

    curl

    שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation"

    PowerShell

    שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation" | Select-Object -Expand Content
    בעקבות הבקשה הזו מתקבל מידע על הפעולה, כולל אם הפעולה עדיין פועלת או שהיא הסתיימה.

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