สร้างรูปภาพด้วย 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 เพื่อกำหนดค่าตัวกรองความปลอดภัยและตัวกรองบุคคลได้

ในเอกสารประกอบของ Firebase

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

ขั้นตอนถัดไป