Imagen 3 ile resim oluşturma

Imagen 3, görüntü üretme modelidir. Kullanıcı profilleri için özel avatarlar oluşturmak veya kullanıcı etkileşimini artırmak amacıyla kişiselleştirilmiş görsel öğeleri mevcut ekran akışlarına entegre etmek için kullanılabilir.

Firebase SDK'sındaki Vertex AI'ı kullanarak Android uygulamanızdan Imagen modellerine erişebilirsiniz.

Firebase'da Vertex AI'ı kullanarak Imagen 3 modellerine erişme
Şekil 1. Firebase'da Vertex AI'ı kullanarak Imagen 3 modellerine erişebilirsiniz.

İstemlerle deneme yapma

İdeal istemleri oluşturmak genellikle birden fazla deneme gerektirir. İstem tasarımı ve prototip oluşturma için bir IDE olan Vertex AI Studio'da görüntü istemleriyle denemeler yapabilirsiniz. İstemlerinizi iyileştirmeyle ilgili ipuçları için istem ve resim özelliği kılavuzunu inceleyin.

Vertex AI Studio, resim oluşturma istemlerinizi hassaslaştırmanıza yardımcı olabilir
Şekil 2. Vertex AI Studio, resim oluşturma istemlerinizi hassaslaştırmanıza yardımcı olabilir.

Firebase projesi oluşturma ve uygulamanızı bağlama

Firebase'i Android projenize eklemek için Firebase dokümanlarında yer alan adımları uygulayın.

Gradle bağımlılığını ekleme

build.gradle uygulama dosyanıza aşağıdaki bağımlılıkları ekleyin:

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

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

Firebase'deki Vertex AI'da Imagen 3 için Firebase BOM 33.10.0 veya daha yeni bir sürüm gerekir.

Resim oluşturma

Android uygulamanızda bir resim oluşturmak için isteğe bağlı bir yapılandırmayla bir ImagenModel örneği oluşturarak başlayın.

Negatif istemi, resim sayısını, çıkış resmi en boy oranını, resim biçimini tanımlamak ve filigran eklemek için generationConfig parametresini kullanabilirsiniz. Güvenlik ve kişi filtrelerini yapılandırmak için safetySettings parametresini kullanabilirsiniz.

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 nesnesi oluşturulduktan sonra generateImages'i çağırarak resim oluşturabilirsiniz:

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();
}

Sonraki adımlar