Imagen 3 是一种图片生成模型。它可用于为用户个人资料生成自定义头像,或将个性化视觉素材资源集成到现有屏幕流程中,以提高用户互动度。
您可以使用 Vertex AI in Firebase SDK 从 Android 应用访问 Imagen 模型。
使用提示进行实验
创建理想的提示通常需要多次尝试。您可以在 Vertex AI Studio 中试验图片提示,该 IDE 可用于提示设计和原型设计。如需有关如何改进提示的提示,请参阅提示和图片属性指南。

设置 Firebase 项目并关联应用
按照 Firebase 文档中的步骤将 Firebase 添加到您的 Android 项目。
添加 Gradle 依赖项
将以下依赖项添加到 build.gradle
应用文件中:
dependencies {
implementation(platform("com.google.firebase:firebase-bom:33.9.0"))
implementation("com.google.firebase:firebase-vertexai")
}
Vertex AI in Firebase 中的 Imagen 3 需要 Firebase BoM 33.10.0 或更高版本。
生成图片
如需在 Android 应用中生成图片,请先使用可选配置实例化 ImagenModel
。
您可以使用 generationConfig
参数定义负例提示、图片数量、输出图片宽高比、图片格式,以及添加水印。您可以使用 safetySettings
参数配置安全过滤器和人物过滤器。
Kotlin
val imagenModel = Firebase.vertexAI.imagenModel(
modelName = "imagen-3.0-generate-001",
generationConfig = ImagenGenerationConfig(
negativePrompt = "frogs",
numberOfImages = 2,
aspectRatio = ImagenAspectRatio.LANDSCAPE_16x9,
imageFormat = ImagenImageFormat.jpeg(compressionQuality = 100),
addWatermark = false
),
safetySettings = ImagenSafetySettings(
safetyFilterLevel = ImagenSafetyFilterLevel.BLOCK_LOW_AND_ABOVE,
personFilterLevel = ImagenPersonFilterLevel.BLOCK_ALL
)
)
Java
GenerativeModel imagenModel = FirebaseVertexAI.getInstance().imagenModel(
"imagen-3.0-generate-001",
ImagenGenerationConfig.builder()
.setNegativePrompt("frogs")
.setNumberOfImages(2)
.setAspectRatio(ImagenAspectRatio.LANDSCAPE_16x9)
.setImageFormat(ImagenImageFormat.jpeg(100))
.setAddWatermark(true)
.build(),
ImagenSafetySettings.builder()
.setSafetyFilterLevel(ImagenSafetyFilterLevel.BLOCK_LOW_AND_ABOVE)
.setPersonFilterLevel(ImagenPersonFilterLevel.BLOCK_ALL)
.build()
);
实例化 ImagenModel
后,您可以通过调用 generateImages
生成图片:
Kotlin
val imageResponse = imagenModel.generateImages(
prompt = "An astronaut riding a horse",
)
val image = imageResponse.images.first
val bitmapImage = image.asBitmap()
Java
CompletableFuture<GenerateContentResponse> futureResponse =
imagenModel.generateContent(
Content.newBuilder()
.addParts(
Part.newBuilder()
.setText("An astronaut riding a horse")
.build())
.build());
try {
GenerateContentResponse imageResponse = futureResponse.get();
List<GeneratedImage> images =
imageResponse
.getCandidates(0)
.getContent()
.getParts(0)
.getInlineData()
.getImagesList();
if (!images.isEmpty()) {
GeneratedImage image = images.get(0);
Bitmap bitmapImage = image.asBitmap();
// Use bitmapImage
}
} catch (ExecutionException | InterruptedException e) {
e.printStackTrace();
}
后续步骤
- 查看 Vertex AI in Firebase 概览
- 详细了解如何使用 Vertex AI in Firebase SDK 访问 Imagen
- 查看 Google Cloud Imagen API 参考文档
- 详细了解 Google 的 Responsible AI 做法