Objekte in Veo-Videos einfügen

Mit Veo in Vertex AI können Sie Objekte in Videos einfügen. Dazu müssen Sie eine Maske und ein Bildobjekt angeben und dann einen Prompt für das Modell erstellen, der eine Beschreibung der gewünschten Ausgabe enthält.

Die folgenden Modelle unterstützen das Einfügen von Objekten in Videos:

Weitere Informationen zum Schreiben effektiver Text-Prompts für die Videogenerierung finden Sie im Veo-Leitfaden zu Prompts.

Veo in einem Colab ausprobieren

Hinweis

  1. Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  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 Vertex AI 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

  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 Vertex AI 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

  6. Richten Sie die Authentifizierung für Ihre Umgebung ein.

    Wählen Sie den Tab aus, der Ihrer geplanten Verwendung der Beispiele auf dieser Seite entspricht:

    Console

    Wenn Sie über die Google Cloud Console auf Google Cloud Dienste und APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.

    Python

    Wenn Sie die Python-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.

    1. Installieren Sie die Google Cloud CLI.

    2. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    3. Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:

      gcloud auth application-default login

      Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.

      Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.

    Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.

    REST

    Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.

      Installieren Sie die Google Cloud CLI.

      Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.

Objekt in ein Video einfügen

Console

  1. Rufen Sie in der Google Cloud Console die Seite Vertex AI > Media Studio auf.

    Media Studio

  2. Klicken Sie auf Video.

  3. Wählen Sie im Menü Task die Option Video inpaint (insert) (Video-Inpainting (Einfügen)) aus.

  4. Wählen Sie im Menü Modell ein Modell aus den angezeigten Optionen aus.

  5. Klicken Sie im Abschnitt Eingabevideo auf Hinzufügen.

  6. Geben Sie im Feld Prompt einen Text-Prompt ein, der die zu generierenden Videos beschreibt.

  7. Optional: Passen Sie die folgenden Parameter an:

    • Anzahl der Ergebnisse: Sie können den Schieberegler anpassen oder einen Wert zwischen 1 und 4 eingeben.

    • Ausgabeordner: Klicken Sie auf Durchsuchen, um einen Cloud Storage-Bucket zum Speichern der generierten Dateien zu erstellen oder auszuwählen.

  8. Klicken Sie auf Ausführen.

Python

Installieren

pip install --upgrade google-genai

Weitere Informationen finden Sie in der SDK-Referenzdokumentation.

Umgebungsvariablen für die Verwendung des Gen AI SDK mit Vertex AI festlegen:

# 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_VERTEXAI=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

Nachdem Sie Ihre Umgebung eingerichtet haben, können Sie mit REST einen Text-Prompt testen. Im folgenden Beispiel wird eine Anfrage an den Publisher gesendet Modellendpunkt zu erstellen.

Weitere Informationen zur Veo API finden Sie hier:

  1. Verwenden Sie den folgenden Befehl, um eine Anfrage zur Videogenerierung zu senden. Mit dieser Anfrage wird ein Vorgang mit langer Ausführungszeit gestartet und die Ausgabe in einem von Ihnen angegebenen Cloud Storage-Bucket gespeichert.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: Ihre Google Cloud Projekt-ID.
    • TEXT_PROMPT: Der Text-Prompt, der zur Steuerung der Videogenerierung verwendet wird.
    • MASK_STORAGE_URI Der Cloud Storage-Bucket-URI-Pfad zum Maskenobjekt.
    • MASK_MIME_TYPE Der MIME-Typ der Bildmaske. Nur einer der Folgenden:

      • image/png
      • image/jpeg
      • image/webp
    • VIDEO_INPUT_STORAGE_URI Der Cloud Storage-Bucket-URI-Pfad des Videoeingabeobjekts.
    • VIDEO_MIME_TYPE Der MIME-Typ des Videoobjekts. Nur einer der Folgenden:

      • video/mov
      • video/mpeg
      • video/mp4
      • video/mpg
      • video/avi
      • video/wmv
      • video/mpegps
      • video/flv
    • OUTPUT_STORAGE_URI: Optional: Der Cloud Storage-Bucket, in dem die Ausgabevideos gespeichert werden sollen. Wenn nicht angegeben, wird in der Antwort ein Base64-Byte-codiertes Video zurückgegeben. Beispiel: gs://video-bucket/output/.
    • RESPONSE_COUNT: Die Anzahl der Videodateien, die Sie generieren möchten. Zulässige Ganzzahlwerte: 1–4.
    • Zusätzliche optionale Parameter

      Je nach Anwendungsfall können Sie die folgenden optionalen Variablen verwenden. Fügen Sie dem "parameters": {}-Objekt einige oder alle der folgenden Parameter hinzu.

      "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: Optional: Ein Stringwert, der das Seitenverhältnis der generierten Videos beschreibt. Sie können die folgenden Werte verwenden:
        • "16:9" für Landschaft
        • "9:16" für Hochformat

        Der Standardwert ist "16:9".

      • NEGATIVE_PROMPT (optional): Ein Stringwert, der Inhalte beschreibt, die das Modell nicht generieren soll.
      • PERSON_SAFETY_SETTING: Optional: Ein Stringwert, der die Sicherheitseinstellung für die Generierung von Personen oder Gesichtern steuert. Sie können die folgenden Werte verwenden:
        • "allow_adult": Nur Generierung von Erwachsenen und Gesichtern zulassen.
        • "disallow": Es werden keine Personen oder Gesichter generiert.

        Der Standardwert ist "allow_adult".

      • RESOLUTION: Optional: Ein Stringwert, der die Auflösung des generierten Videos steuert. Wird nur von Veo 3-Modellen unterstützt. Sie können die folgenden Werte verwenden:
        • "720p"
        • "1080p"
        • "4k" (nur Veo 3.1-Vorabversionen)

        Der Standardwert ist "720p".

      • RESPONSE_COUNT: Optional. Ein Ganzzahlwert, der die Anzahl der zu generierenden Videos angibt. Der zulässige Wertebereich ist 14.
      • SEED_NUMBER: Optional. Ein uint32-Wert, den das Modell zum Generieren deterministischer Videos verwendet. Wenn Sie eine Quell-Nummer in Ihrer Anfrage angeben, ohne andere Parameter zu ändern, wird das Modell angewiesen, dieselben Videos zu erstellen. Der zulässige Wertebereich ist 04294967295.

    HTTP-Methode und 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-Text der Anfrage:

    {
      "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,
      }
    }
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    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

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    $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
    Diese Anfrage gibt einen vollständigen Vorgangsnamen mit einer eindeutigen Vorgangs-ID zurück. Verwenden Sie diesen vollständigen Vorgangsnamen, um den Status der Videogenerierungsanfrage abzufragen.
    {
      "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
    }
    

  2. Optional: Prüfen Sie den Status des Vorgangs mit langer Ausführungszeit für die Videogenerierung.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: Ihre Google Cloud Projekt-ID.
    • MODEL_ID: Die zu verwendende Modell-ID.
    • OPERATION_ID: Die eindeutige Vorgangs-ID, die in der ursprünglichen Anfrage zum Generieren von Videos zurückgegeben wurde.

    HTTP-Methode und URL:

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

    JSON-Text der Anfrage:

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

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    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

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    $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
    Diese Anfrage gibt Informationen zum Vorgang zurück, einschließlich der Frage, ob der Vorgang noch ausgeführt wird oder abgeschlossen ist.

Nächste Schritte