Imagen 3 是圖像生成模型。您可以使用這項功能為使用者個人資料產生自訂顯示圖片,或是將個人化視覺素材資源整合至現有的畫面流程,以提高使用者參與度。
您可以使用 Firebase SDK 中的 Vertex AI,從 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")
}
如要使用 Firebase 中的 Vertex AI 的 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 總覽
- 進一步瞭解如何在 Firebase SDK 中使用 Vertex AI 存取 Imagen
- 查看 Google Cloud Imagen API 參考資料
- 進一步瞭解 Google 的負責任的 AI 做法