Videos aus Text-Prompts generieren

Mit Gemini Omni Flash oder Veo auf der Gemini Enterprise Agent Platform können Sie neue Videos aus einem Text-Prompt generieren. Zu den unterstützten Schnittstellen gehören die Cloud de Confiance Console und die Agent Platform API.

Die folgenden Modelle unterstützen das Generieren von Videos aus einem Text-Prompt:

Gemini Omni Flash

Klicken Sie, um unterstützte Modelle zu maximieren.

Veo

Klicken, um unterstützte Modelle einzublenden

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

Gemini Omni Flash in einem Colab ausprobieren

Hinweis

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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

  2. Enable the Agent Platform API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

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

    Wählen Sie den Tab für die gewünschte Verwendung der Beispiele auf dieser Seite aus:

    Console

    Wenn Sie über die Cloud de Confiance Console auf Dienste und APIs von Cloud de Confiance by S3NS zugreifen, müssen Sie die Authentifizierung nicht 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 und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an.

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

Videos mit Gemini Omni Flash generieren

Unten finden Sie Beispiele dafür, wie Sie Videos mit Gemini Omni Flash generieren können. Diese Beispiele konzentrieren sich zwar auf Text-zu-Video, können aber auch auf andere Anwendungsfälle ausgeweitet werden, z. B. die Bereitstellung eines Startbilds, um die Generierung zu steuern.

REST

Die Videogenerierung kann mehr als eine Minute dauern. Je nach Workflow können Sie zwischen mehreren Interaktionsmodi wählen:

  • Synchron: zustandslos: Generieren Sie ein Video in einer einzigen Anfrage, ohne den Interaktionsstatus auf dem Server beizubehalten.
  • Synchron: statusbehaftet: Setzen Sie store auf true, um den Interaktionsstatus beizubehalten. So können Sie das Ergebnis später abrufen oder die Interaktions-ID für die Videobearbeitung in mehreren Schritten verwenden.
  • Synchron: Stateful-Streaming: Setzen Sie sowohl store als auch stream auf true, um die Gedanken des Modells inkrementell zu empfangen, sobald sie generiert werden, gefolgt vom Ausgabevideo.
  • Asynchron: Setzen Sie background auf true, um die Videogenerierung im Hintergrund auszuführen und das Ergebnis später über die Interaktions-ID abzurufen.

Gespeicherte und asynchrone Interaktionen werden bis zu 7 Tage lang aufbewahrt.

Weitere Informationen zur Verwendung der Gemini Omni Flash API finden Sie unter Interactions API.

Synchron: zustandslos

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ein String, der Ihre Cloud de Confiance by S3NS -Projekt-ID darstellt.
  • MODEL_ID: Ein String, der die zu verwendende Modell-ID darstellt. Folgende Werte sind zulässig:
    • "gemini-omni-1.1-flash-preview"
    • "gemini-omni-flash-preview"
  • TEXT_PROMPT: Der Text-Prompt, der zur Steuerung der Videogenerierung verwendet wird.
  • CLOUD_STORAGE_OUTPUT_URI: Optional: Ein String, der den Cloud Storage-Bucket darstellt, in dem die Ausgabevideos gespeichert werden sollen. Wenn nicht angegeben, werden Videobytes in der Antwort zurückgegeben. Beispiel: "gs://video-bucket/output/"
  • ASPECT_RATIO: Optional: Ein String, der das erwartete Seitenverhältnis des Ausgabevideos darstellt. Wenn kein Seitenverhältnis angegeben wird, wird es aus dem Prompt abgeleitet. Folgende Werte sind zulässig:
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION:

    Optional: Ein String, der die Auflösung der Videoausgabe darstellt. Wenn nichts angegeben ist, wird standardmäßig 720p verwendet.

    gemini-omni-1.1-flash-preview unterstützt die folgenden Werte:

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    gemini-omni-flash-preview unterstützt nur "720p".

  • DURATION: Ein String, der die Länge der generierten Videodateien angibt. Zulässige Strings sind Ganzzahlen zwischen 3 und 10, gefolgt von „s“ für Sekunden. Beispiel: "10s"

HTTP-Methode und URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

JSON-Text der Anfrage:

{
  "model": "MODEL_ID",
  "input": [
    {
      "type": "text",
      "text": "TEXT_PROMPT"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "text_to_video"
    }
  }
}

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 TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

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

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
Die Antwort enthält eine Interaktion, die die Gedanken des Modells und ein Ausgabevideo umfasst.
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type":"thought",
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "uri":"gs://some/output_path/123.mp4",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction"
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}

Synchron: zustandsbehaftet

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ein String, der Ihre Cloud de Confiance by S3NS -Projekt-ID darstellt.
  • MODEL_ID: Ein String, der die zu verwendende Modell-ID darstellt. Folgende Werte sind zulässig:
    • "gemini-omni-1.1-flash-preview"
  • TEXT_PROMPT: Der Text-Prompt, der zur Steuerung der Videogenerierung verwendet wird.
  • CLOUD_STORAGE_OUTPUT_URI: Optional: Ein String, der den Cloud Storage-Bucket darstellt, in dem die Ausgabevideos gespeichert werden sollen. Wenn nicht angegeben, werden Videobytes in der Antwort zurückgegeben. Beispiel: "gs://video-bucket/output/"
  • ASPECT_RATIO: Optional: Ein String, der das erwartete Seitenverhältnis des Ausgabevideos darstellt. Wenn kein Wert angegeben wird, wird das Seitenverhältnis aus dem Prompt abgeleitet. Folgende Werte sind zulässig:
    • "16:9"
    • "9:16"
  • DURATION: Ein String, der die Länge der generierten Videodateien darstellt. Zulässige Strings sind Ganzzahlen zwischen 3 und 10, gefolgt von „s“ für Sekunden. Beispiel: "10s"

HTTP-Methode und URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

JSON-Text der Anfrage:

{
  "model": "MODEL_ID",
  "background": false,
  "store": true,
  "stream": false,
  "input": [
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "TEXT_PROMPT"
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "duration": "DURATION"
    }
  ],
}

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 TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

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

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
Die Antwort enthält eine Interaktion, die die Gedanken des Modells und ein Ausgabevideo umfasst.
{
  "id":"INTERACTION_ID",
  "status":"completed",
  "usage":{
    "total_tokens":17615,
    "total_input_tokens":21,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":21
      }
    ],
    "total_output_tokens":17376,
    "output_tokens_by_modality":[
      {
        "modality":"video",
        "tokens":17376
      }
    ],
    "total_thought_tokens":218
  },
  "created":"2026-08-12T21:28:40Z",
  "updated":"2026-08-12T21:28:40Z",
  "event_id":"EVENT_ID",
  "steps":[
    {
      "signature":"...",
      "summary":[
        {
          "text":"MODEL THOUGHTS",
          "type":"text"
        },
        {
          "text":"MODEL THOUGHTS",
          "type":"text"
        }
      ],
      "type":"thought"
    },
    {
      "content":[
        {
          "mime_type":"video/mp4",
          "uri":"gs://some/output_path/123.mp4",
          "type":"video"
        }
      ],
      "type":"model_output"
    }
  ],
  "object":"interaction",
  "model":"gemini-omni-flash-preview"
}
Verwenden Sie die INTERACTION_ID, um das generierte Video abzurufen:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ein String, der Ihre Cloud de Confiance by S3NS -Projekt-ID darstellt.
  • INTERACTION_ID: Die Interaktions-ID aus der asynchronen Anfrage.

HTTP-Methode und URL:

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID"

PowerShell

Führen Sie diesen Befehl aus:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID" | Select-Object -Expand Content
Die Antwort hat ein Format, das dem folgenden ähnelt:
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "5 second, 9:16 video. Use the image as the first frame."
        },
        {
          "type": "image",
          "uri": "gs://some/path",
          "mime_type": "image/png"
        }
      ]
    },
    {
      "type":"thought"
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "data":"VIDEO DATA",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction"
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}

Synchron: Stateful Streaming

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ein String, der Ihre Cloud de Confiance by S3NS -Projekt-ID darstellt.
  • MODEL_ID: Ein String, der die zu verwendende Modell-ID darstellt. Folgende Werte sind zulässig:
    • "gemini-omni-1.1-flash-preview"
  • TEXT_PROMPT: Der Text-Prompt, der zur Steuerung der Videogenerierung verwendet wird.
  • CLOUD_STORAGE_OUTPUT_URI: Optional: Ein String, der den Cloud Storage-Bucket darstellt, in dem die Ausgabevideos gespeichert werden sollen. Wenn nicht angegeben, werden Videobytes in der Antwort zurückgegeben. Beispiel: "gs://video-bucket/output/"
  • ASPECT_RATIO: Optional: Ein String, der das erwartete Seitenverhältnis des Ausgabevideos darstellt. Wenn kein Wert angegeben wird, wird das Seitenverhältnis aus dem Prompt abgeleitet. Folgende Werte sind zulässig:
    • "16:9"
    • "9:16"
  • DURATION: Ein String, der die Länge der generierten Videodateien darstellt. Zulässige Strings sind Ganzzahlen zwischen 3 und 10, gefolgt von „s“ für Sekunden. Beispiel: "10s"

HTTP-Methode und URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

JSON-Text der Anfrage:

{
  "model": "MODEL_ID",
  "background": false,
  "store": true,
  "stream": true,
  "input": [
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "TEXT_PROMPT"
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "duration": "DURATION"
    }
  ],
}

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 TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

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

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
Die Antwort enthält eine Interaktion mit den Überlegungen des Modells und einem Ausgabevideo.
event: interaction.created
data: {"interaction":{"id":"INTERACTION_ID","status":"in_progress","object":"interaction","model":"gemini-omni-flash-preview"},"event_type":"interaction.created"}

event: interaction.status_update
data: {"interaction_id":"INTERACTION_ID","status":"in_progress","event_type":"interaction.status_update"}

event: step.start
data: {"index":0,"step":{"type":"thought"},"event_type":"step.start"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"signature":"...","type":"thought_signature"},"event_type":"step.delta"}

event: step.stop
data: {"index":0,"event_type":"step.stop"}

event: step.start
data: {"index":1,"step":{"type":"model_output"},"event_type":"step.start"}

event: step.delta
data: {"index":1,"delta":{"mime_type":"video/mp4","uri":"gs://some/output_path/123.mp4","type":"video"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.stop
data: {"index":1,"event_type":"step.stop"}

event: interaction.completed
data: {"interaction":{"id":"INTERACTION_ID","status":"completed","usage":{"total_tokens":17812,"total_input_tokens":21,"input_tokens_by_modality":[{"modality":"text","tokens":21}],"total_output_tokens":17376,"output_tokens_by_modality":[{"modality":"video","tokens":17376}],"total_thought_tokens":415},"created":"2026-08-12T21:26:20Z","updated":"2026-08-12T21:26:20Z","event_id":"EVENT_ID","object":"interaction","model":"gemini-omni-flash-preview"},"event_id":"EVENT_ID","event_type":"interaction.completed"}

event: done
data: [DONE]
Verwenden Sie die INTERACTION_ID mit `?stream=true`, um die gespeicherte Interaktion und das generierte Video zu streamen:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ein String, der Ihre Cloud de Confiance by S3NS -Projekt-ID darstellt.
  • INTERACTION_ID: Die Interaktions-ID aus der Anfrage.

HTTP-Methode und URL:

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true"

PowerShell

Führen Sie diesen Befehl aus:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true" | Select-Object -Expand Content
Die Antwort ist ein Stream von Server-Sent Events (SSE) in einem Format, das dem folgenden ähnelt:
event: interaction.created
data: {"interaction":{"id":"INTERACTION_ID","status":"in_progress","object":"interaction","model":"gemini-omni-flash-preview"},"event_type":"interaction.created"}

event: interaction.status_update
data: {"interaction_id":"INTERACTION_ID","status":"in_progress","event_type":"interaction.status_update"}

event: step.start
data: {"index":0,"step":{"type":"thought"},"event_type":"step.start"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"signature":"...","type":"thought_signature"},"event_type":"step.delta"}

event: step.stop
data: {"index":0,"event_type":"step.stop"}

event: step.start
data: {"index":1,"step":{"type":"model_output"},"event_type":"step.start"}

event: step.delta
data: {"index":1,"delta":{"mime_type":"video/mp4","uri":"gs://some/output_path/123.mp4","type":"video"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.stop
data: {"index":1,"event_type":"step.stop"}

event: interaction.completed
data: {"interaction":{"id":"INTERACTION_ID","status":"completed","usage":{"total_tokens":17664,"total_input_tokens":21,"input_tokens_by_modality":[{"modality":"text","tokens":21}],"total_output_tokens":17376,"output_tokens_by_modality":[{"modality":"video","tokens":17376}],"total_thought_tokens":267},"created":"2026-08-12T21:33:08Z","updated":"2026-08-12T21:33:08Z","event_id":"EVENT_ID","object":"interaction","model":"gemini-omni-flash-preview"},"event_id":"EVENT_ID","event_type":"interaction.completed"}

event: done
data: [DONE]

Asynchron

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ein String, der Ihre Cloud de Confiance by S3NS Projekt-ID darstellt.
  • MODEL_ID: Ein String, der die zu verwendende Modell-ID darstellt. Folgende Werte sind zulässig:
    • "gemini-omni-flash-preview"
    • "gemini-omni-1.1-flash-preview"
  • TEXT_PROMPT: Der Text-Prompt, der zur Steuerung der Videogenerierung verwendet wird.
  • CLOUD_STORAGE_OUTPUT_URI: Optional: Ein String, der den Cloud Storage-Bucket darstellt, in dem die Ausgabevideos gespeichert werden sollen. Wenn nicht angegeben, werden Videobytes in der Antwort zurückgegeben. Beispiel: "gs://video-bucket/output/"
  • ASPECT_RATIO: Optional: Ein String, der das erwartete Seitenverhältnis des Ausgabevideos darstellt. Wenn kein Seitenverhältnis angegeben wird, wird es aus dem Prompt abgeleitet. Folgende Werte sind zulässig:
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION:

    Optional: Ein String, der die Auflösung der Videoausgabe darstellt. Wenn nichts angegeben ist, wird standardmäßig 720p verwendet.

    gemini-omni-1.1-flash-preview unterstützt die folgenden Werte:

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    gemini-omni-flash-preview unterstützt nur "720p".

  • DURATION: Ein String, der die Länge der generierten Videodateien angibt. Zulässige Strings sind Ganzzahlen zwischen 3 und 10, gefolgt von „s“ für Sekunden. Beispiel: "10s"

HTTP-Methode und URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

JSON-Text der Anfrage:

{
  "model": "MODEL_ID",
  "input": [
    {
      "background": true,
      "type": "text",
      "text": "TEXT_PROMPT"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "output": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "text_to_video"
    }
  }
}

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 TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

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

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
Die Antwort enthält eine Interaktions-ID, mit der Sie das generierte Video abrufen können.
{
  "id":"INTERACTION_ID",
  "status":"in_progress",
  "object":"interaction"
}
Später können Sie mit der INTERACTION_ID das generierte Video abrufen:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ein String, der Ihre Cloud de Confiance by S3NS Projekt-ID darstellt.
  • INTERACTION_ID: Die Interaktions-ID aus der asynchronen Anfrage.

HTTP-Methode und URL:

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID"

PowerShell

Führen Sie diesen Befehl aus:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID" | Select-Object -Expand Content
Die Antwort hat ein Format, das dem folgenden ähnelt:
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "5 second, 9:16 video. Use the image as the first frame."
        },
        {
          "type": "image",
          "uri": "gs://some/path",
          "mime_type": "image/png"
        }
      ]
    },
    {
      "type":"thought"
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "data":"VIDEO DATA",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction"
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}

Videos mit Veo erstellen

In den folgenden Beispielen sehen Sie, wie Sie mit Veo Videos aus Text-Prompts generieren können:

Console

  1. Rufen Sie in der Cloud de Confiance Console die Seite Agent Platform > Media Studio auf.

    Media Studio

  2. Klicken Sie auf Video.

  3. Wählen Sie im Menü Aufgabe die Option Video aus Text aus.

  4. Wählen Sie im Menü Modell eine der angezeigten Optionen aus.

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

  6. Optional: Passen Sie die folgenden Parameter an:

    • Seitenverhältnis: Wählen Sie entweder 16:9 oder 9:16 aus.

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

    • Videolänge: Wähle im Menü eine Videolänge aus.

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

  7. 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 Google 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_ENTERPRISE=True

import time
from google import genai
from google.genai.types import GenerateVideosConfig

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.1-generate-001",
    prompt="a cat reading a book",
    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

Go

Go installieren oder aktualisieren

Weitere Informationen finden Sie in der SDK-Referenzdokumentation.

Legen Sie Umgebungsvariablen fest, um das Google Gen AI SDK mit Vertex AI zu verwenden:

# 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_ENTERPRISE=True

import (
	"context"
	"fmt"
	"io"
	"time"

	"google.golang.org/genai"
)

// generateVideoWithText shows how to gen video from text.
func generateVideoWithText(w io.Writer, outputGCSURI string) error {
	//outputGCSURI = "gs://your-bucket/your-prefix"
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	config := &genai.GenerateVideosConfig{
		AspectRatio:  "16:9",
		OutputGCSURI: outputGCSURI,
	}

	modelName := "veo-3.0-generate-preview"
	prompt := "a cat reading a book"
	operation, err := client.Models.GenerateVideos(ctx, modelName, prompt, nil, config)
	if err != nil {
		return fmt.Errorf("failed to start video generation: %w", err)
	}

	// Polling until the operation is done
	for !operation.Done {
		time.Sleep(15 * time.Second)
		operation, err = client.Operations.GetVideosOperation(ctx, operation, nil)
		if err != nil {
			return fmt.Errorf("failed to get operation status: %w", err)
		}
	}

	if operation.Response != nil && len(operation.Response.GeneratedVideos) > 0 {
		videoURI := operation.Response.GeneratedVideos[0].Video.URI
		fmt.Fprintln(w, videoURI)
		return nil
	}

	// Example response:
	// gs://your-bucket/your-prefix/videoURI

	return fmt.Errorf("video generation failed or returned no results")
}

Node.js

Installieren

npm install @google/genai

Weitere Informationen finden Sie in der SDK-Referenzdokumentation.

Legen Sie Umgebungsvariablen fest, um das Google Gen AI SDK mit Vertex AI zu verwenden:

# 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_ENTERPRISE=True

const {GoogleGenAI} = require('@google/genai');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION = process.env.GOOGLE_CLOUD_LOCATION || 'global';

async function generateVideo(
  outputGcsUri,
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const client = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  let operation = await client.models.generateVideos({
    model: 'veo-3.1-fast-generate-001',
    prompt: 'a cat reading a book',
    config: {
      aspectRatio: '16:9',
      outputGcsUri: outputGcsUri,
    },
  });

  while (!operation.done) {
    await new Promise(resolve => setTimeout(resolve, 15000));
    operation = await client.operations.get({operation: operation});
    console.log(operation);
  }

  if (operation.response) {
    console.log(operation.response.generatedVideos[0].video.uri);
  }
  return operation;
}

Java

Java installieren oder aktualisieren

Weitere Informationen finden Sie in der SDK-Referenzdokumentation.

Umgebungsvariablen für die Verwendung des Google 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_ENTERPRISE=True


import com.google.genai.Client;
import com.google.genai.types.GenerateVideosConfig;
import com.google.genai.types.GenerateVideosOperation;
import com.google.genai.types.GenerateVideosResponse;
import com.google.genai.types.GenerateVideosSource;
import com.google.genai.types.GeneratedVideo;
import com.google.genai.types.GetOperationConfig;
import com.google.genai.types.Video;
import java.util.concurrent.TimeUnit;

public class VideoGenWithTxt {

  public static void main(String[] args) throws InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    String modelId = "veo-3.1-generate-001";
    String outputGcsUri = "gs://your-bucket/your-prefix";
    generateContent(modelId, outputGcsUri);
  }

  // Generates a video with a text prompt.
  public static String generateContent(String modelId, String outputGcsUri)
      throws InterruptedException {
    // Client Initialization. Once created, it can be reused for multiple requests.
    try (Client client = Client.builder().location("global").vertexAI(true).build()) {

      GenerateVideosOperation operation =
          client.models.generateVideos(
              modelId,
              GenerateVideosSource.builder().prompt("a cat reading a book").build(),
              GenerateVideosConfig.builder()
                  .aspectRatio("16:9")
                  .outputGcsUri(outputGcsUri)
                  .build());

      while (!operation.done().orElse(false)) {
        TimeUnit.SECONDS.sleep(15);
        operation =
            client.operations.getVideosOperation(operation, GetOperationConfig.builder().build());
      }

      String generatedVideoUri =
          operation
              .response()
              .flatMap(GenerateVideosResponse::generatedVideos)
              .flatMap(videos -> videos.stream().findFirst())
              .flatMap(GeneratedVideo::video)
              .flatMap(Video::uri)
              .orElseThrow(
                  () ->
                      new IllegalStateException(
                          "Could not get the URI from the generated video"));

      System.out.println("Generated video URI: " + generatedVideoUri);
      // Example response:
      // Generated video URI: gs://your-bucket/your-prefix/generated-video-123.mp4
      return generatedVideoUri;
    }
  }
}

REST

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: Ein String, der Ihre Cloud de Confiance by S3NS -Projekt-ID darstellt.
    • MODEL_ID: Ein String, der die zu verwendende Modell-ID darstellt. Folgende Werte sind zulässig:
      • Veo 2: "veo-2.0-generate-001"
      • Veo 3:"veo-3.0-generate-001"
      • Veo 3:"veo-3.0-fast-generate-001"
      • Veo 3:"veo-3.0-generate-preview" (Vorabversion)
      • Veo 3"veo-3.0-fast-generate-preview" (Vorabversion)
      • Veo 3.1: "veo-3.1-generate-001"
      • Veo 3.1: "veo-3.1-fast-generate-001"
    • TEXT_PROMPT: Der Text-Prompt, der zur Steuerung der Videogenerierung verwendet wird.
    • OUTPUT_STORAGE_URI: Optional: Ein String, der den Cloud Storage-Bucket darstellt, in dem die Ausgabevideos gespeichert werden sollen. Wenn nicht angegeben, werden Videobytes in der Antwort zurückgegeben. Beispiel: "gs://video-bucket/output/".
    • RESPONSE_COUNT: Die Anzahl der zu generierenden Videodateien. Der zulässige Wertebereich ist 1–4.
    • DURATION: Eine Ganzzahl, die die Länge der generierten Videodateien darstellt. Die zulässigen Werte für die einzelnen Modelle sind:
      • Veo 2-Modelle: 5–8. Der Standardwert ist 8.
      • Veo 3-Modelle: 4, 6 oder 8. Der Standardwert ist 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: Optional: Ein Stringwert, der das Seitenverhältnis der generierten Videos beschreibt. Sie können die folgenden Werte verwenden:
        • "16:9" für Querformat
        • "9:16" im 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 die Generierung von erwachsenen Personen 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 beschreibt. Der zulässige Wertebereich ist 1–4.
      • 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 0–4294967295.

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

  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 Cloud de Confiance by S3NS 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