向应用添加自定义图片可以显著改善用户体验并实现个性化,从而提高用户互动度。本文将介绍 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 • 阅读用时 3 分钟
-
产品动态
今天,我们发布了 Gemini 3 Flash,为 Gemini 3 模型家族增添了新成员。它在提供前沿智能的同时,专为高速处理而设计,且成本大幅降低。
Thomas Ezan • 阅读用时 2 分钟
-
产品动态
Android Studio Panda 4 现在已是稳定版,可在生产环境中使用。此版本引入了规划模式、下一项修改预测等功能,让您比以往更轻松地构建高质量的 Android 应用。
Matt Dyor • 阅读用时 5 分钟
随时了解最新动态
每周通过电子邮件接收最新的 Android 开发洞见 每周。