Produktneuheiten

Nutzerinteraktionen mit KI-Bildgenerierung steigern

Lesezeit: 5 Minuten

Wenn Sie Ihrer App benutzerdefinierte Bilder hinzufügen, können Sie die Nutzerfreundlichkeit deutlich verbessern und personalisieren und die Nutzerinteraktion steigern. In diesem Beitrag werden zwei neue Funktionen für die Bildgenerierung mit Firebase AI Logic vorgestellt: die speziellen Imagen-Bearbeitungsfunktionen, die sich derzeit in der Vorabversion befinden, und die allgemeine Verfügbarkeit von Gemini 2.5 Flash Image (auch bekannt als „Nano Banana“), das für die kontextbezogene oder konversationelle Bildgenerierung entwickelt wurde. 

Nutzerinteraktionen mit Bildern steigern, die über Firebase AI Logic generiert wurden

Mit Modellen zur Bildgenerierung lassen sich benutzerdefinierte Avatare für Nutzerprofile erstellen oder personalisierte visuelle Assets direkt in wichtige Bildschirmabläufe einbinden.  

Imagen bietet beispielsweise neue Bearbeitungsfunktionen (in der Entwicklervorschau). Sie können jetzt eine Maske zeichnen und Inpainting verwenden, um Pixel im maskierten Bereich zu generieren. Außerdem ist die Funktion „Erweitern“ verfügbar, mit der Pixel außerhalb der Maske generiert werden können.   

Imagen inpainting.png

Imagen unterstützt Inpainting, sodass nur ein Teil eines Bildes generiert werden kann. 

Alternativ kann Gemini 2.5 Flash Image (auch Nano Banana genannt) auf das erweiterte Wissen und die Schlussfolgerungsfähigkeiten der Gemini-Modelle zurückgreifen, um kontextbezogene Bilder zu generieren. Das ist ideal, um dynamische Illustrationen zu erstellen, die zum aktuellen In-App-Erlebnis eines Nutzers passen.   

 

In-Context-Illustration von Nano Banana.png

Mit Gemini 2.5 Flash Image dynamische Illustrationen erstellen, die kontextbezogen für Ihre App sind 

Außerdem können Nutzer Bilder mithilfe von natürlicher Sprache bearbeiten.

 

photo edit natural language.png

Mit Gemini 2.5 Flash Image ein Bild mit natürlicher Sprache bearbeiten

Wenn Sie KI in Ihre Anwendung einbinden möchten, ist es wichtig, sich mit dem Thema KI-Sicherheit vertraut zu machen. Es ist besonders wichtig, die Sicherheitsrisiken Ihrer Anwendung zu bewerten, Anpassungen zur Minimierung von Sicherheitsrisiken in Betracht zu ziehen, Sicherheitstests durchzuführen, die für Ihren Anwendungsfall geeignet sind, und Nutzerfeedback einzuholen und Inhalte zu überwachen.

Imagen oder Gemini: Sie haben die Wahl 

Der Unterschied zwischen Gemini 2.5 Flash Image („Nano Banana“) und Imagen liegt in ihrem primären Fokus und ihren erweiterten Funktionen. Gemini 2.5 Flash Image ist ein Bildmodell innerhalb der Gemini-Modellfamilie, das sich durch die Bearbeitung von Bildern im Dialog auszeichnet. Es behält den Kontext und die Konsistenz des Motivs über mehrere Iterationen hinweg bei und nutzt „Allgemeinwissen und Logik“, um kontextbezogene Bilder zu erstellen oder genaue Bilder in lange Textsequenzen einzubetten. 

Imagen ist das spezielle Modell von Google zur Bildgenerierung. Es wurde für mehr kreative Kontrolle entwickelt und ist auf fotorealistische Ausgaben, künstlerische Details und bestimmte Stile spezialisiert. Außerdem bietet es explizite Steuerelemente, mit denen Sie das Seitenverhältnis oder das Format des generierten Bildes festlegen können.

Gemini 2.5 Flash Images 
(Nano Banana 🍌)
Imagen

🌎 Weltwissen und Schlussfolgerungen für kontextbezogenere Bilder
  

💬 Bilder im Dialog bearbeiten, ohne den Kontext zu verlieren
  

📖 Genaue Bilder in lange Textpassagen einbetten

📐 Seitenverhältnis oder Format der generierten Bilder angeben

 

🖌️ Unterstützung der maskenbasierten Bearbeitung für Inpainting und Outpainting 

 

🎚️ Mehr Kontrolle über die Details des generierten Bildes (Qualität, künstlerische Details und bestimmte Stile)

Sehen wir uns an, wie Sie sie in Ihrer App verwenden können.
 

Übermalen von Bildern mit Imagen 

Vor einigen Monaten haben wir neue Bearbeitungsfunktionen für Imagen veröffentlicht. Obwohl Imagen jetzt für die Produktion von Bildern bereit ist, befinden sich die Bearbeitungsfunktionen noch in der Entwicklervorschau.

Zu den Imagen-Bearbeitungsfunktionen gehören Inpainting und Outpainting, maskenbasierte Bildbearbeitungsfunktionen. Mit dieser neuen Funktion können Nutzer bestimmte Bereiche eines Bildes bearbeiten, ohne das gesamte Bild neu generieren zu müssen. So können Sie die besten Teile Ihres Bildes beibehalten und nur das ändern, was Sie ändern möchten.

Imagen inpainting dog.png

Mit den Imagen-Bearbeitungsfunktionen können Sie präzise Änderungen an einem Bild vornehmen und gleichzeitig die Integrität des restlichen Bildes beibehalten.

Dabei werden die Kernelemente und die allgemeine Integrität des Originalbilds beibehalten und nur der Bereich in der Maske wird geändert.

Um Inpainting mit Imagen zu implementieren, initialisieren Sie zuerst imagen-3.0-capability-001 ein bestimmtes Imagen-Modell, das Bearbeitungsfunktionen unterstützt:

  // 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),
            ),
        )

Definieren Sie dann die Inpainting-Funktion:

  // 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()
    }

Sie stellen sowohl ein „sourceImage“ als auch ein „maskImage“ und einen Prompt für die Bearbeitung sowie die Anzahl der auszuführenden Bearbeitungsschritte bereit.

Sie können es in Aktion im Imagen Editing Sample im Android AI Sample-Katalog sehen.

Imagen unterstützt auch Outpainting, mit dem Sie das Modell die Pixel außerhalb einer Maske generieren lassen können. Sie können auch die Bildanpassungsfunktionen von Imagen verwenden, um den Stil eines Bildes zu ändern oder ein Motiv in einem Bild zu aktualisieren. Weitere Informationen dazu finden Sie in der Android-Entwicklerdokumentation.

Konversationelle Bildgenerierung mit Gemini 2.5 Flash Image

Eine Möglichkeit, Bilder mit Gemini 2.5 Flash Image zu bearbeiten, besteht darin, die Multi-Turn-Chatfunktionen des Modells zu nutzen.

Initialisieren Sie zuerst das Modell:

  // 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)
    }
)

Um ein ähnliches Ergebnis wie bei der oben beschriebenen maskenbasierten Imagen-Methode zu erzielen, können wir die chat API verwenden, um eine Unterhaltung mit Gemini 2.5 Flash Image zu starten.

  // 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

Ein Beispiel für die Verwendung finden Sie im Gemini Image Chat-Beispiel im Android AI-Beispielkatalog. Weitere Informationen finden Sie in der Android-Dokumentation.

Schlusswort

Sowohl Imagen als auch Gemini 2.5 Flash Image bieten leistungsstarke Funktionen. Je nach Anwendungsfall können Sie das ideale Modell für die Bildgenerierung auswählen, um Ihre App zu personalisieren und die Nutzerinteraktion zu steigern.

Verfasst von:

Weiterlesen