Imagen هو نموذج لإنشاء الصور. ويمكن استخدامها لإنشاء صور رمزية مخصّصة لملفات المستخدمين الشخصية أو لدمج مواد عرض مرئية مخصّصة في مسارات الشاشة الحالية لزيادة تفاعل المستخدمين.
يمكنك الوصول إلى نماذج Imagen من تطبيق Android باستخدام Firebase AI Logic SDK. تتوفّر نماذج Imagen باستخدام كلتا جهتَي توفير واجهة برمجة التطبيقات في Firebase AI Logic: Gemini Developer API (ننصح بها معظم المطوّرين) وVertex AI.
تجربة الطلبات
يتطلّب إنشاء الطلبات المثالية غالبًا عدّة محاولات. يمكنك تجربة طلبات الصور في Vertex AI Studio، وهي بيئة تطوير متكاملة لتصميم الطلبات وإنشاء النماذج الأولية. للحصول على نصائح حول كيفية تحسين طلباتك، راجِع دليل سمات الطلبات والصور.

إعداد مشروع على Firebase وربط تطبيقك به
اتّبِع الخطوات الواردة في مستندات Firebase من أجل إضافة Firebase إلى مشروع Android.
إضافة تبعية Gradle
أضِف التبعيات التالية إلى ملف build.gradle
:
dependencies {
// Import the BoM for the Firebase platform
implementation(platform("com.google.firebase:firebase-bom:34.2.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
لإعداد فلاتر الأمان والأشخاص.
Kotlin
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
)
)
Java
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
:
Kotlin
val imageResponse = model.generateImages(
prompt = "An astronaut riding a horse",
)
val image = imageResponse.images.first
val bitmapImage = image.asBitmap()
Java
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();
}