יצירת תמונות באמצעות Imagen 3

Imagen 3 הוא מודל ליצירת תמונות. אפשר להשתמש בה כדי ליצור דמויות ייחודיות בהתאמה אישית לפרופיל המשתמש, או כדי לשלב נכסים חזותיים מותאמים אישית במסלולי מסך קיימים כדי להגביר את ההתעניינות של המשתמשים.

אתם יכולים לגשת למודלים של Imagen מאפליקציית Android שלכם באמצעות Vertex AI ב-Firebase SDK.

גישה למודלים של Imagen 3 באמצעות Vertex AI ב-Firebase
איור 1. גישה למודלים של Imagen 3 באמצעות Vertex AI ב-Firebase.

התנסות בהנחיות

לרוב, צריך לנסות כמה פעמים כדי ליצור את ההנחיות האידיאליות. אתם יכולים להתנסות בהנחיות תמונה ב-Vertex AI Studio, סביבת פיתוח משולבת (IDE) ליצירת אב טיפוס ולעיצוב של הנחיות. טיפים לשיפור ההנחיות מופיעים במדריך בנושא הנחיות ומאפייני תמונות.

Vertex AI Studio יכול לעזור לכם לשפר את ההנחיות ליצירת תמונות
איור 2. Vertex AI Studio יכול לעזור לכם לשפר את ההנחיות ליצירת תמונות.

הגדרת פרויקט Firebase וקישור האפליקציה

פועלים לפי השלבים במסמכי העזרה של Firebase כדי להוסיף את Firebase לפרויקט Android.

מוסיפים את יחסי התלות ב-Gradle

מוסיפים את יחסי התלות הבאים לקובץ האפליקציה build.gradle:

dependencies {
    implementation(platform("com.google.firebase:firebase-bom:33.9.0"))

    implementation("com.google.firebase:firebase-vertexai")
}

כדי להשתמש ב-Imagen 3 ב-Vertex AI ב-Firebase, צריך 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();
}

השלבים הבאים