Tạo hình ảnh bằng Imagen 3

Imagen 3 là một mô hình tạo hình ảnh. Bạn có thể dùng công cụ này để tạo hình đại diện tuỳ chỉnh cho hồ sơ người dùng hoặc để tích hợp các thành phần hình ảnh được cá nhân hoá vào luồng màn hình hiện có nhằm tăng mức độ tương tác của người dùng.

Bạn có thể truy cập vào các mô hình Imagen từ ứng dụng Android bằng cách sử dụng Vertex AI trong SDK Firebase.

Truy cập vào các mô hình Imagen 3 bằng Vertex AI in Firebase
Hình 1. Truy cập vào các mô hình Imagen 3 bằng Vertex AI in Firebase.

Thử nghiệm với câu lệnh

Bạn thường phải thử nhiều lần mới tạo được câu lệnh lý tưởng. Bạn có thể thử nghiệm với câu lệnh hình ảnh trong Vertex AI Studio, một IDE để thiết kế và tạo nguyên mẫu câu lệnh. Để biết mẹo cải thiện câu lệnh, hãy xem hướng dẫn về câu lệnh và thuộc tính hình ảnh.

Vertex AI Studio có thể giúp bạn tinh chỉnh câu lệnh tạo hình ảnh
Hình 2. Vertex AI Studio có thể giúp bạn tinh chỉnh câu lệnh tạo hình ảnh.

Thiết lập dự án Firebase và kết nối ứng dụng

Làm theo các bước trong tài liệu Firebase để thêm Firebase vào dự án Android.

Thêm phần phụ thuộc Gradle

Thêm các phần phụ thuộc sau vào tệp ứng dụng build.gradle:

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

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

Imagen 3 trong Vertex AI in Firebase yêu cầu Firebase BOM 33.10.0 trở lên.

Tạo hình ảnh

Để tạo hình ảnh trong ứng dụng Android, hãy bắt đầu bằng cách tạo bản sao của ImagenModel có cấu hình không bắt buộc.

Bạn có thể sử dụng tham số generationConfig để xác định lời nhắc phủ định, số lượng hình ảnh, tỷ lệ khung hình hình ảnh đầu ra, định dạng hình ảnh và thêm hình mờ. Bạn có thể sử dụng tham số safetySettings để định cấu hình bộ lọc an toàn và bộ lọc người.

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

Sau khi tạo bản sao ImagenModel, bạn có thể tạo hình ảnh bằng cách gọi 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();
}

Các bước tiếp theo