הסרת אובייקטים מסרטוני Veo

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

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

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

איך מנסים את Veo ב-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.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

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

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

    המסוף

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

    Python

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

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

    2. הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.

      איך נכנסים ל-CLI של gcloud באמצעות הזהות המאוחדת?

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

      gcloud auth application-default login

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

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

    REST

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

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

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

הסרת אובייקט מסרטון

המסוף

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

    Media Studio

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

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

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

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

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

  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(
        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.REMOVE,
        ),
        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 .
  • ‫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": "remove"
      },
      "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"
}

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

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

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

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