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 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-Notebook testen

Zugriff anfordern: Experimentelle Funktionen

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,
      // Optional. An image to guide video generation.
      "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
      }
    }
  ],
  "parameters": {
    "aspectRatio": string,
    "negativePrompt": string,
    "personGeneration": string,
    "sampleCount": integer,
    "seed": uint32,
    "storageUri": string,
    "durationSeconds": integer,
    "enhancePrompt": boolean
  }
}'

Verwenden Sie die folgenden Parameter für das Veo-Modell. Weitere Informationen finden Sie unter Mit Veo Videos mit Text- und Bildprompts erstellen.

Parameter

prompt

string

Erforderlich für die Funktion „Text in Video“.
Optional, wenn ein Prompt für ein Eingabebild angegeben wird (Bild zu Video).

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

  • Eine rasante Fahrt durch eine belebte dystopische Stadt mit hellen Neonschildern, fliegenden Autos und Nebel, Nacht, Lensflare, volumetrischer Beleuchtung
  • Ein Neon-Hologramm eines Autos, das mit Lichtgeschwindigkeit fährt, cinematisch, unglaubliche Details, volumetrische Beleuchtung
  • Viele gepunktete Quallen, die unter Wasser pulsieren. Ihre Körper sind transparent und leuchten im tiefen Ozean.
  • Extreme Nahaufnahme mit geringer Schärfentiefe einer Pfütze in einer Straße, die eine belebte futuristische Stadt in Tokio mit hellen Neonschildern widerspiegelt, Nacht, Lensflare
  • Zeitraffer der Nordlichter, die über den arktischen Himmel tanzen, funkelnde Sterne, schneebedeckte Landschaft
  • Ein einsamer Cowboy reitet bei einem wunderschönen Sonnenuntergang mit weichem Licht und warmen Farben auf seinem Pferd über eine offene Ebene.

image

string

Erforderlich für die Funktion „Bild in Video“.
Optional, wenn ein Textprompt angegeben wird (Text-zu-Video).

Ein Eingabebild zur Steuerung der Videogenerierung. Wir empfehlen ein Bild mit 1280 x 720 Pixeln oder 720 x 1280 Pixeln.

Eines der folgenden Betriebssysteme:

  • Ein Base64-codierter Bild-Bytestring
  • Eine Cloud Storage-Bucket-URI

Wenn das Seitenverhältnis des Bildes abweicht, wird es mit einem Tool zum Zentrieren zugeschnitten.

Wenn das Seitenverhältnis des Bildes gleich bleibt, die Auflösung aber größer ist, wird die Größe des Bildes angepasst.

durationSeconds

integer

Erforderlich. Die Länge der Videodateien, die Sie generieren möchten. Zulässige Ganzzahlwerte sind 58. Der Standardwert ist 8.

negativePrompt

string

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

  • Deckenbeleuchtung, grelle Farben
  • Personen, Tiere
  • Mehrere Autos, Wind
enhancePrompt

boolean

Optional. Mit Gemini können Sie Ihre Prompts optimieren. Zulässige Werte sind true oder false. Der Standardwert ist true.

seed

uint32

Optional. Eine Zahl, die Sie angeben können, um generierte Videos deterministisch zu machen. Wenn Sie einer Anfrage eine Quell-Nummer hinzufügen, ohne andere Parameter zu ändern, werden vom Modell immer dieselben Videos erstellt.

Der zulässige Bereich ist 04,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 in der Antwort Base64-codierte Videobytes zurückgegeben.

sampleCount

int

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

aspectRatio

string

Optional. Definiert das Seitenverhältnis des generierten Videos. Eine der folgenden Optionen:

  • 16:9 (Standard, Querformat)
  • 9:16 (Hochformat)

personGeneration

string

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

  • allow_adult (Standardwert): Es dürfen nur Erwachsene generiert werden.
  • dont_allow: Personen oder Gesichter in Bildern nicht zulassen
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.

Beispielanfrage

Mit den folgenden Anfragen kannst du eine Text-zu-Video- oder eine Bild-zu-Video-Anfrage senden:

Anfrage zur 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 (GA-Zulassungsliste)
    • veo-3.0-generate-preview (Vorschau)
  • TEXT_PROMPT: Der Text-Prompt, der die Videogenerierung steuert.
  • OUTPUT_STORAGE_URI: Optional: Der Cloud Storage-Bucket, in dem die Ausgabevideos gespeichert werden sollen. Wenn keine Angabe gemacht wird, werden Videobytes 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

    Verwenden Sie je nach Anwendungsfall die folgenden optionalen Variablen. Fügen Sie einige oder alle der folgenden Parameter in das "parameters": {}-Objekt ein.

    "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 Erstellung 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 generierte Videos deterministisch macht. Wenn Sie eine Quell-Nummer in Ihrer Anfrage angeben, ohne andere Parameter zu ändern, werden mit dem Modell immer wieder dieselben Videos erstellt. 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"
}

Anfrage zur Generierung von Videos aus Bildern

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-Zulassungsliste)
    • veo-3.0-generate-preview (Vorschau)
  • TEXT_PROMPT: Der Text-Prompt, der die Videogenerierung steuert.
  • INPUT_IMAGE: Base64-codierter Byte-String, der das Eingabebild darstellt. Für eine gute Qualität sollte das Eingabebild eine Auflösung von mindestens 720p (1.280 × 720 Pixel) und ein Seitenverhältnis von 16:9 oder 9:16 haben. Bilder mit anderen Seitenverhältnissen oder Größen können während des Uploads zugeschnitten oder zentriert werden.
  • MIME_TYPE: Der MIME-Typ des Eingabebilds. Es werden nur Bilder der 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 keine Angabe gemacht wird, werden Video-Byte 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

    Verwenden Sie je nach Anwendungsfall die folgenden optionalen Variablen. Fügen Sie einige oder alle der folgenden Parameter in das "parameters": {}-Objekt ein.

    "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 Erstellung 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 generierte Videos deterministisch macht. Wenn Sie eine Quell-Nummer in Ihrer Anfrage angeben, ohne andere Parameter zu ändern, werden mit dem Modell immer wieder dieselben Videos erstellt. 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. Verfügbare Werte:
    • veo-2.0-generate-001 (GA-Zulassungsliste)
    • veo-3.0-generate-preview (Vorschau)
  • OPERATION_ID: Die eindeutige Vorgangs-ID, die in der ursprünglichen Anfrage zum Generieren eines 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, z. B. ob er noch läuft oder abgeschlossen ist.

Antworttext (Videoanfrage generieren)

Wenn Sie eine Anfrage vom Typ „Text in Video“ oder „Bild in Video“ senden, erhalten Sie die folgende Antwort:

{
  "name": string
}
Antwortelement Beschreibung
name Der vollständige Name des Vorgangs mit langer Ausführungszeit, der nach dem Senden einer Anfrage zur Videogenerierung beginnt.

Beispielantwort (Videoanfrage generieren)

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

Antworttext (Abfrage eines Vorgangs mit langer Ausführungszeit)

Wenn du den Status des lang andauernden Vorgangs zur Generierung des Originalvideos abfragst, wird die folgende Antwort zurückgegeben:

{
   "name": string,
   "done": boolean,
   "response":{
      "@type":"type.googleapis.com/cloud.ai.large_models.vision.GenerateVideoResponse",
      "generatedSamples":[
         {
            "video":
            {
               "uri": string,
               "encoding": string
            }
         },
         {
            "video":
            {
               "uri": string,
               "encoding": string
            }
         },
         {
            "video":
            {
               "uri": string,
               "encoding": string
            }
         },
         {
            "video":
            {
               "uri": string,
               "encoding": string
            }
         },
      ]
   }
}
Antwortelement Beschreibung
name Der vollständige Name des Vorgangs mit langer Ausführungszeit, der nach dem Senden einer Anfrage zur Videogenerierung beginnt.
done Ein boolescher Wert, der angibt, ob der Vorgang abgeschlossen ist.
response Der Antworttext des Vorgangs mit langer Ausführungszeit.
generatedSamples Ein Array der generierten Video-Beispielobjekte.
video Das generierte Video.
uri Der Cloud Storage-URI des generierten Videos.
encoding Der Videocodierungstyp.

Beispielantwort (Abfrage eines lang laufenden Vorgangs)

{
   "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",
      "generatedSamples":[
         {
            "video":{
               "uri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_0.mp4",
               "encoding":"video/mp4"
            }
         },
         {
            "video":{
               "uri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_1.mp4",
               "encoding":"video/mp4"
            }
         },
         {
            "video":{
               "uri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_2.mp4",
               "encoding":"video/mp4"
            }
         },
         {
            "video":{
               "uri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_3.mp4",
               "encoding":"video/mp4"
            }
         }
      ]
   }
}

Weitere Informationen

Nächste Schritte