Videos aus einem Bild generieren

Mit Veo in Vertex AI können Sie neue Videos aus einem Bild- und Text-Prompt generieren. 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.

    Videos aus einem Bild generieren

    Beispieleingabe Beispielausgabe:
    1. Eingabebild1
      Eingabe-PNG-Datei eines gehäkelten Elefanten
    2. Text-Prompt: Das Elefantenbaby bewegt sich natürlich.

    Ausgabevideo eines gehäkelten Elefanten

    1 Mit Imagen in Vertex AI generiertes Bild auf Grundlage des Prompts: Ein gehäkelter Elefant mit aufwendigen Mustern, der in der Savanne läuft

    Sie können neue Videos nur mit einem Bild als Eingabe oder mit einem Bild und beschreibendem Text als Eingaben generieren. Die folgenden Beispiele zeigen grundlegende Anleitungen zum Generieren von Videos aus Bildern und Text.

    Console

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

      Media Studio

    2. Klicken Sie auf Video.

    3. Optional: Konfigurieren Sie im Bereich Einstellungen die folgenden Einstellungen:

      • Modell: Wählen Sie ein Modell aus den verfügbaren Optionen 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 von Ausgabedateien zu erstellen oder auszuwählen.

    4. Optional: Wählen Sie im Bereich Sicherheit eine der folgenden Einstellungen für die Personengenerierung aus:

      • Zulassen (nur Erwachsene): Standardwert. Nur erwachsene Personen oder Gesichter generieren. Es dürfen keine Bilder von Jugendlichen oder Kindern oder Gesichter von Jugendlichen oder Kindern generiert werden.

      • Nicht zulassen: Es werden keine Personen oder Gesichter generiert.

    5. Optional: Geben Sie im Abschnitt Erweiterte Optionen einen Seed-Wert ein, um die Videogenerierung zu randomisieren.

    6. Klicken Sie im Feld Prompt eingeben auf Hochladen.

    7. Wählen Sie ein lokales Bild zum Hochladen aus und klicken Sie auf Auswählen.

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

    9. Klicken Sie auf Erstellen.

    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.
      • MODEL_ID: Die zu verwendende Modell-ID. Verfügbare Werte:
        • veo-2.0-generate-001 (GA)
        • veo-3.0-generate-preview (Vorschau)
      • TEXT_PROMPT: Der Text-Prompt, der zur Steuerung der Videogenerierung verwendet wird.
      • INPUT_IMAGE: Ein Base64-codierter String aus Byte, der das Eingabebild darstellt. Um eine gute Qualität zu gewährleisten, sollte das Eingabebild mindestens 720p (1280 × 720 Pixel) haben und ein Seitenverhältnis von 16:9 oder 9:16 aufweisen. Bilder mit anderen Seitenverhältnissen oder Größen können beim Hochladen in der Größe angepasst oder mittig zugeschnitten werden.
      • MIME_TYPE: Der MIME-Typ des Eingabebilds. Es werden nur Bilder mit den folgenden MIME-Typen unterstützt: image/jpeg oder image/png.
      • 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/MODEL_ID:predictLongRunning

      JSON-Text der Anfrage:

      {
        "instances": [
          {
            "prompt": "TEXT_PROMPT",
            "image": {
              "bytesBase64Encoded": "INPUT_IMAGE",
              "mimeType": "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/MODEL_ID: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/MODEL_ID: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/MODEL_ID/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.

    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-3.0-generate-preview",
        image=Image(
            gcs_uri="gs://cloud-samples-data/generative-ai/image/flowers.png",
            mime_type="image/png",
        ),
        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

    Nächste Schritte