Veo in der Vertex AI API

Veo ist der Name des Modells, das die Videogenerierung unterstützt. Veo generiert ein Video aus einem von Ihnen bereitgestellten Text- oder Bild-Prompt. Weitere Informationen zu Veo finden Sie unter Veo-Videoerstellung – Übersicht.

Weitere Informationen zu diesem Modell finden Sie in der Console auf der Video Generation-Modellkarte in Model Garden.

Veo in Vertex AI (Vertex AI Studio) ausprobieren

Veo in einem Colab ausprobieren

Unterstützte Modelle

Die Veo API unterstützt die folgenden Modelle:

HTTP-Anfrage

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:predictLongRunning \

-d '{
  "instances": [
    {
      "prompt": string,
      "image": {
        // Union field can be only one of the following:
        "bytesBase64Encoded": string,
        "gcsUri": string,
        // End of list of possible types for union field.
        "mimeType": string
      },
      "lastFrame": {
        // Union field can be only one of the following:
        "bytesBase64Encoded": string,
        "gcsUri": string,
        // End of list of possible types for union field.
        "mimeType": string
      },
      "video": {
        // Union field can be only one of the following:
        "bytesBase64Encoded": string,
        "gcsUri": string,
        // End of list of possible types for union field.
        "mimeType": string
      }
    }
  ],
  "parameters": {
    "aspectRatio": string,
    "durationSeconds": integer,
    "enhancePrompt": boolean,
    "generateAudio": boolean,
    "negativePrompt": string,
    "personGeneration": string,
    "resolution": string, // Veo 3 models only
    "sampleCount": integer,
    "seed": uint32,
    "storageUri": string
  }
}'
Instanzen

prompt

string

Für die Funktion „Text zu Video“ erforderlich.
 Optional, wenn ein Eingabe-Bild-Prompt angegeben wird (Bild-zu-Video).

Ein Textstring, der die ersten acht Sekunden des Videos beschreibt. Zum Beispiel:

  • Eine schnelle Kamerafahrt durch eine geschäftige dystopische Stadt mit hellen Neonschildern, fliegenden Autos und Nebel, Nacht, Lens Flare, volumetrischer Beleuchtung
  • Ein Neonhologramm eines Autos, das mit Höchstgeschwindigkeit fährt, Lichtgeschwindigkeit, cinematisch, unglaubliche Details, volumetrische Beleuchtung
  • Viele gepunktete Quallen pulsieren unter Wasser. Ihre Körper sind durchsichtig und leuchten im tiefen Ozean.
  • Extremes Close-up mit geringer Schärfentiefe einer Pfütze auf einer Straße, die eine belebte, futuristische Stadt Tokio mit hellen Neonschildern bei Nacht und Lens Flare widerspiegelt
  • Zeitrafferaufnahme von Nordlichtern, die über den arktischen Himmel tanzen, Sterne, die funkeln, schneebedeckte Landschaft
  • Ein einsamer Cowboy reitet bei einem wunderschönen Sonnenuntergang mit seinem Pferd über eine offene Ebene, weiches Licht, warme Farben

Union-Feld image.

Optional. Ein Bild, das als Grundlage für die Videogenerierung dient. Es kann entweder ein bytesBase64Encoded-String sein, der ein Bild codiert, oder ein gcsUri-String-URI zu einem Cloud Storage-Bucket-Speicherort.

Die Funktion „Bild zu Video“ wird von den folgenden Modellen unterstützt:

  • veo-2.0-generate-001
  • veo-3.0-generate-preview

Union-Feld lastFrame.

Optional. Ein Bild des ersten Frames eines Videos, um den Zwischenraum zu füllen. lastFrame kann entweder ein bytesBase64Encoded-String sein, der ein Bild codiert, oder ein gcsUri-String-URI zu einem Cloud Storage-Bucket-Speicherort.

lastFrame wird nur von veo-2.0-generate-001 unterstützt.

Union-Feld video.

Optional. Ein von Veo generiertes Video, das verlängert werden soll. Dabei kann es sich entweder um einen bytesBase64Encoded-String, der ein Video codiert, oder um einen gcsUri-String-URI für einen Cloud Storage-Bucket-Standort handeln.

video wird nur von veo-2.0-generate-001 unterstützt.

bytesBase64Encoded

string

Ein Base64-codierter String einer Bild- oder Videodatei in Bytes.

gcsUri

string

Ein String-URI für einen Cloud Storage-Bucket-Speicherort.

mimeType

string

Erforderlich für die folgenden Objekte:

Gibt den MIME-Typ eines Videos oder Bildes an.

Für Bilder werden die folgenden MIME-Typen akzeptiert:

  • image/jpeg
  • image/png

Für Videos werden die folgenden MIME-Typen akzeptiert:

  • video/mp4
Parameter
aspectRatio

string

Optional. Gibt das Seitenverhältnis der generierten Videos an. Folgende Werte sind zulässig:

  • 16:9 (Standardwert)
  • 9:16 (wird von veo-3.0-generate-preview nicht unterstützt)
durationSeconds

integer

Pflichtangabe. Die Länge der Videodateien, die Sie generieren möchten.

Im Folgenden finden Sie die zulässigen Werte für die einzelnen Modelle:

  • veo-2.0-generate-001: 58. Der Standardwert ist 8.
  • veo-3.0-generate-preview: 8.
enhancePrompt

boolean

Optional. Gemini verwenden, um Prompts zu optimieren Zulässige Werte sind true oder false. Der Standardwert ist true.

generateAudio

boolean

Erforderlich für veo-3.0-generate-preview. Audio für das Video generieren Zulässige Werte sind true oder false.

generateAudio wird von veo-2.0-generate-001 nicht unterstützt.

negativePrompt

string

Optional. Ein Textstring, der beschreibt, was das Modell nicht generieren soll. Beispiel:

  • Deckenbeleuchtung, helle Farben
  • Personen, Tiere
  • mehrere Autos, Wind
personGeneration

string

Optional. Die Sicherheitseinstellung, die bestimmt, ob die Generierung von Personen oder Gesichtern zulässig ist. Eines der folgenden Betriebssysteme:

  • allow_adult (Standardwert): Es dürfen nur Erwachsene generiert werden.
  • dont_allow: Das Einfügen von Personen/Gesichtern in Bilder wird nicht zugelassen.
resolution

string

Optional. Nur Veo 3-Modelle: Die Auflösung des generierten Videos. Zulässige Werte sind 720p (Standard) oder 1080p.

sampleCount

int

Optional. Die Anzahl der angeforderten Ausgabevideos. Zulässige Werte sind 14.

seed

uint32

Optional. Eine Zahl, die Sie einer Anfrage hinzufügen, um generierte Videos deterministisch zu machen. Wenn Sie Ihrer Anfrage eine Quell-Nummer hinzufügen, ohne andere Parameter zu ändern, generiert das Modell dieselben Videos.

Der akzeptierte Bereich liegt zwischen 0 und 4,294,967,295.

storageUri

string

Optional. Ein Cloud Storage-Bucket-URI zum Speichern des Ausgabevideos im Format gs://BUCKET_NAME/SUBDIRECTORY. Wenn kein Cloud Storage-Bucket angegeben wird, werden Base64-codierte Videobytes in der Antwort zurückgegeben.

Beispielanfrage

Verwenden Sie die folgenden Anfragen, um eine Text-zu-Video-Anfrage oder eine Bild-zu-Video-Anfrage zu senden:

Antrag auf Text-zu-Video-Generierung

REST

Senden Sie zum Testen eines Text-Prompts mit der Vertex AI Veo API eine POST-Anfrage an den Endpunkt des Publisher-Modells.

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
    • veo-3.0-generate-001
    • veo-3.0-fast-generate-001
    • veo-3.0-generate-preview (Vorschau)
    • veo-3.0-fast-generate-preview (Vorschau)
  • TEXT_PROMPT: Der Text-Prompt, der zur Steuerung der Videogenerierung verwendet wird.
  • OUTPUT_STORAGE_URI: Optional: Der Cloud Storage-Bucket, in dem die Ausgabevideos gespeichert werden sollen. Wenn nicht angegeben, werden 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",
      // "resolution": RESOLUTION, // Veo 3 models only
      "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.
    • RESOLUTION: String. Optional. Nur Veo 3-Modelle: Die Auflösung des generierten Videos. Werte: 720p (Standard) oder 1080p.
    • 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"
    }
  ],
  "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 abzufragen.
{
  "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
}

Antrag auf Bild-zu-Video-Generierung

REST

Senden Sie zum Testen eines Text-Prompts mit der Vertex AI Veo API eine POST-Anfrage an den Endpunkt des Publisher-Modells.

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 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",
      // "resolution": RESOLUTION, // Veo 3 models only
      "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.
    • RESOLUTION: String. Optional. Nur Veo 3-Modelle: Die Auflösung des generierten Videos. Werte: 720p (Standard) oder 1080p.
    • 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 abzufragen.
{
  "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
}

Status des Vorgangs mit langer Ausführungszeit für die Videogenerierung abfragen

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

REST

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.

Antworttext (Anfrage zum Generieren von Videos)

Wenn Sie eine Text-zu-Video- oder Bild-zu-Video-Anfrage senden, erhalten Sie die folgende Antwort:

{
  "name": string
}
Antwortelement Beschreibung
name Der vollständige Vorgangsname des Vorgangs mit langer Ausführungszeit, der beginnt, nachdem eine Anfrage zur Videogenerierung gesendet wurde.

Beispielantwort (Anfrage zum Generieren von Videos)

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

Antworttext (Vorgang mit langer Ausführungszeit abfragen)

Wenn Sie den Status des ursprünglichen Vorgangs mit langer Ausführungszeit für die Videogenerierung abrufen, erhalten Sie eine Antwort wie die folgende:

{
   "name": string,
   "done": boolean,
   "response":{
      "@type":"type.googleapis.com/cloud.ai.large_models.vision.GenerateVideoResponse",
      "raiMediaFilteredCount": integer,
      "videos":[
         {
           "gcsUri": string,
           "mimeType": string
         },
         {
           "gcsUri": string,
           "mimeType": string
         },
         {
           "gcsUri": string,
           "mimeType": string
         },
         {
           "gcsUri": string,
           "mimeType": string
         },
      ]
   }
}
Antwortelement Beschreibung
bytesBase64Encoded Ein Base64-codierter String, der das Videoobjekt darstellt.
done Ein boolescher Wert, der angibt, ob der Vorgang abgeschlossen ist.
encoding Der Videocodierungstyp.
gcsUri Der Cloud Storage-URI des generierten Videos.
name Der vollständige Vorgangsname des Vorgangs mit langer Ausführungszeit, der beginnt, nachdem eine Anfrage zur Videogenerierung gesendet wurde.
raiMediaFilteredCount Gibt die Anzahl der Videos zurück, die von Veo aufgrund von Richtlinien für verantwortungsbewusste KI gefiltert wurden. Wenn keine Videos gefiltert werden, ist die zurückgegebene Anzahl 0.
raiMediaFilteredReasons Hier werden die Gründe für alle aufgrund von Richtlinien für verantwortungsbewusste KI herausgefilterten Veo-Videos aufgeführt. Weitere Informationen finden Sie unter Codekategorien für Sicherheitsfilter.
response Der Antworttext des Vorgangs mit langer Ausführungszeit.
video Das generierte Video.

Beispielantwort (lange laufenden Vorgang abfragen)

{
   "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/OPERATION_ID",
   "done":true,
   "response":{
      "@type":"type.googleapis.com/cloud.ai.large_models.vision.GenerateVideoResponse",
      "raiMediaFilteredCount": 0,
      "videos":[
        {
          "gcsUri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_0.mp4",
          "mimeType":"video/mp4"
        },
        {
          "gcsUri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_1.mp4",
          "mimeType":"video/mp4"
        },
        {
          "gcsUri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_2.mp4",
          "mimeType":"video/mp4"
        },
        {
          "gcsUri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_3.mp4",
          "mimeType":"video/mp4"
        }
      ]
   }
}

Weitere Informationen

Nächste Schritte