在應用程式中加入自訂圖片,可大幅提升使用者體驗、打造個人化體驗,並提高使用者參與度。本文將探討 Firebase AI Logic 的兩項新圖像生成功能:目前處於預先發布階段的 Imagen 專用編輯功能,以及正式發布的 Gemini 2.5 Flash Image (又稱「Nano Banana」),專為生成情境或對話式圖像而設計。
使用 Firebase AI Logic 生成圖片,提高使用者參與度
圖像生成模型可用於建立自訂使用者個人資料顯示圖片,或直接將個人化視覺素材整合至重要畫面流程。
舉例來說,Imagen 提供新的編輯功能 (開發人員預覽版)。現在可以繪製遮罩,並使用修復功能在遮罩區域內生成像素。此外,你也可以使用外繪功能,在遮罩外生成像素。
Imagen 支援局部修復,可只生成圖片的一部分。
或者,Gemini 2.5 Flash Image (又稱 Nano Banana) 可運用 Gemini 模型擴展世界知識和推論能力,生成與脈絡相關的圖像,非常適合用來建立符合使用者目前應用程式體驗的動態插圖。
使用 Gemini 2.5 Flash Image 建立與應用程式相關的動態插圖。
最後,使用者可以透過對話和反覆編輯圖片,以自然語言編輯相片。
使用 Gemini 2.5 Flash Image,透過自然語言編輯圖片。
開始將 AI 整合至應用程式時,請務必瞭解 AI 安全性。其中最重要的是評估應用程式的資安風險、考慮調整以降低安全風險、根據用途執行適當的安全測試、徵求使用者意見回饋,以及監控內容。
Imagen 或 Gemini:任你選擇
Gemini 2.5 Flash Image (「Nano Banana」) 和 Imagen 的主要差異在於重點和進階功能。Gemini 2.5 Flash Image 是 Gemini 系列模型中的圖像模型,擅長對話式圖像編輯,可維持多個疊代項目的脈絡和主題一致性,並運用「世界知識和推論」功能,在長篇文字序列中建立脈絡相關的圖像或嵌入準確的圖像。
Imagen 是 Google 專門的圖像生成模型,可提供更強大的創作控制功能,擅長生成極為逼真的圖像、藝術細節和特定樣式,並提供明確的控制選項,可指定生成圖像的顯示比例或格式。
| Gemini 2.5 Flash Images (Nano Banana 🍌) | Imagen |
🌎 世界知識和推理能力,提供更多與情境相關的圖片 💬 透過對話編輯圖片,同時保留上下文 📖 在長文字序列中嵌入準確的視覺元素 | 📐 指定生成圖像的顯示比例或格式
🖌️支援以遮罩為基礎的編輯功能,可進行修復和外擴。
🎚️ 更精確地控制生成圖像的細節 (品質、藝術細節和特定風格) |
接下來,我們來看看如何在應用程式中使用這些功能。
使用 Imagen 修復圖片
幾個月前,我們推出了 Imagen 的新編輯功能。雖然 Imagen 已可正式用於圖像生成,但編輯功能仍處於開發人員預覽版階段。
Imagen 編輯功能包括局部編輯和外擴,以及遮罩式圖片編輯功能。這項新功能可讓使用者修改圖片的特定區域,不必重新生成整張圖片。也就是說,你可以保留圖片中最棒的部分,只修改想變更的地方。
使用 Imagen 編輯功能,精準修改圖片中的特定部分,同時確保其餘部分完整無缺
這些變更會保留原始圖片的核心元素和整體完整性,只修改遮罩區域。
如要使用 Imagen 實作修復功能,請先初始化 imagen-3.0-capability-001 支援編輯功能的特定 Imagen 模型:
// 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),
),
)接著定義修復函式:
// 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()
}您需要提供 sourceImage、maskImage、編輯提示,以及要執行的編輯步驟數量。
您可以前往 Android AI 範例目錄,查看 Imagen 編輯範例的實際運作情形!
Imagen 也支援外繪,可讓模型生成遮罩外的像素。您也可以使用 Imagen 的圖片自訂功能變更圖片風格,或更新圖片中的主題。詳情請參閱 Android 開發人員說明文件。
使用 Gemini 2.5 Flash Image 透過對話生成圖像
如要使用 Gemini 2.5 Flash Image 編輯圖片,其中一種方式是運用模型的多輪對話功能。
首先,初始化模型:
// 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)
}
)
如要達到與上述遮罩式 Imagen 方法類似的效果,可以使用 chat API 與 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
您可以在 Android AI 範例目錄中查看 Gemini 圖像訊息範例,並參閱 Android 說明文件瞭解詳情。
結語
Imagen 和 Gemini 2.5 Flash Image 都具備強大功能,您可以根據特定用途,選擇最合適的圖像生成模型,打造個人化應用程式,並提高使用者參與度。
-
產品最新消息如果您是 Android 開發人員,想在應用程式中導入創新的 AI 功能,我們最近推出了強大的新更新。
Thomas Ezan • 閱讀時間:2 分鐘 -
產品新聞今天,我們將推出 Gemini 3 Flash,擴展 Gemini 3 模型系列。這款模型以低成本提供最先進的智慧功能,而且速度飛快。
Thomas Ezan • 閱讀時間:2 分鐘 -
產品新聞今天,我們分享了如何將「不只是商店」的願景帶入下一個階段。從個人專頁 (每月活躍使用者超過 2.5 億人) 到整合式遊戲平台 (連結超過 7 億個遊戲個人資料),Google Play 都能滿足使用者的需求。
Paul Feng • 閱讀時間:3 分鐘
每週透過電子郵件接收最新的 Android 開發洞察資訊。