Novità sui prodotti

Aumenta il coinvolgimento degli utenti con la generazione di immagini AI

Lettura di 5 minuti

L'aggiunta di immagini personalizzate alla tua app può migliorare e personalizzare notevolmente l'esperienza utente e aumentare il coinvolgimento degli utenti. Questo post esplora due nuove funzionalità per la generazione di immagini con Firebase AI Logic: le funzionalità di editing di Imagen specializzate, attualmente in anteprima, e la disponibilità generale di Gemini 2.5 Flash Image (noto anche come "Nano Banana"), progettato per la generazione di immagini contestuali o conversazionali.

Aumenta il coinvolgimento degli utenti con le immagini generate tramite Firebase AI Logic

I modelli di generazione di immagini possono essere utilizzati per creare avatar di profili utente personalizzati o per integrare asset visivi personalizzati direttamente nei flussi di schermate chiave.  

Ad esempio, Imagen offre nuove funzionalità di editing (in anteprima per gli sviluppatori). Ora puoi disegnare una maschera e utilizzare l'inpainting per generare pixel all'interno dell'area mascherata. Inoltre, è disponibile l'outpainting per generare pixel all'esterno della maschera.   

Imagen inpainting.png

Imagen supporta l'inpainting, consentendo di generare solo una parte di un'immagine. 

In alternativa, Gemini 2.5 Flash Image (noto anche come Nano Banana) può utilizzare la conoscenza del mondo estesa e le funzionalità di ragionamento dei modelli Gemini per generare immagini contestualmente pertinenti, ideali per creare illustrazioni dinamiche in linea con l'esperienza in-app corrente di un utente.   

 

In-context nano banana illustration.png

Utilizza Gemini 2.5 Flash Image per creare illustrazioni dinamiche contestualmente pertinenti alla tua app.

Infine, la possibilità di modificare le immagini in modo conversazionale e iterativo consente agli utenti di modificare una foto utilizzando il linguaggio naturale.

 

photo edit natural language.png

Utilizza Gemini 2.5 Flash Image per modificare un'immagine utilizzando il linguaggio naturale.

Quando inizi a integrare l'AI nella tua applicazione, è importante conoscere la sicurezza dell'AI. È particolarmente importante valutare i rischi per la sicurezza della tua applicazione, considerare le modifiche per mitigare i rischi per la sicurezza, eseguire test di sicurezza appropriati al tuo caso d'uso, richiedere il feedback degli utenti e monitorare i contenuti.

Imagen o Gemini: la scelta è tua

La differenza tra Gemini 2.5 Flash Image ("Nano Banana") e Imagen risiede nel loro obiettivo principale e nelle funzionalità avanzate. Gemini 2.5 Flash Image, in quanto modello di immagini all'interno della famiglia Gemini più ampia, eccelle nell'editing di immagini conversazionali, mantenendo la coerenza del contesto e del soggetto in più iterazioni e sfruttando la "conoscenza del mondo e il ragionamento" per creare immagini contestualmente pertinenti o incorporare immagini accurate all'interno di sequenze di testo lunghe. 

Imagen è il modello di generazione di immagini specializzato di Google, progettato per un maggiore controllo creativo, specializzato in output altamente fotorealistici, dettagli artistici, stili specifici e che fornisce controlli espliciti per specificare le proporzioni o il formato dell'immagine generata.

Immagini Gemini 2.5 Flash 
(Nano Banana 🍌)
Imagen

🌎 Conoscenza del mondo e ragionamento per immagini contestualmente più pertinenti

💬 Modifica le immagini in modo conversazionale mantenendo il contesto

📖 Incorpora immagini accurate all'interno di sequenze di testo lunghe

📐 Specifica le proporzioni o il formato delle immagini generate

 

🖌️Supporto dell'editing basato su maschere per l'inpainting e l'outpainting. 

 

🎚️ Maggiore controllo sui dettagli dell'immagine generata (qualità, dettagli artistici e stili specifici)

Vediamo come utilizzarli nella tua app.

Inpainting con Imagen

Alcuni mesi fa abbiamo rilasciato nuove funzionalità di editing per Imagen. Sebbene Imagen sia ora pronto per la produzione per la generazione di immagini, le funzionalità di editing sono ancora in anteprima per gli sviluppatori.

Le funzionalità di editing di Imagen includono inpainting e outpainting, funzionalità di editing di immagini basate su maschere. Questa nuova funzionalità consente agli utenti di modificare aree specifiche di un'immagine senza rigenerare l'intera immagine. Ciò significa che puoi conservare le parti migliori dell'immagine e modificare solo ciò che vuoi cambiare.

Imagen inpainting dog.png

Utilizza le funzionalità di editing di Imagen per apportare modifiche mirate precise a un'immagine e garantire l'integrità del resto dell'immagine

Queste modifiche vengono apportate mantenendo gli elementi principali e l'integrità complessiva dell'immagine originale e modificando solo l'area nella maschera.

Per implementare l'inpainting con Imagen, inizializza prima imagen-3.0-capability-001 un modello Imagen specifico che supporta le funzionalità di editing:

  // Copyright 2025 Google LLC.
// SPDX-License-Identifier: Apache-2.0
val editingModel =
        Firebase.ai(backend = GenerativeBackend.vertexAI()).imagenModel(
            "imagen-3.0-capability-001",
            generationConfig = ImagenGenerationConfig(
                numberOfImages = 1,
                aspectRatio = ImagenAspectRatio.SQUARE_1x1,
                imageFormat = ImagenImageFormat.jpeg(compressionQuality = 75),
            ),
        )

Da qui, definisci la funzione di inpainting:

  // Copyright 2025 Google LLC.
// SPDX-License-Identifier: Apache-2.0

val prompt = "remove the pancakes and make it an omelet instead"

suspend fun inpaintImageWithMask(sourceImage: Bitmap, maskImage: Bitmap, prompt: String, editSteps: Int = 50): Bitmap {
        val imageResponse = editingModel.editImage(
            referenceImages = listOf(
                ImagenRawImage(sourceImage.toImagenInlineImage()),
                ImagenRawMask(maskImage.toImagenInlineImage()),
            ),
            prompt = prompt,
            config = ImagenEditingConfig(
                editMode = ImagenEditMode.INPAINT_INSERTION,
                editSteps = editSteps,
            ),
        )
        return imageResponse.images.first().asBitmap()
    }

Fornisci sia un'immagine sorgente, un'immagine maschera e un prompt per la modifica, sia il numero di passaggi di modifica da eseguire.

Puoi vederlo in azione nell'esempio di editing di Imagen nel catalogo di esempi di AI per Android.

Inoltre, Imagen supporta l'outpainting, che ti consente di lasciare che il modello generi i pixel all'esterno di una maschera. Puoi anche utilizzare le funzionalità di personalizzazione delle immagini di Imagen per modificare lo stile di un'immagine o aggiornare un soggetto in un'immagine. Scopri di più nella documentazione per gli sviluppatori Android.

Generazione di immagini conversazionali con Gemini 2.5 Flash Image

Un modo per modificare le immagini con Gemini 2.5 Flash Image è utilizzare le funzionalità di chat a più turni del modello.

Innanzitutto, inizializza il modello:

  // Copyright 2025 Google LLC.
// SPDX-License-Identifier: Apache-2.0

val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
    modelName = "gemini-2.5-flash-image",
    // Configure the model to respond with text and images (required)
    generationConfig = generationConfig {
        responseModalities = listOf(ResponseModality.TEXT,
        ResponseModality.IMAGE)
    }
)

Per ottenere un risultato simile al metodo Imagen basato su maschere descritto sopra, possiamo utilizzare l'API chat per avviare una conversazione con Gemini 2.5 Flash Image.

  // Copyright 2025 Google LLC.
// SPDX-License-Identifier: Apache-2.0

// Initialize the chat
val chat = model.startChat()


// Load a bitmap
val source = ImageDecoder.createSource(context.contentResolver, uri)
val bitmap = ImageDecoder.decodeBitmap(source)


// Create the initial prompt instructing the model to edit the image
val prompt = content {
    image(bitmap)
    text("remove the pancakes and add an omelet")
}

// To generate an initial response, send a user message with the image and text prompt
var response = chat.sendMessage(prompt)

// Inspect the returned image
var generatedImageAsBitmap = response
    .candidates.first().content.parts.filterIsInstance<ImagePart>().firstOrNull()?.image

// Follow up requests do not need to specify the image again
response = chat.sendMessage("Now, center the omelet in the pan")
generatedImageAsBitmap = response
    .candidates.first().content.parts.filterIsInstance<ImagePart>().firstOrNull()?.image

Puoi vederlo in azione nell'esempio di chat con immagini di Gemini nel catalogo di esempi di AI per Android e scoprire di più nella documentazione di Android.

Conclusione

Sia Imagen sia Gemini 2.5 Flash Image offrono funzionalità potenti che ti consentono di selezionare il modello di generazione di immagini ideale per personalizzare la tua app e aumentare il coinvolgimento degli utenti, a seconda del tuo caso d'uso specifico.

Scritto da:

Continua a leggere