Rimuovere oggetti dai video di Veo

Puoi utilizzare Veo su Vertex AI per rimuovere oggetti dai video che generi. Fornisci una maschera e un oggetto video, quindi utilizza un prompt di testo per descrivere l'output che vuoi. L'API Vertex AI è supportata durante l'anteprima. Le interfacce supportate includono la console Google Cloud e l'API Vertex AI.

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

Prova Veo in Colab

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Enable the Vertex AI 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

  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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Enable the Vertex AI 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

  6. Configura l'autenticazione per il tuo ambiente.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    Python

    Per utilizzare gli esempi di Python questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.

      Installa Google Cloud CLI.

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

      If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Per saperne di più, consulta Configurare ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione Google Cloud .

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizza 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 Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .

    Rimuovere un oggetto da un video

    Console

    1. Nella console Google Cloud , vai a Vertex AI Studio > la pagina Genera contenuti multimediali.

      Media Studio

    2. Fai clic su Veo.

    3. (Facoltativo) Nel riquadro Impostazioni, configura le seguenti impostazioni:

      • Modello: scegli Anteprima di Veo 2.

      • Proporzioni: scegli 16:9 o 9:16.

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

      • Durata del video: seleziona la durata del video che preferisci dal menu.

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

    4. (Facoltativo) Nella sezione Sicurezza, seleziona una delle seguenti impostazioni di generazione di persone:

      • Consenti (solo per adulti): valore predefinito. Genera solo persone o volti adulti. Non generare persone o volti di giovani o bambini.

      • Non consentire: non generare persone o volti.

    5. (Facoltativo) Nella sezione Opzioni avanzate, inserisci un valore Seed per randomizzare la generazione dei video.

    6. Fai clic su Carica un'immagine o un video.

    7. Scegli un video locale da caricare e fai clic su Seleziona.

    8. Esegui una di queste operazioni:

      • Caricare la tua maschera:

        1. Crea una maschera sul computer.

        2. Fai clic su Carica maschera. Nella finestra di dialogo visualizzata, seleziona una maschera da caricare.

      • Definisci la maschera:nella barra degli strumenti di modifica, utilizza gli strumenti maschera (casella, pennello o strumento masked_transitionsinverti) per specificare l'area o le aree a cui aggiungere contenuti.

    9. Fai clic su Genera.

    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 l'SDK 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_VERTEXAI=True

    import time
    from google import genai
    from google.genai.types import GenerateVideosSource, GenerateVideosConfig, Image, Video, VideoGenerationMask, VideoGenerationMaskMode
    
    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-2.0-generate-preview",
        source=GenerateVideosSource(
            video=Video(uri="gs://cloud-samples-data/generative-ai/video/truck.mp4", mime_type="video/mp4")
        ),
        config=GenerateVideosConfig(
            mask=VideoGenerationMask(
                image=Image(
                    gcs_uri="gs://cloud-samples-data/generative-ai/image/truck-inpainting-dynamic-mask.png",
                    mime_type="image/png",
                ),
                mask_mode=VideoGenerationMaskMode.REMOVE,
            ),
            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

    Dopo aver configurato l'ambiente, puoi utilizzare REST per testare un prompt di testo. Il seguente esempio invia una richiesta all'endpoint del modello del publisher.

    Per saperne di più sull'API Veo, consulta l'API Veo su Vertex AI.

    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 che specifichi.

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

    • PROJECT_ID: il tuo Google Cloud ID progetto.
    • TEXT_PROMPT: il prompt di testo utilizzato per guidare la generazione di video.
    • MASK_STORAGE_URI Il percorso URI del bucket Cloud Storage all'oggetto maschera.
    • MASK_MIME_TYPE Il tipo MIME della maschera dell'immagine. Solo uno dei seguenti documenti:

      • image/png
      • image/jpeg
      • image/webp
    • VIDEO_INPUT_STORAGE_URI Il percorso URI del bucket Cloud Storage dell'oggetto di input video.
    • VIDEO_MIME_TYPE Il tipo MIME dell'oggetto video. Solo uno dei seguenti documenti:

      • video/mov
      • video/mpeg
      • video/mp4
      • video/mpg
      • video/avi
      • video/wmv
      • video/mpegps
      • video/flv
    • OUTPUT_STORAGE_URI: (Facoltativo) Il bucket Cloud Storage in cui archiviare i video di output. Se non fornito, nella risposta viene restituito un video codificato in byte Base64. Ad esempio: gs://video-bucket/output/.
    • RESPONSE_COUNT: il numero di file video che vuoi generare. Valori interi accettati: 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 il formato 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"

        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/veo-2.0-generate-preview:predictLongRunning

    Corpo JSON della richiesta:

    {
      "instances": [
        {
          "prompt": "TEXT_PROMPT",
          // The following fields can be repeated for up to three total
          // images.
          "mask": {
            "gcsURI": "MASK_STORAGE_URI",
            "mimeType": "MASK_MIME_TYPE",
            "maskMode": "remove"
          },
          "video": {
            "gcsURI": "VIDEO_INPUT_STORAGE_URI",
            "mimeType": "VIDEO_MIME_TYPE"
          }
        }
      ],
      "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, ed esegui questo comando:

    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/veo-2.0-generate-preview:predictLongRunning"

    PowerShell

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

    $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/veo-2.0-generate-preview:predictLongRunning" | Select-Object -Expand Content
    Questa richiesta restituisce un nome completo dell'operazione 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/veo-2.0-generate-001/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
    }
    

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

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

      • PROJECT_ID: il tuo Google Cloud ID progetto.
      • MODEL_ID: l'ID 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, ed esegui questo comando:

      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, ed esegui questo comando:

      $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