Expandir o conteúdo de uma imagem usando a outpainting com o Imagen


Nesta página, descrevemos como usar a pintura externa com Imagen para expandir o conteúdo de uma imagem além das bordas originais usando os SDKs Firebase AI Logic.

Outpainting é um tipo de edição baseada em máscara. Uma máscara é uma sobreposição digital que define a área específica que você quer editar.

Como funciona: você fornece uma imagem original e uma imagem mascarada correspondente, gerada automaticamente ou fornecida por você, que define uma máscara da nova área expandida. Você também pode fornecer um comando de texto descrevendo o que quer na área expandida. Caso contrário, o modelo vai decidir de forma inteligente o que vai continuar a cena atual. O modelo gera o novo conteúdo e preenche a área mascarada.

Por exemplo, você pode mudar a proporção de uma imagem ou adicionar mais contexto de segundo plano.

Ir para o código

Antes de começar

Disponível apenas quando você usa o Vertex AI Gemini API como provedor de API.

Se ainda não tiver feito isso, conclua o guia de primeiros passos, que descreve como configurar seu projeto do Firebase, conectar seu app ao Firebase, adicionar o SDK, inicializar o serviço de back-end para o provedor de API escolhido e criar uma instância de ImagenModel.

Modelos compatíveis com esse recurso

O Imagen oferece edição de imagens com o modelo capability:

  • imagen-3.0-capability-001

Para modelos Imagen, o local global não é compatível.

Ampliar o conteúdo de uma imagem

Antes de testar esta amostra, conclua a seção Antes de começar deste guia para configurar seu projeto e app.

O exemplo a seguir mostra como expandir uma imagem além das bordas originais usando uma máscara definida em uma imagem fornecida. Você fornece a imagem original, um comando de texto e a imagem mascarada. Observe o seguinte sobre a imagem original e a mascarada:

  • A imagem mascarada precisa ter as dimensões de pixel do tamanho desejado da imagem final com pintura externa.

  • A imagem original precisa incluir um padding extra para corresponder às dimensões de pixel da imagem mascarada.

Fornecer um comando de texto é opcional se você quiser que o modelo decida de forma inteligente o que vai continuar logicamente a cena atual. Se você quiser conteúdo específico na área expandida, especifique isso em um comando de texto.

Swift

A edição de imagens com modelos Imagen não é compatível com Swift. Volte mais tarde este ano!

Kotlin

Para expandir uma imagem, use editImage() e defina a configuração de edição para usar ImagenEditMode.OUTPAINT.
Você pode usar opcionalmente outpaintImage() em vez de editImage(), e não é necessário especificar o modo de edição.

Confira o guia de início rápido com exemplos de código para expansão de imagens.

Java

Para expandir uma imagem, use editImage() e defina a configuração de edição para usar ImagenEditMode.OUTPAINT.
Você pode usar opcionalmente outpaintImage() em vez de editImage(), e não é necessário especificar o modo de edição.

Confira o guia de início rápido com exemplos de código para expansão de imagens.

Web

A edição de imagens com modelos Imagen não está disponível para apps da Web. Volte mais tarde este ano!

Dart

Para expandir uma imagem, use editImage() e defina a configuração de edição para usar ImagenEditMode.OUTPAINT.

Confira o guia de início rápido com exemplos de código para expansão de imagens.

Unity

A edição de imagens com modelos Imagen não é compatível com o Unity. Volte mais tarde este ano!

Práticas recomendadas e limitações

Recomendamos dilatar a máscara ao editar uma imagem. Isso ajuda a suavizar as bordas de uma edição e a tornar a mudança mais convincente. Em geral, é recomendável um valor de dilatação de 1% ou 2% (0.01 ou 0.02).


Enviar feedback sobre sua experiência com Firebase AI Logic