Imagen 3 की मदद से इमेज जनरेट करना

Imagen 3, इमेज जनरेट करने वाला मॉडल है. इसका इस्तेमाल, उपयोगकर्ता प्रोफ़ाइलों के लिए पसंद के मुताबिक अवतार जनरेट करने के लिए किया जा सकता है. इसके अलावा, उपयोगकर्ता के जुड़ाव को बढ़ाने के लिए, मौजूदा स्क्रीन फ़्लो में उपयोगकर्ता के हिसाब से विज़ुअल ऐसेट इंटिग्रेट करने के लिए भी इसका इस्तेमाल किया जा सकता है.

Firebase SDK टूल में Vertex AI का इस्तेमाल करके, अपने Android ऐप्लिकेशन से Imagen मॉडल ऐक्सेस किए जा सकते हैं.

Firebase में Vertex AI का इस्तेमाल करके, Imagen 3 मॉडल ऐक्सेस करना
पहली इमेज. Firebase में Vertex AI का इस्तेमाल करके, Imagen 3 मॉडल ऐक्सेस करें.

प्रॉम्प्ट आज़माना

आम तौर पर, सही प्रॉम्प्ट बनाने के लिए कई बार कोशिश करनी पड़ती है. Vertex AI Studio में इमेज प्रॉम्प्ट आज़माए जा सकते हैं. यह प्रॉम्प्ट डिज़ाइन और प्रोटोटाइप बनाने के लिए एक आईडीई है. प्रॉम्प्ट को बेहतर बनाने के बारे में सलाह पाने के लिए, प्रॉम्प्ट और इमेज एट्रिब्यूट की गाइड देखें.

Vertex AI Studio की मदद से, इमेज जनरेशन प्रॉम्प्ट को बेहतर बनाया जा सकता है
दूसरी इमेज. Vertex AI Studio की मदद से, इमेज जनरेट करने के लिए दिए गए प्रॉम्प्ट को बेहतर बनाया जा सकता है.

Firebase प्रोजेक्ट सेट अप करना और अपना ऐप्लिकेशन कनेक्ट करना

अपने Android प्रोजेक्ट में Firebase जोड़ने के लिए, Firebase दस्तावेज़ में दिए गए निर्देशों का पालन करें.

Gradle डिपेंडेंसी जोड़ना

अपनी build.gradle ऐप्लिकेशन फ़ाइल में ये डिपेंडेंसी जोड़ें:

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

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

Firebase में Vertex AI में Imagen 3 का इस्तेमाल करने के लिए, 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();
}

अगले चरण