إنشاء صور باستخدام Imagen 3

‫Imagen 3 هو نموذج لإنشاء الصور. ويمكن استخدامها لإنشاء نماذج رمزية مخصّصة لملفات المستخدمين الشخصية أو لدمج مواد عرض مرئية مخصّصة في مسار تنقّل الشاشة الحالي لزيادة تفاعل المستخدمين.

يمكنك الوصول إلى نماذج Imagen من تطبيق Android باستخدام حزمة تطوير برامج Vertex AI في Firebase.

الوصول إلى نماذج 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 استخدام حزمة BOM 33.10.0 من Firebase أو إصدار أحدث.

إنشاء صورة

لإنشاء صورة في تطبيق Android، ابدأ بإنشاء مثيل لمحاولة ImagenModel باستخدام إعداد اختياري.

يمكنك استخدام المَعلمة generationConfig لتحديد طلب سلبي، وعدد الصور ونسبة عرض إلى ارتفاع الصورة الناتجة وتنسيق الصورة وإضافة علامة مائية. يمكنك استخدام المَعلمة safetySettings لضبط فلاتر safety وperson.

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

الخطوات التالية