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.
A expansão 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. 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.
Antes de começar
| Disponível apenas quando você usa o Vertex AI Gemini API como seu 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.
Expandir 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