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


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

A pintura externa é 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. Também é possível fornecer um comando de texto descrevendo o que você quer na área expandida. Ou o modelo pode decidir de forma inteligente o que vai continuar logicamente 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 plano de fundo.

Ir para o código

Antes de começar

Disponível apenas ao usar Vertex AI Gemini API como provedor de API.

Se ainda não fez isso, conclua o guia de início rápido, 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 que oferecem suporte a esse recurso

Imagen oferece edição de imagens pelo modelo capability:

  • imagen-3.0-capability-001

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

Expandir o conteúdo de uma imagem

Antes de tentar este exemplo, 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 de destino da imagem pintada externamente final.

  • A imagem original precisa incluir um preenchimento 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.
Observe que 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 para ver um exemplo de código de pintura externa.

Java

Para expandir uma imagem, use editImage() e defina a configuração de edição para usar ImagenEditMode.OUTPAINT.
Observe que 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 para ver um exemplo de código de pintura externa.

Web

A edição de imagens com modelos Imagen não é compatível com 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 para ver um exemplo de código de pintura externa.

Unity

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

Práticas recomendadas e limitações

Recomendamos dilatar a máscara ao editar uma imagem. Isso pode ajudar a suavizar as bordas de uma edição e torná-la mais convincente. Geralmente, um valor de dilatação de 1% ou 2% é recomendado (0.01 ou 0.02).


Enviar feedback sobre sua experiência com Firebase AI Logic