ایجاد تصاویر با Imagen 3

Imagen 3 یک مدل تولید تصویر است. می‌توان از آن برای تولید آواتارهای سفارشی برای نمایه‌های کاربر یا ادغام دارایی‌های بصری شخصی‌شده در جریان‌های صفحه موجود برای افزایش تعامل کاربر استفاده کرد.

می‌توانید با استفاده از Firebase AI Logic SDK به مدل‌های Imagen از برنامه Android خود دسترسی پیدا کنید. مدل‌های Imagen با استفاده از هر دو ارائه‌دهنده API AI Logic Firebase در دسترس هستند: Gemini Developer API (توصیه‌شده برای اکثر توسعه‌دهندگان) و Vertex AI.

نموداری که معماری یکپارچه سازی منطق هوش مصنوعی Firebase را نشان می دهد        برای دسترسی به Gemini Developer API. یک برنامه اندروید از Firebase استفاده می کند        Android SDK برای اتصال به Firebase. سپس Firebase با آن تعامل دارد        Gemini Developer API، که به Gemini Pro & Flash در داخل دسترسی دارد        ابر
شکل 1. با استفاده از Firebase AI Logic به مدل های Imagen 3 دسترسی پیدا کنید.

با دستورات آزمایش کنید

ایجاد درخواست های ایده آل اغلب به تلاش های متعدد نیاز دارد. می‌توانید با درخواست‌های تصویر در Vertex AI Studio ، یک IDE برای طراحی سریع و نمونه‌سازی آزمایش کنید. برای راهنمایی در مورد چگونگی بهبود درخواست‌های خود، راهنمای ویژگی فرمان و تصویر را مرور کنید.

تصویری از رابط Google Cloud Vertex AI Studio،       نمایش چهار تصویر تولید شده از یک تی رکس با یک کوله پشتی آبی در یک       جنگل ماقبل تاریخ نوار کناری سمت چپ گزینه های ناوبری مانند       داشبورد، مدل باغ و ویژن، در حالی که پنل سمت راست شامل       پارامترهای تنظیمات تولید تصویر
شکل 2. Vertex AI Studio می تواند به شما کمک کند تا درخواست های تولید تصویر خود را اصلاح کنید.

یک پروژه Firebase راه اندازی کنید و برنامه خود را متصل کنید

برای افزودن Firebase به پروژه Android خود، مراحل موجود در اسناد Firebase را دنبال کنید.

وابستگی Gradle را اضافه کنید

وابستگی های زیر را به فایل build.gradle خود اضافه کنید:

dependencies {
  // Import the BoM for the Firebase platform
  implementation(platform("com.google.firebase:firebase-bom:33.14.0"))

  // Add the dependency for the Firebase AI Logic library. When using the BoM,
  // you don't specify versions in Firebase library dependencies
  implementation("com.google.firebase:firebase-ai")
}

یک تصویر تولید کنید

برای ایجاد یک تصویر در برنامه Android خود، با نمونه سازی یک ImagenModel با یک پیکربندی اختیاری شروع کنید.

شما می توانید از پارامتر generationConfig برای تعریف یک اعلان منفی، تعداد تصاویر، نسبت تصویر خروجی، فرمت تصویر و اضافه کردن یک واترمارک استفاده کنید. می توانید از پارامتر safetySettings برای پیکربندی فیلترهای ایمنی و شخص استفاده کنید.

کاتلین

val config = ImagenGenerationConfig {
    numberOfImages = 2,
    aspectRatio = ImagenAspectRatio.LANDSCAPE_16x9,
    imageFormat = ImagenImageFormat.jpeg(compressionQuality = 100),
    addWatermark = false
}

// Initialize the Gemini Developer API backend service
// For Vertex AI use Firebase.ai(backend = GenerativeBackend.vertexAI())
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).imagenModel(
    modelName = "imagen-3.0-generate-002",
    generationConfig = config,
    safetySettings = ImagenSafetySettings(
       safetyFilterLevel = ImagenSafetyFilterLevel.BLOCK_LOW_AND_ABOVE,
       personFilterLevel = ImagenPersonFilterLevel.BLOCK_ALL
    )
)

جاوا

ImagenGenerationConfig config = new ImagenGenerationConfig.Builder()
    .setNumberOfImages(2)
    .setAspectRatio(ImagenAspectRatio.LANDSCAPE_16x9)
    .setImageFormat(ImagenImageFormat.jpeg(100))
    .setAddWatermark(false)
    .build();

// For Vertex AI use Firebase.ai(backend = GenerativeBackend.vertexAI())
ImagenModelFutures model = ImagenModelFutures.from(
    FirebaseAI.ai(backend = GenerativeBackend.googleAI()).imagenModel(
       "imagen-3.0-generate-002",
       config,
       ImagenSafetySettings.builder()
          .setSafetyFilterLevel(ImagenSafetyFilterLevel.BLOCK_LOW_AND_ABOVE)
          .setPersonFilterLevel(ImagenPersonFilterLevel.BLOCK_ALL)
          .build())
);

هنگامی که ImagenModel شما نمونه سازی شد، می توانید با فراخوانی generateImages تصاویر ایجاد کنید:

کاتلین

val imageResponse = model.generateImages(
  prompt = "An astronaut riding a horse",
)
val image = imageResponse.images.first
val bitmapImage = image.asBitmap()

جاوا

CompletableFuture<GenerateContentResponse> futureResponse =
    model.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();
}