Modificare i video

Puoi utilizzare Gemini Omni Flash per modificare i video utilizzando la Google Cloud console o l'API Agent Platform.

I seguenti modelli supportano la modifica dei video:

Fai clic per espandere i modelli supportati

Per informazioni su come scrivere prompt di testo efficaci per la generazione di video, consulta la guida ai prompt per la generazione di video.

Prova Gemini Omni Flash in un Colab

Prima di iniziare

  1. Accedi al tuo Google Cloud account. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud 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

  3. Enable the Agent Platform API.

    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

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

  5. Enable the Agent Platform API.

    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

  6. Configura l'autenticazione per il tuo ambiente.

    Seleziona la scheda relativa alla modalità di utilizzo degli esempi in questa pagina:

    Console

    Quando utilizzi la Google Cloud console per accedere a Google Cloud servizi e API, non devi configurare l'autenticazione.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI.

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticati per usare REST nella Google Cloud documentazione sull'autenticazione di.

Modificare i video utilizzando Gemini Omni Flash

Per modificare i video utilizzando Gemini Omni Flash:

REST

La generazione di video può richiedere più di un minuto. Per generare un video da scaricare immediatamente dopo il completamento, utilizza una richiesta sincrona. Per generare un video che puoi scaricare in un secondo momento, invia una richiesta asincrona impostando il parametro background su true. Le richieste asincrone vengono conservate per un massimo di 14 giorni.

Per ulteriori informazioni sull'utilizzo dell'API Gemini Omni Flash, consulta l' API Interactions.

Richiesta sincrona

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: una stringa che rappresenta l' Google Cloud ID progetto.
  • MODEL_ID: una stringa che rappresenta l'ID modello da utilizzare. I valori accettati sono:
    • "gemini-omni-flash-preview"
    • "gemini-omni-1.1-flash-preview"
  • TEXT_PROMPT: il prompt testuale utilizzato per guidare la generazione di video.
  • CLOUD_STORAGE_VIDEO_URI: una stringa che rappresenta il bucket Cloud Storage contenente il video di input. Ad esempio: "gs://video-bucket/input/".
  • VIDEO_MIME: una stringa che rappresenta un tipo MIME video. I valori accettati sono:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • OUTPUT_RESOLUTION:

    (Facoltativo) Una stringa che rappresenta la risoluzione di output del video. Se non viene fornita, l'output predefinito è 720p.

    gemini-omni-1.1-flash-preview supporta i seguenti valori:

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

    gemini-omni-flash-preview supporta solo "720p".

  • CLOUD_STORAGE_OUTPUT_URI: (facoltativo) una stringa che rappresenta il bucket Cloud Storage in cui archiviare i video di output. Se non viene fornita, i byte video vengono restituiti nella risposta. Ad esempio: "gs://video-bucket/output/".

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "model": "MODEL_ID",
  "input": [
    {
      "type": "text",
      "text": "TEXT_PROMPT"
    },
    {
      "type": "video",
      "uri": "CLOUD_STORAGE_VIDEO_URI",
      "mime_type": "VIDEO_MIME"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "output": "OUTPUT_RESOLUTION",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "edit"
    }
  }
}

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, e quindi esegui il comando seguente:

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

Salva il corpo della richiesta in un file denominato request.json, e quindi esegui il comando seguente:

$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
La risposta contiene un'interazione che include i pensieri del modello e un video di output.
{
  "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",
}

Richiesta asincrona

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: una stringa che rappresenta l' Google Cloud ID progetto.
  • MODEL_ID: una stringa che rappresenta l'ID modello da utilizzare. I valori accettati sono:
    • "gemini-omni-1.1-flash-preview"
    • "gemini-omni-flash-preview"
  • TEXT_PROMPT: il prompt testuale utilizzato per guidare la generazione di video.
  • CLOUD_STORAGE_VIDEO_URI: una stringa che rappresenta il bucket Cloud Storage contenente il video di input. Ad esempio: "gs://video-bucket/input/".
  • VIDEO_MIME: una stringa che rappresenta un tipo MIME video. I valori accettati sono:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • OUTPUT_RESOLUTION:

    (Facoltativo) Una stringa che rappresenta la risoluzione di output del video. Se non viene fornita, l'output predefinito è 720p.

    gemini-omni-1.1-flash-preview supporta i seguenti valori:

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

    gemini-omni-flash-preview supporta solo "720p".

  • CLOUD_STORAGE_OUTPUT_URI: (facoltativo) una stringa che rappresenta il bucket Cloud Storage in cui archiviare i video di output. Se non viene fornita, i byte video vengono restituiti nella risposta. Ad esempio: "gs://video-bucket/output/".

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "model": "MODEL_ID",
  "input": [
    {
      "background": true,
      "type": "text",
      "text": "TEXT_PROMPT"
    },
    {
      "type": "video",
      "uri": "CLOUD_STORAGE_VIDEO_URI",
      "mime_type": "VIDEO_MIME"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "resolution": "OUTPUT_RESOLUTION",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "edit"
    }
  }
}

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, e quindi esegui il comando seguente:

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

Salva il corpo della richiesta in un file denominato request.json, e quindi esegui il comando seguente:

$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
La risposta contiene un ID interazione, che utilizzerai per ottenere il video generato.
{
  "id":"INTERACTION_ID",
  "status":"in_progress",
  "object":"interaction"
}
In un secondo momento, utilizza INTERACTION_ID per ottenere il video generato:

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: una stringa che rappresenta l' Google Cloud ID progetto.
  • INTERACTION_ID: l'ID interazione della richiesta asincrona.

Metodo HTTP e URL:

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

Per inviare la richiesta, scegli una di queste opzioni:

curl

Esegui questo comando:

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID"

PowerShell

Esegui questo comando:

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

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID" | Select-Object -Expand Content
La risposta ha un formato simile al seguente:
{
  "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",
}

Passaggi successivi