הוספת אובייקטים לסרטונים ב-Veo

אתם יכולים להשתמש ב-Veo ב-Gemini Enterprise Agent Platform כדי להוסיף אובייקטים לסרטונים. לשם כך, צריך לספק מסכה ואובייקט תמונה, ואז לתת למודל הנחיה שכוללת תיאור של הפלט הרצוי.

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

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

ניסיון של Gemini Omni Flash ב-Colab

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

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud 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

  3. Enable the Agent Platform API.

    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

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud 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

  5. Enable the Agent Platform API.

    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

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

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

    המסוף

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

    Python

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Python שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.

    1. התקינו את ה-CLI של Google Cloud.

    2. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

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

      gcloud auth application-default login

      אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.

      אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .

    REST

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

      התקינו את ה-CLI של Google Cloud.

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

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

הוספת אובייקט לסרטון

המסוף

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

    Media Studio

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

  3. בתפריט משימה, בוחרים באפשרות הסרת פגמים בסרטון (הוספה).

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

  5. בקטע סרטון קלט, לוחצים על הוספה.

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

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

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

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

  8. לוחצים על 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 GenerateVideosSource, GenerateVideosConfig, Image, Video, VideoGenerationMask, VideoGenerationMaskMode

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-2.0-generate-preview",
    source=GenerateVideosSource(
        prompt="a sheep",
        video=Video(uri="gs://cloud-samples-data/generative-ai/video/truck.mp4", mime_type="video/mp4")
    ),
    config=GenerateVideosConfig(
        mask=VideoGenerationMask(
            image=Image(
                gcs_uri="gs://cloud-samples-data/generative-ai/image/truck-inpainting-dynamic-mask.png",
                mime_type="image/png",
            ),
            mask_mode=VideoGenerationMaskMode.INSERT,
        ),
        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: מזהה הפרויקט ב- Google Cloud .
    • TEXT_PROMPT: פרומפט טקסטואלי שמשמש להנחיית יצירת סרטונים.
    • MASK_STORAGE_URI נתיב ה-URI של קטגוריית Cloud Storage לאובייקט המסכה.
    • MASK_MIME_TYPE סוג ה-MIME של מסכת התמונה. רק אחת מהאפשרויות הבאות:

      • image/png
      • image/jpeg
      • image/webp
    • VIDEO_INPUT_STORAGE_URI נתיב ה-URI של קטגוריית Cloud Storage של אובייקט קלט הווידאו.
    • VIDEO_MIME_TYPE סוג ה-MIME של אובייקט הסרטון. רק אחת מהאפשרויות הבאות:

      • video/mov
      • video/mpeg
      • video/mp4
      • video/mpg
      • video/avi
      • video/wmv
      • video/mpegps
      • video/flv
    • OUTPUT_STORAGE_URI: אופציונלי: הקטגוריה של Cloud Storage שבה יישמרו סרטוני הפלט. אם לא צוין, בתגובה יוחזר סרטון בקידוד Base64-bytes. לדוגמה: gs://video-bucket/output/.
    • RESPONSE_COUNT: מספר קובצי הווידאו שרוצים ליצור. ערכים קבילים מסוג מספר שלם: 1-4.
    • פרמטרים אופציונליים נוספים

      אפשר להשתמש במשתנים האופציונליים הבאים בהתאם לתרחיש השימוש. מוסיפים חלק מהפרמטרים הבאים או את כולם לאובייקט "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 שהמודל משתמש בו כדי ליצור סרטונים דטרמיניסטיים. אם מציינים מספר התחלתי בבקשה בלי לשנות פרמטרים אחרים, המודל ייצור את אותם סרטונים. הטווח הקביל של הערכים הוא 0-4294967295.

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

    POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-preview:predictLongRunning

    גוף בקשת JSON:

    {
      "instances": [
        {
          "prompt": "TEXT_PROMPT",
          // The following fields can be repeated for up to three total
          // images.
          "mask": {
            "gcsUri": "MASK_STORAGE_URI",
            "mimeType": "MASK_MIME_TYPE",
            "maskMode": "insert"
          },
          "video": {
            "gcsUri": "VIDEO_INPUT_STORAGE_URI",
            "mimeType": "VIDEO_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/veo-2.0-generate-preview: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/veo-2.0-generate-preview:predictLongRunning" | Select-Object -Expand Content
    הבקשה הזו מחזירה שם פעולה מלא עם מזהה פעולה ייחודי. משתמשים בשם המלא של הפעולה כדי לבדוק את הסטטוס של הבקשה ליצירת הסרטון.
    {
      "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
    }
    

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

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

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • 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
    הבקשה הזו מחזירה מידע על הפעולה, כולל אם הפעולה עדיין פועלת או שהיא הסתיימה.

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