Nesta página, descrevemos como inserir objetos em uma imagem, um processo também conhecido como inpainting. Com o Imagen na Vertex AI, é possível especificar uma área de máscara para inserir objetos em uma imagem. É possível usar sua própria máscara ou permitir que o Imagen gere uma para você.
Exemplo de inserção de conteúdo
Com o retoque, é possível usar uma imagem de base, uma máscara de imagem e uma solicitação de texto para adicionar conteúdo a uma imagem.
Entradas
| Imagem de base* para editar | Mascarar a área especificada usando ferramentas no console Google Cloud | Comando de texto |
|---|---|---|
|
|
morangos |
* Crédito da imagem: Alex Lvrs no Unsplash.
Saída após especificar uma área de máscara no console do Google Cloud
|
|
|
Ver o card do modelo do Imagen para edição e personalização
Antes de começar
- 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. -
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.
Python
Para usar os exemplos do Python desta página em um ambiente de desenvolvimento local, instale e inicialize a gcloud CLI e configure o Application Default Credentials com suas credenciais de usuário.
Instale a CLI do Google Cloud.
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
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.
Saiba mais em Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud .
REST
Para usar as amostras da API REST desta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Instale a CLI do Google Cloud.
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .
Inserir com uma área de máscara definida
Use os exemplos a seguir para enviar uma solicitação de repintura usando o modelo Imagen 3.
Console
1. No console do Google Cloud , acesse a página Vertex AI > Media Studio.<a href="https://console.cloud.google.com/vertex-ai/studio/media/generate;tab=image" class="button button-primary" target="console" track-name="consoleLink" track-type="task">Go to Media Studio</a>Clique em Fazer upload e selecione um arquivo para enviar.
Clique em Pintar.
Escolha uma destas opções:
Faça upload da sua própria máscara:
Crie uma máscara no computador.
Clique em Fazer upload da máscara e selecione uma máscara para enviar.
Defina sua máscara: na barra de ferramentas de edição, use as ferramentas de máscara (caixa, pincel ou masked_transitions inverter) para especificar a área ou áreas às quais adicionar conteúdo.
Opcional: no painel Parâmetros, ajuste as seguintes opções:
Modelo: o modelo do Imagen a ser usado.
Número de resultados: o número de resultados a serem gerados.
Comando negativo: descreva o que você quer excluir das imagens geradas.
No campo de comando, digite um comando para modificar a imagem.
Clique em Gerar.
Python
Instalar
pip install --upgrade google-genai
Para saber mais, consulte a documentação de referência do SDK.
Defina variáveis de ambiente para usar o SDK de IA generativa com a 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=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
-
REGION: a região em que o projeto está localizado. Para mais informações sobre as regiões com suporte, consulte Locais da IA generativa na Vertex AI. -
PROJECT_ID: o ID do projeto do Google Cloud . -
TEXT_PROMPT: Opcional. Um comando de texto para orientar as imagens geradas pelo modelo. Para ter os melhores resultados, use uma descrição da área mascarada e evite comandos de uma só palavra. Por exemplo, use "um corgi fofo" em vez de "corgi". -
B64_BASE_IMAGE: Uma imagem codificada em base64 da imagem que está sendo editada com tamanho de 10 MB ou menos. Para mais informações sobre a codificação em base64, consulte Codificar e decodificar arquivos em base64. -
B64_MASK_IMAGE: Uma imagem de máscara em preto e branco codificada em base64 com tamanho de até 10 MB. -
MASK_DILATION: Opcional. Um valor de ponto flutuante entre 0 e 1, inclusive, que representa a porcentagem da largura da imagem para aumentar a máscara. Usardilationajuda a compensar máscaras imprecisas. Recomendamos um valor de0.01. -
EDIT_STEPS: Opcional. Um número inteiro que representa o número de etapas de amostragem. Um valor mais alto oferece melhor qualidade de imagem, e um valor mais baixo oferece melhor latência.Recomendamos que você siga as etapas
35para começar. Se a qualidade não atender aos seus requisitos, aumente o valor até um limite superior de75. -
SAMPLE_COUNT: Opcional. Um número inteiro que descreve a quantidade de imagens a serem geradas. O intervalo de valores aceito é1-4. O valor padrão é4.
Método HTTP e URL:
POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict
Corpo JSON da solicitação:
{ "instances": [ { "prompt": "TEXT_PROMPT", "referenceImages": [ { "referenceType": "REFERENCE_TYPE_RAW", "referenceId": 1, "referenceImage": { "bytesBase64Encoded": "B64_BASE_IMAGE" } }, { "referenceType": "REFERENCE_TYPE_MASK", "referenceImage": { "bytesBase64Encoded": "B64_MASK_IMAGE" }, "maskImageConfig": { "maskMode": "MASK_MODE_USER_PROVIDED", "dilation": MASK_DILATION } } ] } ], "parameters": { "editConfig": { "baseSteps": EDIT_STEPS }, "editMode": "EDIT_MODE_INPAINT_INSERTION", "sampleCount": SAMPLE_COUNT } }Para enviar a solicitação, escolha uma destas opções:
O exemplo de resposta a seguir é para uma solicitação comcurl
Salve o corpo da solicitação em um arquivo com o nome
request.jsone execute o comando abaixo:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.jsone execute o comando abaixo:$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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict" | Select-Object -Expand Content"sampleCount": 2. A resposta retorna dois objetos de previsão, com os bytes de imagem gerados codificados em base64.{ "predictions": [ { "bytesBase64Encoded": "BASE64_IMG_BYTES", "mimeType": "image/png" }, { "mimeType": "image/png", "bytesBase64Encoded": "BASE64_IMG_BYTES" } ] }Inserir com detecção automática de máscaras
Use os exemplos a seguir para especificar o retoque a fim de inserir conteúdo. Nessas amostras, você especifica uma imagem de base e um comando de texto. O Imagen detecta e cria automaticamente uma área de máscara para modificar a imagem de base.
Console
1. No console do Google Cloud , acesse a página Vertex AI > Media Studio.<a href="https://console.cloud.google.com/vertex-ai/studio/media/generate;tab=image" class="button button-primary" target="console" track-name="consoleLink" track-type="task">Go to Media Studio</a>Clique em Fazer upload e selecione um arquivo para enviar.
Clique em Pintar.
Na barra de ferramentas de edição, clique em background_replaceExtrair máscara.
Selecione uma das opções de extração de máscara:
Elementos de segundo plano: detecta os elementos de segundo plano e cria uma máscara em torno deles.
Elementos em primeiro plano: detecta os objetos em primeiro plano e cria uma máscara ao redor deles.
background_replace Pessoas: detecta pessoas e cria uma máscara ao redor delas.
Opcional: no painel Parâmetros, ajuste as seguintes opções:
Modelo: o modelo do Imagen a ser usado.
Número de resultados: o número de resultados a serem gerados.
Comando negativo: descreva o que você quer excluir das imagens geradas.
No campo de comando, digite um comando para modificar a imagem.
Clique em enviarGerar.
Python
Instalar
pip install --upgrade google-genai
Para saber mais, consulte a documentação de referência do SDK.
Defina variáveis de ambiente para usar o SDK de IA generativa com a 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=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
REST
Antes de usar os dados da solicitação abaixo, faça estas substituições:
- PROJECT_ID: o ID do projeto do Google Cloud .
- LOCATION: a região do seu projeto. Por exemplo,
us-central1,europe-west2ouasia-northeast3. Para uma lista de regiões disponíveis, consulte IA generativa em locais da Vertex AI. - TEXT_PROMPT: o prompt de texto fornece orientações sobre quais imagens o modelo gera. Ao usar um comando para inserção de repintura, use uma descrição da área mascarada para ter os melhores resultados. Evite comandos de uma só palavra. Por exemplo, use "um corgi fofo" em vez de "corgi".
- B64_BASE_IMAGE: a imagem de base que será editada ou aprimorada. A imagem precisa ser especificada como uma string de bytes codificada em base64. Limite de tamanho: 10 MB.
- MASK_MODE: uma string que define o tipo de criação automática de máscara usada pelo modelo.
Valores disponíveis:
MASK_MODE_BACKGROUND: gera automaticamente uma máscara usando a segmentação de segundo plano.MASK_MODE_FOREGROUND: gera automaticamente uma máscara usando a segmentação em primeiro plano.MASK_MODE_SEMANTIC: gera automaticamente uma máscara usando a segmentação semântica com base nas classes de segmentação especificadas na matrizmaskImageConfig.maskClasses. Por exemplo:"maskImageConfig": { "maskMode": "MASK_MODE_SEMANTIC", "maskClasses": [175, 176], // bicycle, car "dilation": 0.01 }
- MASK_DILATION: ponto flutuante. A porcentagem da largura da imagem para dilatar essa máscara. Um valor de
0.01é recomendado para compensar máscaras de entrada imperfeitas. - EDIT_STEPS: número inteiro. O número de etapas de amostragem para o modelo de base. Para
inserção de inpainting, comece com
35etapas. Aumente as etapas até o limite superior de75se a qualidade não atender aos seus requisitos. Aumentar as etapas também aumenta a latência da solicitação. - EDIT_IMAGE_COUNT: o número de imagens editadas. Valores inteiros aceitos: 1 a 4. Valor padrão: 4.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict
Corpo JSON da solicitação:
{ "instances": [ { "prompt": "TEXT_PROMPT", "referenceImages": [ { "referenceType": "REFERENCE_TYPE_RAW", "referenceId": 1, "referenceImage": { "bytesBase64Encoded": "B64_BASE_IMAGE" } }, { "referenceType": "REFERENCE_TYPE_MASK", "referenceId": 2, "maskImageConfig": { "maskMode": "MASK_MODE", "dilation": MASK_DILATION } } ] } ], "parameters": { "editConfig": { "baseSteps": EDIT_STEPS }, "editMode": "EDIT_MODE_INPAINT_INSERTION", "sampleCount": EDIT_IMAGE_COUNT } }Para enviar a solicitação, escolha uma destas opções:
O exemplo de resposta a seguir é para uma solicitação comcurl
Salve o corpo da solicitação em um arquivo com o nome
request.jsone execute o comando abaixo:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.jsone 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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict" | Select-Object -Expand Content"sampleCount": 2. A resposta retorna dois objetos de previsão, com os bytes de imagem gerados codificados em base64.{ "predictions": [ { "bytesBase64Encoded": "BASE64_IMG_BYTES", "mimeType": "image/png" }, { "mimeType": "image/png", "bytesBase64Encoded": "BASE64_IMG_BYTES" } ] }Limitações
As seções a seguir explicam as limitações do recurso de remoção de objetos da Imagen.
Pixels modificados
O modelo gera pixels na própria resolução (por exemplo, 1024 x 1024), que pode ser diferente da resolução da imagem de entrada. Isso significa que a imagem gerada pode ter pequenas mudanças que não estavam na imagem original.
Para preservar perfeitamente a imagem, recomendamos misturar a imagem gerada com a imagem de entrada usando a máscara. Normalmente, se a resolução da imagem de entrada for 2K ou superior, será necessário combinar a imagem gerada e a imagem de entrada.
Inserir limitação
Embora o objeto inserido geralmente corresponda ao estilo da imagem de base, algumas palavras-chave podem produzir resultados semelhantes a desenhos animados em vez de uma saída fotorrealista.
Por exemplo, pedir uma "girafa amarela" pode resultar em uma imagem de desenho animado, porque as girafas são naturalmente marrons e castanhas. Gerar imagens fotorrealistas com cores não naturais pode ser difícil.
A seguir
Confira artigos sobre o Imagen e outras IAs generativas nos produtos da Vertex AI:
- Guia para desenvolvedores sobre como começar a usar o Imagen 3 na Vertex AI
- Novos modelos e ferramentas de mídia generativa criados com criadores para criadores
- Novidades no Gemini: Gems personalizados e geração de imagens aprimorada com o Imagen 3
- Google DeepMind: Imagen 3 — Nosso modelo de qualidade mais alta para conversão de texto em imagem
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-12-04 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-12-04 UTC."],[],[]]