Espandere il contenuto di un'immagine utilizzando l'outpainting con Imagen


Questa pagina descrive come utilizzare la pittura esterna con Imagen per espandere i contenuti di un'immagine oltre i bordi originali utilizzando gli SDK Firebase AI Logic.

La pittura esterna è un tipo di modifica basata su maschera. Una maschera è un overlay digitale che definisce l'area specifica che vuoi modificare.

Come funziona: fornisci un'immagine originale e una corrispondente immagine mascherata, generata automaticamente o fornita da te, che definisce una maschera della nuova area espansa. Facoltativamente, puoi anche fornire un prompt di testo che descriva ciò che vuoi nell'area espansa oppure il modello può decidere in modo intelligente cosa continuerà logicamente la scena esistente. Il modello genera i nuovi contenuti e riempie l'area mascherata.

Ad esempio, puoi modificare le proporzioni di un'immagine o aggiungere altro contesto di sfondo.

Vai al codice

Prima di iniziare

Disponibile solo quando utilizzi Vertex AI Gemini API come provider di API.

Se non l'hai ancora fatto, completa la guida introduttiva, che descrive come configurare il progetto Firebase, collegare l'app a Firebase, aggiungere l'SDK, inizializzare il servizio di backend per il provider di API scelto e creare un'istanza ImagenModel.

Modelli che supportano questa funzionalità

Imagen offre la modifica delle immagini tramite il modello capability:

  • imagen-3.0-capability-001

Tieni presente che per i modelli Imagen la località global non è supportata.

Espandere i contenuti di un'immagine

Prima di provare questo esempio, completa la sezione Prima di iniziare di questa guida per configurare il progetto e l'app.

L'esempio seguente mostra come espandere un'immagine oltre i bordi originali utilizzando una maschera definita in un'immagine che fornisci. Fornisci l'immagine originale, un prompt di testo e l'immagine mascherata. Tieni presente quanto segue sull'immagine originale e su quella mascherata:

  • L'immagine mascherata deve avere le dimensioni in pixel della dimensione di destinazione dell'immagine con pittura esterna finale.

  • L'immagine originale deve includere un riempimento aggiuntivo per corrispondere alle dimensioni in pixel dell'immagine mascherata.

Fornire un prompt di testo è facoltativo se vuoi che il modello decida in modo intelligente cosa continuerà logicamente la scena esistente. Se vuoi contenuti specifici all'interno dell'area espansa, devi specificarli in un prompt di testo.

Swift

La modifica delle immagini con i modelli Imagen non è supportata per Swift. Ricontrolla più tardi quest'anno.

Kotlin

Per espandere un'immagine, utilizza editImage() e imposta la configurazione di modifica in modo da utilizzare ImagenEditMode.OUTPAINT.
Tieni presente che, facoltativamente, puoi utilizzare outpaintImage() anziché editImage(), e non devi specificare la modalità di modifica.

Consulta la guida di avvio rapido per il codice campione per l'outpainting.

Java

Per espandere un'immagine, utilizza editImage() e imposta la configurazione di modifica in modo da utilizzare ImagenEditMode.OUTPAINT.
Tieni presente che, facoltativamente, puoi utilizzare outpaintImage() anziché editImage(), e non devi specificare la modalità di modifica.

Consulta la guida di avvio rapido per il codice campione per l'outpainting.

Web

La modifica delle immagini con i modelli Imagen non è supportata per le app web. Ricontrolla più tardi quest'anno.

Dart

Per espandere un'immagine, utilizza editImage() e imposta la configurazione di modifica in modo da utilizzare ImagenEditMode.OUTPAINT.

Consulta la guida di avvio rapido per il codice campione per l'outpainting.

Unity

La modifica delle immagini con i modelli Imagen non è supportata per Unity. Ricontrolla più tardi quest'anno.

Best practice e limitazioni

Ti consigliamo di dilatare la maschera quando modifichi un'immagine. Questo può contribuire a uniformare i bordi di una modifica e a renderla più convincente. In genere, è consigliabile un valore di dilatazione dell'1% o del 2% (0.01 o 0.02).


Fornisci un feedback sulla tua esperienza con Firebase AI Logic