יצירת סרטונים מהנחיות טקסט

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

המודלים הבאים תומכים ביצירת סרטון מפרומפט טקסטואלי:

‫Gemini Omni Flash

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

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 כדי לגשת לשירותים ולממשקי ה-API של Cloud de Confiance by S3NS , לא צריך להגדיר אימות.

    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 כדי להריץ את יצירת הסרטון ברקע ולאחזר את התוצאה מאוחר יותר באמצעות מזהה האינטראקציה.

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

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

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

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

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫MODEL_ID: מחרוזת שמייצגת את מזהה המודל שבו רוצים להשתמש. אלה הערכים הקבילים:
    • "gemini-omni-1.1-flash-preview"
    • "gemini-omni-flash-preview"
  • ‫TEXT_PROMPT: הפרומפט הטקסטואלי שמשמש להנחיית יצירת הסרטון.
  • ‫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"
    }
  ],
  "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": "text_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",
}

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

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

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫MODEL_ID: מחרוזת שמייצגת את מזהה המודל שבו רוצים להשתמש. אלה הערכים הקבילים:
    • "gemini-omni-1.1-flash-preview"
  • ‫TEXT_PROMPT: הפרומפט הטקסטואלי שמשמש להנחיית יצירת הסרטון.
  • ‫CLOUD_STORAGE_OUTPUT_URI: אופציונלי: מחרוזת שמייצגת את הקטגוריה של Cloud Storage שבה יאוחסנו סרטוני הפלט. אם לא מציינים את מספר הבייטים, הם מוחזרים בתגובה. לדוגמה: "gs://video-bucket/output/".
  • ‫ASPECT_RATIO: אופציונלי: מחרוזת שמייצגת את יחס הגובה-רוחב הצפוי של סרטון הפלט. אם לא מציינים יחס גובה-רוחב, המערכת מסיקה אותו מההנחיה. אלה הערכים הקבילים:
    • "16:9"
    • "9:16"
  • ‫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"
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "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",
  "status":"completed",
  "usage":{
    "total_tokens":17615,
    "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":218
  },
  "created":"2026-08-12T21:28:40Z",
  "updated":"2026-08-12T21:28:40Z",
  "event_id":"EVENT_ID",
  "steps":[
    {
      "signature":"...",
      "summary":[
        {
          "text":"MODEL THOUGHTS",
          "type":"text"
        },
        {
          "text":"MODEL THOUGHTS",
          "type":"text"
        }
      ],
      "type":"thought"
    },
    {
      "content":[
        {
          "mime_type":"video/mp4",
          "uri":"gs://some/output_path/123.mp4",
          "type":"video"
        }
      ],
      "type":"model_output"
    }
  ],
  "object":"interaction",
  "model":"gemini-omni-flash-preview"
}
כדי לקבל את הסרטון שנוצר, משתמשים ב-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",
}

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

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

  • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫MODEL_ID: מחרוזת שמייצגת את מזהה המודל לשימוש. אלה הערכים הקבילים:
    • "gemini-omni-1.1-flash-preview"
  • ‫TEXT_PROMPT: הפרומפט הטקסטואלי שמשמש להנחיית יצירת הסרטון.
  • ‫CLOUD_STORAGE_OUTPUT_URI: אופציונלי: מחרוזת שמייצגת את הקטגוריה של Cloud Storage שבה יאוחסנו סרטוני הפלט. אם לא מציינים את מספר הבייטים, הם מוחזרים בתגובה. לדוגמה: "gs://video-bucket/output/".
  • ‫ASPECT_RATIO: אופציונלי: מחרוזת שמייצגת את יחס הגובה-רוחב הצפוי של סרטון הפלט. אם לא מציינים יחס גובה-רוחב, המערכת מסיקה אותו מההנחיה. אלה הערכים הקבילים:
    • "16:9"
    • "9:16"
  • ‫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"
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "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":{"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-flash-preview"
    • "gemini-omni-1.1-flash-preview"
  • ‫TEXT_PROMPT: הפרומפט הטקסטואלי שמשמש להנחיית יצירת הסרטון.
  • ‫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"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "output": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "text_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. בתיבה Prompt, כותבים פרומפט טקסטואלי שמתאר את הסרטונים שרוצים ליצור.

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

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

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

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

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

  7. לוחצים על 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

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 cat reading a book",
    config=GenerateVideosConfig(
        aspect_ratio="16:9",
        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

Go

איך מתקינים או מעדכנים את Go

מידע נוסף מופיע ב מאמרי העזרה בנושא 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 (
	"context"
	"fmt"
	"io"
	"time"

	"google.golang.org/genai"
)

// generateVideoWithText shows how to gen video from text.
func generateVideoWithText(w io.Writer, outputGCSURI string) error {
	//outputGCSURI = "gs://your-bucket/your-prefix"
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	config := &genai.GenerateVideosConfig{
		AspectRatio:  "16:9",
		OutputGCSURI: outputGCSURI,
	}

	modelName := "veo-3.0-generate-preview"
	prompt := "a cat reading a book"
	operation, err := client.Models.GenerateVideos(ctx, modelName, prompt, nil, config)
	if err != nil {
		return fmt.Errorf("failed to start video generation: %w", err)
	}

	// Polling until the operation is done
	for !operation.Done {
		time.Sleep(15 * time.Second)
		operation, err = client.Operations.GetVideosOperation(ctx, operation, nil)
		if err != nil {
			return fmt.Errorf("failed to get operation status: %w", err)
		}
	}

	if operation.Response != nil && len(operation.Response.GeneratedVideos) > 0 {
		videoURI := operation.Response.GeneratedVideos[0].Video.URI
		fmt.Fprintln(w, videoURI)
		return nil
	}

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

	return fmt.Errorf("video generation failed or returned no results")
}

Node.js

התקנה

npm install @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

const {GoogleGenAI} = require('@google/genai');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION = process.env.GOOGLE_CLOUD_LOCATION || 'global';

async function generateVideo(
  outputGcsUri,
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const client = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  let operation = await client.models.generateVideos({
    model: 'veo-3.1-fast-generate-001',
    prompt: 'a cat reading a book',
    config: {
      aspectRatio: '16:9',
      outputGcsUri: outputGcsUri,
    },
  });

  while (!operation.done) {
    await new Promise(resolve => setTimeout(resolve, 15000));
    operation = await client.operations.get({operation: operation});
    console.log(operation);
  }

  if (operation.response) {
    console.log(operation.response.generatedVideos[0].video.uri);
  }
  return operation;
}

Java

איך מתקינים או מעדכנים את Java

מידע נוסף מופיע ב מאמרי העזרה בנושא 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 com.google.genai.Client;
import com.google.genai.types.GenerateVideosConfig;
import com.google.genai.types.GenerateVideosOperation;
import com.google.genai.types.GenerateVideosResponse;
import com.google.genai.types.GenerateVideosSource;
import com.google.genai.types.GeneratedVideo;
import com.google.genai.types.GetOperationConfig;
import com.google.genai.types.Video;
import java.util.concurrent.TimeUnit;

public class VideoGenWithTxt {

  public static void main(String[] args) throws InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    String modelId = "veo-3.1-generate-001";
    String outputGcsUri = "gs://your-bucket/your-prefix";
    generateContent(modelId, outputGcsUri);
  }

  // Generates a video with a text prompt.
  public static String generateContent(String modelId, String outputGcsUri)
      throws InterruptedException {
    // Client Initialization. Once created, it can be reused for multiple requests.
    try (Client client = Client.builder().location("global").vertexAI(true).build()) {

      GenerateVideosOperation operation =
          client.models.generateVideos(
              modelId,
              GenerateVideosSource.builder().prompt("a cat reading a book").build(),
              GenerateVideosConfig.builder()
                  .aspectRatio("16:9")
                  .outputGcsUri(outputGcsUri)
                  .build());

      while (!operation.done().orElse(false)) {
        TimeUnit.SECONDS.sleep(15);
        operation =
            client.operations.getVideosOperation(operation, GetOperationConfig.builder().build());
      }

      String generatedVideoUri =
          operation
              .response()
              .flatMap(GenerateVideosResponse::generatedVideos)
              .flatMap(videos -> videos.stream().findFirst())
              .flatMap(GeneratedVideo::video)
              .flatMap(Video::uri)
              .orElseThrow(
                  () ->
                      new IllegalStateException(
                          "Could not get the URI from the generated video"));

      System.out.println("Generated video URI: " + generatedVideoUri);
      // Example response:
      // Generated video URI: gs://your-bucket/your-prefix/generated-video-123.mp4
      return generatedVideoUri;
    }
  }
}

REST

מידע נוסף על Veo API:

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

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

    • ‫PROJECT_ID: מחרוזת שמייצגת את מזהה הפרויקט ב- Cloud de Confiance by S3NS .
    • ‫MODEL_ID: מחרוזת שמייצגת את מזהה המודל לשימוש. אלה הערכים הקבילים:
      • Veo 2: "veo-2.0-generate-001"
      • ‫Veo 3:"veo-3.0-generate-001"
      • ‫Veo 3:"veo-3.0-fast-generate-001"
      • ‫Veo 3:"veo-3.0-generate-preview" (גרסת טרום-השקה)
      • ‫Veo 3:"veo-3.0-fast-generate-preview" (גרסת טרום-השקה)
      • ‫Veo 3.1: "veo-3.1-generate-001"
      • ‫Veo 3.1: "veo-3.1-fast-generate-001"
    • ‫TEXT_PROMPT: הפרומפט הטקסטואלי שמשמש להנחיית יצירת הסרטון.
    • ‫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 Preview)

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

      • ‫RESPONSE_COUNT: אופציונלי. ערך של מספר שלם שמתאר את מספר הסרטונים שרוצים ליצור. טווח הערכים הקבילים הוא 1-4.
      • SEED_NUMBER: אופציונלי. ערך uint32 שהמודל משתמש בו כדי ליצור סרטונים דטרמיניסטיים. אם מציינים מספר גרעין בבקשה בלי לשנות פרמטרים אחרים, המודל ייצור את אותם סרטונים. הטווח המותר של הערכים הוא 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"
        }
      ],
      "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
    הבקשה הזו מחזירה מידע על הפעולה, כולל אם היא עדיין פועלת או שהיא הסתיימה.

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