Imagen הוא מודל ליצירת תמונות. אפשר להשתמש בו כדי ליצור אווטרים בהתאמה אישית לפרופילי משתמשים, או כדי לשלב נכסים חזותיים מותאמים אישית בתהליכים קיימים במסכים כדי להגביר את מעורבות המשתמשים.
אתם יכולים לגשת למודלים של Imagen מאפליקציית Android באמצעות Firebase AI Logic SDK. מודלים של Imagen זמינים באמצעות ספקי API של Firebase AI Logic: Gemini Developer API (מומלץ לרוב המפתחים) ו-Vertex AI.
התנסות בהנחיות
לפעמים צריך לנסות כמה פעמים כדי ליצור את ההנחיות האידיאליות. אתם יכולים להתנסות בהנחיות ליצירת תמונות ב-Vertex AI Studio, סביבת פיתוח משולבת (IDE) לעיצוב הנחיות וליצירת אב טיפוס. טיפים לשיפור ההנחיות זמינים במדריך להנחיות ולמאפייני תמונות.

הגדרת פרויקט Firebase וקישור האפליקציה
פועלים לפי השלבים במסמכי התיעוד של Firebase כדי להוסיף את Firebase לפרויקט Android.
הוספת יחסי התלות של Gradle
מוסיפים את יחסי התלות הבאים לקובץ build.gradle
:
dependencies {
// Import the BoM for the Firebase platform
implementation(platform("com.google.firebase:firebase-bom:34.2.0"))
// Add the dependency for the Firebase AI Logic library. When using the BoM,
// you don't specify versions in Firebase library dependencies
implementation("com.google.firebase:firebase-ai")
}
יצירת תמונה
כדי ליצור תמונה באפליקציית Android, מתחילים ביצירת מופע של ImagenModel
עם הגדרה אופציונלית.
אפשר להשתמש בפרמטר generationConfig
כדי להגדיר הנחיה שלילית, את מספר התמונות, את יחס הגובה-רוחב של תמונת הפלט, את פורמט התמונה ולהוסיף סימן מים. אפשר להשתמש בפרמטר safetySettings
כדי להגדיר את המסננים של בטיחות ושל אנשים.
Kotlin
val config = ImagenGenerationConfig {
numberOfImages = 2,
aspectRatio = ImagenAspectRatio.LANDSCAPE_16x9,
imageFormat = ImagenImageFormat.jpeg(compressionQuality = 100),
addWatermark = false
}
// Initialize the Gemini Developer API backend service
// For Vertex AI use Firebase.ai(backend = GenerativeBackend.vertexAI())
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).imagenModel(
modelName = "imagen-3.0-generate-002",
generationConfig = config,
safetySettings = ImagenSafetySettings(
safetyFilterLevel = ImagenSafetyFilterLevel.BLOCK_LOW_AND_ABOVE,
personFilterLevel = ImagenPersonFilterLevel.BLOCK_ALL
)
)
Java
ImagenGenerationConfig config = new ImagenGenerationConfig.Builder()
.setNumberOfImages(2)
.setAspectRatio(ImagenAspectRatio.LANDSCAPE_16x9)
.setImageFormat(ImagenImageFormat.jpeg(100))
.setAddWatermark(false)
.build();
// For Vertex AI use Firebase.ai(backend = GenerativeBackend.vertexAI())
ImagenModelFutures model = ImagenModelFutures.from(
FirebaseAI.ai(backend = GenerativeBackend.googleAI()).imagenModel(
"imagen-3.0-generate-002",
config,
ImagenSafetySettings.builder()
.setSafetyFilterLevel(ImagenSafetyFilterLevel.BLOCK_LOW_AND_ABOVE)
.setPersonFilterLevel(ImagenPersonFilterLevel.BLOCK_ALL)
.build())
);
אחרי שיוצרים מופע של ImagenModel
, אפשר ליצור תמונות על ידי קריאה ל-generateImages
:
Kotlin
val imageResponse = model.generateImages(
prompt = "An astronaut riding a horse",
)
val image = imageResponse.images.first
val bitmapImage = image.asBitmap()
Java
CompletableFuture<GenerateContentResponse> futureResponse =
model.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();
}