Usar imagens de referência para orientar a geração de vídeos

Com o Veo na Vertex AI, é possível usar imagens de referência com veo-2.0-generate-exp para orientar o conteúdo e o estilo artístico do vídeo gerado. Você pode usar uma das seguintes opções ao usar imagens de referência com o Veo:

  • Imagem do recurso: você fornece até três imagens de uma única pessoa, personagem ou produto. O Veo preserva a aparência do assunto no vídeo de saída.

  • Imagem de estilo: você fornece uma única imagem de estilo. O Veo aplica o estilo da imagem enviada ao vídeo de saída.

Para mais informações sobre como escrever comandos de texto eficazes para geração de vídeos, consulte o guia de comandos do Veo.

Antes de começar

  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.

    Go to project selector

  3. Enable the Vertex AI API.

    Enable the API

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Vertex AI API.

    Enable the API

  6. Configure a autenticação do 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.

    REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

      Instale a CLI do Google Cloud. Após a instalação, inicialize a CLI do Google Cloud executando o seguinte comando:

      gcloud init

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

    Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud .

    Usar imagens de assunto para gerar vídeos

    Faça o seguinte:

    Console

    1. No console do Google Cloud , acesse a página Vertex AI Studio > Media Studio.

      Media Studio

    2. Clique em Veo.

    3. No painel Configurações, selecione as seguintes opções:

      • Modelo: selecione veo-2.0-generate-exp.

      • Número de resultados: ajuste o controle deslizante ou insira um valor entre 1 e 4.

    4. Na seção Referência, selecione Assunto > clique em Adicionar.

    5. Escolha de uma a três imagens no seu computador para fazer upload.

    6. Opcional: na seção Segurança, selecione uma das seguintes configurações de Geração de pessoas:

      • Permitir (somente para adultos): valor padrão. Gerar apenas pessoas ou rostos adultos. Não gere pessoas ou rostos de jovens ou crianças.

      • Não permitir: não gera pessoas nem rostos.

    7. Opcional: na seção Opções avançadas, insira um valor de Seed para aleatorizar a geração de vídeo.

    8. Na caixa Escreva seu comando, insira o comando de texto que descreve os vídeos a serem gerados.

    9. Clique em Gerar.

    REST

    Depois de configurou seu ambiente use REST para testar uma solicitação de texto. O exemplo a seguir envia uma solicitação ao publisher endpoint do modelo.

    Para mais informações sobre a API Veo, consulte a API Veo na Vertex AI.

    1. Use os comandos a seguir para enviar uma solicitação de geração de vídeo. Essa solicitação inicia uma operação de longa duração e armazena a saída em um bucket do Cloud Storage especificado por você.

      Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

      • PROJECT_ID: o ID do projeto do Google Cloud .
      • TEXT_PROMPT: o comando de texto usado para orientar a geração de vídeo.
      • BASE64_ENCODED_IMAGE: uma imagem do assunto codificada em bytes base64. Você pode repetir esse campo e mimeType para especificar até três imagens de assunto.
      • IMAGE_MIME_TYPE: o tipo MIME da imagem de entrada. Apenas uma das opções a seguir:

        • image/jpeg
        • image/png

        Você pode repetir esse campo e bytesBase64Encoded para especificar até três imagens de assunto.

      • OUTPUT_STORAGE_URI: Opcional: o bucket do Cloud Storage para armazenar os vídeos de saída. Se não for fornecido, um vídeo codificado em bytes Base64 será retornado na resposta. Por exemplo: gs://video-bucket/output/.
      • RESPONSE_COUNT: o número de arquivos de vídeo que você quer gerar. Valores inteiros aceitos: 1 a 4.
      • Outros parâmetros opcionais

        Use as seguintes variáveis opcionais dependendo do seu caso de uso. Adicione alguns ou todos os parâmetros a seguir no objeto "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: Opcional: um valor de string que descreve a proporção dos vídeos gerados. Você pode usar os seguintes valores:
          • "16:9" para paisagem
          • "9:16" para retrato

          O valor padrão é "16:9"

        • NEGATIVE_PROMPT: opcional: um valor de string que descreve o conteúdo que você quer impedir que o modelo gere.
        • PERSON_SAFETY_SETTING: Opcional: um valor de string que controla a configuração de segurança para gerar pessoas ou rostos. Você pode usar os seguintes valores:
          • "allow_adult": permite a geração somente de pessoas e rostos adultos.
          • "disallow": não gera pessoas nem rostos.

          O valor padrão é "allow_adult".

        • RESOLUTION: Opcional: um valor de string que controla a resolução do vídeo gerado. Compatível apenas com modelos do Veo 3. Você pode usar os seguintes valores:
          • "720p"
          • "1080p"

          O valor padrão é "720p".

        • RESPONSE_COUNT: Opcional. Um valor inteiro que descreve o número de vídeos a serem gerados. O intervalo de valores aceito é 1-4.
        • SEED_NUMBER: Opcional. Um valor uint32 que o modelo usa para gerar vídeos determinísticos. Especificar um número de sugestão com sua solicitação sem mudar outros parâmetros orienta o modelo a produzir os mesmos vídeos. O intervalo aceito de valores é 0-4294967295.

      Método HTTP e URL:

      POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001:predictLongRunning

      Corpo JSON da solicitação:

      {
        "instances": [
          {
            "prompt": "TEXT_PROMPT",
            // The following fields can be repeated for up to three total
            // images.
            "referenceImages": [
              {
                "image": {
                  "bytesBase64Encoded": "BASE64_ENCODED_IMAGE",
                  "mimeType": "IMAGE_MIME_TYPE"
                },
                "referenceType": "asset"
              }
            ]
          }
        ],
        "parameters": {
          "durationSeconds": 8,
          "storageUri": "OUTPUT_STORAGE_URI",
          "sampleCount": RESPONSE_COUNT
        }
      }
      

      Para enviar a solicitação, escolha uma destas opções:

      curl

      Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

      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-001:predictLongRunning"

      PowerShell

      Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

      $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-001:predictLongRunning" | Select-Object -Expand Content
      Essa solicitação retorna um nome de operação completo com um ID exclusivo. Use esse nome completo da operação para pesquisar o status da solicitação de geração de vídeo.
      {
        "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
      }
      

    2. Opcional: verifique o status da operação de longa duração de geração de vídeo.

      Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

      • PROJECT_ID: o ID do projeto do Google Cloud .
      • MODEL_ID: o ID do modelo a ser usado.
      • OPERATION_ID: o ID de operação exclusivo retornado na solicitação original de geração de vídeo.

      Método 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 da solicitação:

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

      Para enviar a solicitação, escolha uma destas opções:

      curl

      Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

      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

      Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

      $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
      Essa solicitação retorna informações sobre a operação, incluindo se ela ainda está em execução ou se já foi concluída.

    Usar imagens de estilo para gerar vídeos

    Faça o seguinte:

    Console

    1. No console do Google Cloud , acesse a página Vertex AI Studio > Media Studio.

      Media Studio

    2. Clique em Veo.

    3. No painel Configurações, selecione as seguintes opções:

      • Modelo: selecione veo-2.0-generate-exp.

      • Número de resultados: ajuste o controle deslizante ou insira um valor entre 1 e 4.

    4. Na seção Referência, selecione Estilo > clique em Adicionar.

    5. Escolha uma imagem no seu computador para fazer upload.

    6. Opcional: na seção Segurança, selecione uma das seguintes configurações de Geração de pessoas:

      • Permitir (somente para adultos): valor padrão. Gerar apenas pessoas ou rostos adultos. Não gere pessoas ou rostos de jovens ou crianças.

      • Não permitir: não gera pessoas nem rostos.

    7. Opcional: na seção Opções avançadas, insira um valor de Seed para aleatorizar a geração de vídeo.

    8. Na caixa Escreva seu comando, insira o comando de texto que descreve os vídeos a serem gerados.

    9. Clique em Gerar.

    REST

    Depois de configurou seu ambiente use REST para testar uma solicitação de texto. O exemplo a seguir envia uma solicitação ao publisher endpoint do modelo.

    Para mais informações sobre a API Veo, consulte a API Veo na Vertex AI.

    1. Use os comandos a seguir para enviar uma solicitação de geração de vídeo. Essa solicitação inicia uma operação de longa duração e armazena a saída em um bucket do Cloud Storage especificado por você.

      Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

      • PROJECT_ID: o ID do projeto do Google Cloud .
      • TEXT_PROMPT: o comando de texto usado para orientar a geração de vídeo.
      • BASE64_ENCODED_IMAGE: uma imagem de estilo codificada em bytes base64.
      • IMAGE_MIME_TYPE: o tipo MIME da imagem de entrada. Apenas uma das seguintes opções:
        • image/jpeg
        • image/png
      • OUTPUT_STORAGE_URI: Opcional: o bucket do Cloud Storage para armazenar os vídeos de saída. Se não for informado, os bytes de vídeo serão retornados na resposta. Por exemplo, gs://video-bucket/output/.
      • RESPONSE_COUNT: o número de arquivos de vídeo que você quer gerar. Valores inteiros aceitos: 1 a 4.
      • Outros parâmetros opcionais

        Use as seguintes variáveis opcionais dependendo do seu caso de uso. Adicione alguns ou todos os parâmetros a seguir no objeto "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: Opcional: um valor de string que descreve a proporção dos vídeos gerados. Você pode usar os seguintes valores:
          • "16:9" para paisagem
          • "9:16" para retrato

          O valor padrão é "16:9"

        • NEGATIVE_PROMPT: opcional: um valor de string que descreve o conteúdo que você quer impedir que o modelo gere.
        • PERSON_SAFETY_SETTING: Opcional: um valor de string que controla a configuração de segurança para gerar pessoas ou rostos. Você pode usar os seguintes valores:
          • "allow_adult": permite a geração somente de pessoas e rostos adultos.
          • "disallow": não gera pessoas nem rostos.

          O valor padrão é "allow_adult".

        • RESOLUTION: Opcional: um valor de string que controla a resolução do vídeo gerado. Compatível apenas com modelos do Veo 3. Você pode usar os seguintes valores:
          • "720p"
          • "1080p"

          O valor padrão é "720p".

        • RESPONSE_COUNT: Opcional. Um valor inteiro que descreve o número de vídeos a serem gerados. O intervalo de valores aceito é 1-4.
        • SEED_NUMBER: Opcional. Um valor uint32 que o modelo usa para gerar vídeos determinísticos. Especificar um número de sugestão com sua solicitação sem mudar outros parâmetros orienta o modelo a produzir os mesmos vídeos. O intervalo aceito de valores é 0-4294967295.

      Método HTTP e URL:

      POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001:predictLongRunning

      Corpo JSON da solicitação:

      {
        "instances": [
          {
            "prompt": "TEXT_PROMPT",
            "referenceImages": [
              {
                "image": {
                  "bytesBase64Encoded": "BASE64_ENCODED_IMAGE",
                  "mimeType": "IMAGE_MIME_TYPE"
                },
                "referenceType": "style"
              }
            ]
          }
        ],
        "parameters": {
          "durationSeconds": 8,
          "storageUri": "OUTPUT_STORAGE_URI",
          "sampleCount": RESPONSE_COUNT
        }
      }
      

      Para enviar a solicitação, escolha uma destas opções:

      curl

      Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

      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-001:predictLongRunning"

      PowerShell

      Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

      $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-001:predictLongRunning" | Select-Object -Expand Content
      Essa solicitação retorna um nome de operação completo com um ID exclusivo. Use esse nome completo da operação para pesquisar o status da solicitação de geração de vídeo.
      {
        "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
      }
      

    2. Opcional: verifique o status da operação de longa duração de geração de vídeo.

      Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

      • PROJECT_ID: o ID do projeto do Google Cloud .
      • MODEL_ID: o ID do modelo a ser usado.
      • OPERATION_ID: o ID de operação exclusivo retornado na solicitação original de geração de vídeo.

      Método 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 da solicitação:

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

      Para enviar a solicitação, escolha uma destas opções:

      curl

      Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

      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

      Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

      $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
      Essa solicitação retorna informações sobre a operação, incluindo se ela ainda está em execução ou se já foi concluída.

    A seguir