Videos aus dem ersten und letzten Frame generieren

Sie können Videos mit Veo in Vertex AI generieren, indem Sie den ersten und den letzten Frame des Videos angeben. Zu den unterstützten Schnittstellen gehören die Google Cloud Console und die Vertex AI API.

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

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Vertex AI API.

    Enable the API

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Vertex AI API.

    Enable the API

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

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    REST

    Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

      After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

    Video aus dem ersten und letzten Frame erstellen

    Die folgenden Beispiele zeigen, wie Sie den ersten und letzten Frame eines Veo-Videos angeben können:

    Console

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

      Media Studio

    2. Klicken Sie auf Video. Die Seite „Video Media Studio“ wird angezeigt.

    3. Konfigurieren Sie im Bereich Einstellungen die folgenden Einstellungen:

      • Modell: Wählen Sie Veo 2 veo-2.0-generate-001 aus.
      • Seitenverhältnis: Wählen Sie entweder 16:9 oder 9:16 aus.
      • Anzahl der Ergebnisse: Stellen Sie den Schieberegler ein oder geben Sie einen Wert zwischen 1 und 4 ein.
      • Videolänge: Wählen Sie eine Länge zwischen 5 Sekunden und 8 Sekunden aus.
      • Ausgabeordner: Klicken Sie auf Durchsuchen, um einen Cloud Storage-Bucket zum Speichern der generierten Dateien zu erstellen oder auszuwählen.
    4. Klicken Sie im Feld Prompt eingeben auf Hochladen. Wählen Sie im angezeigten Dialogfeld ein Bild für den ersten Frame aus.

      Neben dem hochgeladenen Bild wird Schlussbild hinzufügen (optional) angezeigt.

    5. Optional: Wenn Sie einen End-Frame hinzufügen möchten, klicken Sie auf End-Frame hinzufügen. Wählen Sie im angezeigten Dialogfeld ein Bild für den letzten Frame aus.

    6. Geben Sie im Feld Prompt schreiben Ihren Textprompt ein, der die zu generierenden Videos beschreibt.

    7. Klicken Sie auf Erstellen.

    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 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-2.0-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

    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 unter Veo on Vertex AI API.

    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.
      • PATH_TO_FIRST_FRAME_IMAGE: Der Cloud Storage-Pfad zum Bild des ersten Frames.
      • IMAGE_MIME_TYPE: Der MIME-Typ des Eingabebilds. Nur eines der folgenden Elemente:
        • image/jpeg
        • image/png
      • PATH_TO_LAST_FRAME_IMAGE: Der Cloud Storage-Pfad zum Bild des letzten Frames.
      • OUTPUT_STORAGE_URI: Optional: Der Cloud Storage-Bucket, in dem die Ausgabevideos gespeichert werden sollen. Wenn nicht angegeben, werden die Videobyte in der Antwort zurückgegeben. Beispiel: gs://video-bucket/output/
      • RESPONSE_COUNT: Die Anzahl der Videodateien, die Sie generieren möchten. Zulässige Ganzzahlwerte: 1–4.
      • DURATION: Die Länge der Videodateien, die Sie generieren möchten. Zulässige Ganzzahlwerte: 5–8.
      • 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",
          "sampleCount": RESPONSE_COUNT,
          "seed": SEED_NUMBER
        }
        • ASPECT_RATIO: String. Optional. Definiert das Seitenverhältnis der generierten Videos. Werte: 16:9 (Standard, Querformat) oder 9:16 (Hochformat).
        • NEGATIVE_PROMPT: String. Optional. Ein Textstring, der beschreibt, was das Modell nicht generieren soll.
        • PERSON_SAFETY_SETTING: String. Optional. Die Sicherheitseinstellung, die bestimmt, ob die Generierung von Personen oder Gesichtern zulässig ist. Werte:
          • allow_adult (Standardwert): Es dürfen nur Erwachsene generiert werden.
          • disallow: Personen oder Gesichter in Bildern nicht zulassen.
        • RESPONSE_COUNT: int. Optional. Die Anzahl der angeforderten Ausgabebilder. Werte: 14.
        • SEED_NUMBER: uint32. Optional. Eine Zahl, die Sie einer Anfrage hinzufügen, um generierte Videos deterministisch zu machen. Wenn Sie eine Quell-Nummer in Ihrer Anfrage angeben, ohne andere Parameter zu ändern, wird das Modell angewiesen, dieselben Videos zu erstellen. Werte: 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-001:predictLongRunning

      JSON-Text der Anfrage:

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

      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-001: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-001: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 abzurufen.
      {
        "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. Verfügbare Werte:
        • veo-2.0-generate-001 (GA)
        • veo-3.0-generate-preview (Vorschau)
      • 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