يمكن أن تؤدي إضافة صور مخصصة إلى تطبيقك إلى تحسين تجربة المستخدم وتخصيصها بشكل كبير وتعزيز مشاركة المستخدم. يستكشف هذا المنشور قدرتين جديدتين لتوليد الصور باستخدام Firebase AI Logic: ميزات تحرير Imagen المتخصصة، قيد المعاينة حاليًا، والتوفر العام لـ Gemini 2.5 Flash Image (المعروف أيضًا باسم “Nano Banana”)، المصمم لإنشاء صور سياقية أو تحادثية.
تعزيز تفاعل المستخدم مع الصور التي تم إنشاؤها عبر Firebase AI Logic
يمكن استخدام نماذج إنشاء الصور لإنشاء صور رمزية مخصصة لملف تعريف المستخدم أو لدمج الأصول المرئية المخصصة مباشرةً في تدفقات الشاشة الرئيسية.
على سبيل المثال، يقدم Imagen ميزات تحرير جديدة (في معاينة المطور). يمكنك الآن رسم قناع واستخدام الطلاء الداخلي لإنشاء وحدات بكسل داخل المنطقة المقنعة. بالإضافة إلى ذلك، يتوفر الطلاء الخارجي لإنشاء وحدات بكسل خارج القناع.

يدعم Imagen الرسم الداخلي، مما يسمح بإنشاء جزء فقط من الصورة.
وبدلاً من ذلك، يمكن لـ Gemini 2.5 Flash Image (المعروفة أيضًا باسم Nano Banana) استخدام المعرفة العالمية الموسعة والقدرات المنطقية لنماذج Gemini لإنشاء صور ذات صلة بالسياق، وهي مثالية لإنشاء رسوم توضيحية ديناميكية تتوافق مع تجربة المستخدم الحالية داخل التطبيق.
استخدم Gemini 2.5 Flash Image لإنشاء رسوم توضيحية ديناميكية ذات صلة بالسياق لتطبيقك. وأخيرًا، تتيح القدرة على تحرير الصور بشكل تحادثي وتكراري للمستخدمين تحرير الصورة باستخدام اللغة الطبيعية.

استخدم Gemini 2.5 Flash Image لتحرير صورة باستخدام اللغة الطبيعية.
عند البدء في دمج الذكاء الاصطناعي في تطبيقك، من المهم التعرف عليه سلامة الذكاء الاصطناعي. ومن المهم بشكل خاص تقييم المخاطر الأمنية لتطبيقك، والنظر في التعديلات للتخفيف من مخاطر السلامة، وإجراء اختبارات السلامة المناسبة لحالة الاستخدام الخاصة بك، وطلب تعليقات المستخدمين ومراقبة المحتوى.
Imagen أو Gemini: الخيار لك
الفرق بين الجوزاء 2.5 صورة فلاش (“نانو الموز”) و إيماجين يكمن في تركيزهم الأساسي وقدراتهم المتقدمة. Gemini 2.5 Flash Image، كنموذج صورة ضمن عائلة Gemini الأكبر، تتفوق في تحرير الصور التحادثية، والحفاظ على السياق واتساق الموضوع عبر التكرارات المتعددة، والاستفادة من “المعرفة والتفكير العالمي” لإنشاء صور مرئية ذات صلة بالسياق أو تضمين صور دقيقة ضمن تسلسلات نصية طويلة.
Imagen هو نموذج Google المتخصص لتوليد الصور، وهو مصمم لمزيد من التحكم الإبداعي، ويتخصص في المخرجات الواقعية للغاية، والتفاصيل الفنية، والأنماط المحددة، ويوفر عناصر تحكم واضحة لتحديد نسبة العرض إلى الارتفاع أو تنسيق الصورة التي تم إنشاؤها.
|
صور فلاش الجوزاء 2.5 (نانو الموز 🍌) |
إيماجين |
|
🌎 المعرفة العالمية والتفكير في المزيد من الصور ذات الصلة بالسياق
💬 تحرير الصور محادثة مع الحفاظ على السياق
📖 تضمين صور دقيقة ضمن تسلسلات نصية طويلة |
📐 تحديد نسبة العرض إلى الارتفاع أو تنسيق الصور التي تم إنشاؤها
🖌️دعم التحرير القائم على القناع للرسم الداخلي والخارجي.
🎚️ تحكم أكبر في تفاصيل الصورة التي تم إنشاؤها (الجودة والتفاصيل الفنية والأنماط المحددة) |
دعونا نرى كيفية استخدامها في التطبيق الخاص بك.
الرسم باستخدام Imagen
منذ بضعة أشهر، أصدرنا ميزات تحرير جديدة لـ Imagen. على الرغم من أن Imagen جاهز الآن للإنتاج لتوليد الصور، إلا أن ميزات التحرير لا تزال موجودة معاينة المطور.
تتضمن ميزات تحرير الصور com.inpainting و رسم خارجي، ميزات تحرير الصور القائمة على القناع. تتيح هذه الإمكانية الجديدة للمستخدمين تعديل مناطق محددة من الصورة دون إعادة إنشاء الصورة بأكملها. هذا يعني أنه يمكنك الحفاظ على أفضل أجزاء صورتك وتغيير ما ترغب في تغييره فقط.
استخدم ميزات تحرير Imagen لإجراء تغييرات مستهدفة دقيقة في الصورة وضمان بقية سلامة الصورةيتم إجراء هذه التغييرات مع الحفاظ على العناصر الأساسية والسلامة العامة للصورة الأصلية وتعديل المنطقة الموجودة في القناع فقط.
لتنفيذ inpainting باستخدام Imagen، قم بالتهيئة أولاً imagen-3.0-capability-001 نموذج Imagen محدد يدعم ميزات التحرير:
// Copyright 2025 Google LLC.
// SPDX-License-Identifier: Apache-2.0
val editingModel =
Firebase.ai(backend = GenerativeBackend.vertexAI()).imagenModel(
"imagen-3.0-capability-001",
generationConfig = ImagenGenerationConfig(
numberOfImages = 1,
aspectRatio = ImagenAspectRatio.SQUARE_1x1,
imageFormat = ImagenImageFormat.jpeg(compressionQuality = 75),
),
)
من هناك، حدد وظيفة inpainting:
// Copyright 2025 Google LLC.
// SPDX-License-Identifier: Apache-2.0
val prompt = "remove the pancakes and make it an omelet instead"
suspend fun inpaintImageWithMask(sourceImage: Bitmap, maskImage: Bitmap, prompt: String, editSteps: Int = 50): Bitmap {
val imageResponse = editingModel.editImage(
referenceImages = listOf(
ImagenRawImage(sourceImage.toImagenInlineImage()),
ImagenRawMask(maskImage.toImagenInlineImage()),
),
prompt = prompt,
config = ImagenEditingConfig(
editMode = ImagenEditMode.INPAINT_INSERTION,
editSteps = editSteps,
),
)
return imageResponse.images.first().asBitmap()
}
يمكنك توفير كل من أ sourceImage، أ MaskImage و أ اِسْتَدْعَى للتحرير وعدد خطوات التحرير التي سيتم تنفيذها.
يمكنك أن ترى ذلك في العمل في نموذج لتحرير الصور في كتالوج نماذج Android AI!
ويدعم Imagen أيضًا رسم خارجي يمكّنك من السماح للنموذج بإنشاء وحدات البكسل خارج القناع. يمكنك أيضًا استخدام إمكانيات تخصيص الصور في Imagen لتغيير نمط الصورة أو تحديث موضوع في الصورة. اقرأ المزيد عنها في وثائق مطور أندرويد.
إنشاء صور للمحادثة باستخدام Gemini 2.5 Flash Image
تتمثل إحدى طرق تحرير الصور باستخدام Gemini 2.5 Flash Image في استخدام إمكانات الدردشة متعددة المنعطفات الخاصة بالنموذج.
أولاً، تهيئة النموذج:
// Copyright 2025 Google LLC.
// SPDX-License-Identifier: Apache-2.0
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
modelName = "gemini-2.5-flash-image",
// Configure the model to respond with text and images (required)
generationConfig = generationConfig {
responseModalities = listOf(ResponseModality.TEXT,
ResponseModality.IMAGE)
}
)
لتحقيق نتيجة مماثلة لطريقة Imagen القائمة على القناع الموصوفة أعلاه، يمكننا الاستفادة من محادثة API لبدء محادثة مع Gemini 2.5 Flash Image.
// Copyright 2025 Google LLC.
// SPDX-License-Identifier: Apache-2.0
// Initialize the chat
val chat = model.startChat()
// Load a bitmap
val source = ImageDecoder.createSource(context.contentResolver, uri)
val bitmap = ImageDecoder.decodeBitmap(source)
// Create the initial prompt instructing the model to edit the image
val prompt = content {
image(bitmap)
text("remove the pancakes and add an omelet")
}
// To generate an initial response, send a user message with the image and text prompt
var response = chat.sendMessage(prompt)
// Inspect the returned image
var generatedImageAsBitmap = response
.candidates.first().content.parts.filterIsInstance<ImagePart>().firstOrNull()?.image
// Follow up requests do not need to specify the image again
response = chat.sendMessage("Now, center the omelet in the pan")
generatedImageAsBitmap = response
.candidates.first().content.parts.filterIsInstance<ImagePart>().firstOrNull()?.image
يمكنك أن ترى ذلك في العمل في عينة من دردشة صور الجوزاء في كتالوج Android AI Sample واقرأ المزيد عنه في وثائق الروبوت.
خاتمة
يوفر كل من Imagen وGemini 2.5 Flash Image إمكانات قوية، مما يسمح لك بتحديد نموذج إنشاء الصور المثالي لتخصيص تطبيقك وتعزيز مشاركة المستخدم، اعتمادًا على حالة الاستخدام المحددة الخاصة بك.

