Usare Veo per estendere i video

Puoi utilizzare Veo su Gemini Enterprise Agent Platform per estendere i video a una durata compresa tra 1 e 30 secondi. Puoi estendere i video utilizzando la console Cloud de Confiance o l'API Agent Platform.

I seguenti modelli supportano l'estensione dei video:

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

Prima di iniziare

  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.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  3. Configura l'autenticazione per il tuo ambiente.

    Seleziona la scheda relativa a come prevedi di utilizzare i campioni in questa pagina:

    Console

    Quando utilizzi la console Cloud de Confiance per accedere ai servizi Cloud de Confiance by S3NS e alle 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, quindi accedi a gcloud CLI con la tua identità federata.

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

Limitazioni

I video di input sono soggetti alle seguenti limitazioni quando utilizzi Veo extend:

  • Il file di input deve essere MP4.
  • La durata deve essere compresa tra 1 e 30 secondi.
  • La frequenza fotogrammi deve essere di 24 frame al secondo.
  • La risoluzione deve essere una delle seguenti: 720p, 1080p o 4K.
  • Le proporzioni dei video di input possono essere 9:16 o 16:9.

I video di output sono soggetti alle seguenti limitazioni:

  • Il file di output è MP4.
  • La durata estesa è di 7 secondi.
  • La frequenza fotogrammi è di 24 frame al secondo.
  • La risoluzione può essere 720p, 1080p o 4K.
  • Le proporzioni dei video di output possono essere 9:16 o 16:9.

Estendere un video

I seguenti esempi mostrano come estendere un video di Veo:

Console

  1. Nella console Cloud de Confiance , vai alla pagina Agent Platform > Media Studio.

    Media Studio

  2. Fai clic su Video.

  3. Nel menu Attività, seleziona Estensione video.

  4. Nel menu Modello, seleziona un modello tra le opzioni visualizzate.

  5. Nella sezione Video di input, fai clic su Aggiungi.

  6. Nella casella Prompt, inserisci un prompt di testo che descriva i video da generare.

  7. (Facoltativo) Modifica i seguenti parametri:

    • Numero di risultati: regola il cursore o inserisci un valore compreso tra 1 e 4.

    • Durata del video: seleziona una durata del video dal menu.

    • Directory di output: fai clic su Sfoglia per creare o selezionare un bucket Cloud Storage in cui archiviare i file generati.

  8. Fai clic su Esegui.

Python

Installa

pip install --upgrade google-genai

Per saperne di più, consulta la documentazione di riferimento dell'SDK.

Imposta le variabili di ambiente per utilizzare SDK Google Gen AI con Vertex AI:

# 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, Video

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-preview",
    prompt="a butterfly flies in and lands on the flower",
    video=Video(
        uri="gs://cloud-samples-data/generative-ai/video/flower.mp4",
        mime_type="video/mp4",
    ),
    config=GenerateVideosConfig(
        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

REST

Per saperne di più sull'API Veo, consulta le seguenti risorse:

  1. Utilizza il seguente comando per inviare una richiesta di generazione di video. Questa richiesta avvia un'operazione a lunga esecuzione e archivia l'output in un bucket Cloud Storage specificato.

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

    • PROJECT_ID: una stringa che rappresenta il tuo Cloud de Confiance by S3NS ID progetto.
    • MODEL_ID: una stringa che rappresenta l'ID modello da utilizzare. Utilizza una delle seguenti opzioni quando specifichi un fotogramma iniziale o finale del video:
      • Veo 2: veo-2.0-generate-001
      • Veo 3: veo-3.1-generate-001
      • Veo 3: veo-3.1-fast-generate-001
    • TEXT_PROMPT: il prompt di testo utilizzato per guidare la generazione del video.
    • PATH_TO_VIDEO: una stringa che rappresenta il percorso Cloud Storage del video Veo che stai estendendo. Ad esempio: "gs://video-bucket/input/veo-video.mp4".
    • OUTPUT_STORAGE_URI: (Facoltativo) Una stringa che rappresenta il bucket Cloud Storage in cui archiviare i video di output. Se non forniti, i byte del video vengono restituiti nella risposta. Ad esempio: "gs://video-bucket/output/".
    • RESPONSE_COUNT: Il numero di file video da generare. L'intervallo di valori accettato è 1-4.
    • Parametri facoltativi aggiuntivi

      Utilizza le seguenti variabili facoltative a seconda del tuo caso d'uso. Aggiungi alcuni o tutti i seguenti parametri nell'oggetto "parameters": {}.

      "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: (Facoltativo) Un valore stringa che descrive le proporzioni dei video generati. Puoi utilizzare i seguenti valori:
        • "16:9" per l'orientamento orizzontale
        • "9:16" per la modalità verticale

        Il valore predefinito è "16:9"

      • NEGATIVE_PROMPT: (Facoltativo) un valore stringa che descrive i contenuti che vuoi impedire al modello di generare.
      • PERSON_SAFETY_SETTING: (Facoltativo) Un valore stringa che controlla l'impostazione di sicurezza per la generazione di persone o volti. Puoi utilizzare i seguenti valori:
        • "allow_adult": Consente solo la generazione di persone e volti adulti.
        • "disallow": Non genera persone o volti.

        Il valore predefinito è "allow_adult".

      • RESOLUTION: (Facoltativo) Un valore stringa che controlla la risoluzione del video generato. Supportato solo dai modelli Veo 3. Puoi utilizzare i seguenti valori:
        • "720p"
        • "1080p"
        • "4k" (solo modelli di anteprima di Veo 3.1)

        Il valore predefinito è "720p".

      • RESPONSE_COUNT: Facoltativo. Un valore intero che descrive il numero di video da generare. L'intervallo di valori accettato è 1-4.
      • SEED_NUMBER: Facoltativo. Un valore uint32 che il modello utilizza per generare video deterministici. Se specifichi un numero seed nella richiesta senza modificare altri parametri, il modello genererà gli stessi video. L'intervallo di valori accettati è 0-4294967295.

    Metodo HTTP e URL:

    POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning

    Corpo JSON della richiesta:

    {
      "instances": [
        {
          "prompt": "TEXT_PROMPT",
           "video": {
             "gcsUri": "PATH_TO_VIDEO",
             "mimeType": "video/mp4"
           }
        }
      ],
      "parameters": {
        "storageUri": "OUTPUT_STORAGE_URI",
        "sampleCount": RESPONSE_COUNT
      }
    }
    

    Per inviare la richiesta, scegli una di queste opzioni:

    curl

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

    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

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

    $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
    Questa richiesta restituisce un nome di operazione completo con un ID operazione univoco. Utilizza questo nome completo dell'operazione per verificare lo stato della richiesta di generazione del video.
    {
      "name":
      "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
    }
    

  2. (Facoltativo) Controlla lo stato dell'operazione a lunga esecuzione di generazione del video.

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

    • PROJECT_ID: il tuo Cloud de Confiance by S3NS ID progetto.
    • MODEL_ID: l'ID del modello da utilizzare.
    • OPERATION_ID: l'ID operazione univoco restituito nella richiesta di generazione video originale.

    Metodo HTTP e URL:

    POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation

    Corpo JSON della richiesta:

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

    Per inviare la richiesta, scegli una di queste opzioni:

    curl

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

    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

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

    $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
    Questa richiesta restituisce informazioni sull'operazione, ad esempio se è ancora in esecuzione o è stata completata.

Passaggi successivi