Новости о продуктах

Повысьте вовлеченность пользователей с помощью генератора изображений на основе ИИ

Время на чтение: 5 минут
Посмотреть профиль Томаса Эзана Посмотреть профиль пользователя Mozart Louis
Thomas Ezan и Mozart Louis

Добавление собственных изображений в приложение может значительно улучшить и персонализировать пользовательский опыт и повысить вовлеченность пользователей. В этой статье мы рассмотрим две новые возможности для генерации изображений с помощью Firebase AI Logic: специализированные функции редактирования Imagen, которые сейчас находятся на стадии предварительной версии, и общедоступную версию Gemini 2.5 Flash Image (также известную как Nano Banana), предназначенную для контекстной или диалоговой генерации изображений.

Как повысить вовлеченность пользователей с помощью изображений, созданных Firebase AI Logic

Модели генерации изображений можно использовать для создания пользовательских аватаров профиля пользователя или для интеграции персонализированных визуальных ресурсов непосредственно в ключевые потоки экрана.  

Например, в Imagen есть новые функции редактирования (в предварительной версии для разработчиков). Теперь вы можете нарисовать маску и использовать дорисовку, чтобы сгенерировать пиксели в области маски. Кроме того, вы можете использовать дорисовку, чтобы генерировать пиксели за пределами маски.   

Imagen inpainting.png

Imagen поддерживает дорисовку, позволяя генерировать только часть изображения. 

Gemini 2.5 Flash Image (также известная как Nano Banana) может использовать расширенные знания о мире и возможности рассуждения моделей Gemini для создания контекстуально релевантных изображений, что идеально подходит для создания динамических иллюстраций, соответствующих текущему опыту пользователя в приложении.   

 

In-context nano banana illustration.png

Используйте Gemini 2.5 Flash Image, чтобы создавать динамические иллюстрации, соответствующие контексту вашего приложения.

Наконец, возможность редактировать изображения в режиме диалога позволяет пользователям редактировать фотографии, используя естественный язык.

 

photo edit natural language.png

Используйте Gemini 2.5 Flash Image, чтобы редактировать изображения с помощью запросов на естественном языке.

Прежде чем интегрировать ИИ в приложение, важно узнать о безопасности ИИ. Особенно важно оценить риски безопасности вашего приложения, рассмотреть возможность корректировок для снижения рисков безопасности, провести тестирование безопасности, соответствующее вашему варианту использования, а также запрашивать отзывы пользователей и отслеживать контент.

Imagen или Gemini: выбор за вами

Разница между Gemini 2.5 Flash Image (Nano Banana) и Imagen заключается в их основном назначении и расширенных возможностях. Gemini 2.5 Flash Image – это модель для работы с изображениями в семействе Gemini. Она отлично справляется с редактированием изображений в чате, сохраняя контекст и единообразие объектов на протяжении нескольких итераций. Кроме того, она использует знания о мире и рассуждения, чтобы создавать контекстуально релевантные изображения или встраивать точные визуальные элементы в длинные текстовые последовательности.

Imagen – это специализированная модель Google для генерации изображений, которая позволяет лучше контролировать творческий процесс. Она специализируется на создании фотореалистичных изображений, художественных деталей и определенных стилей, а также предоставляет явные элементы управления для указания соотношения сторон или формата сгенерированного изображения.

Изображения Gemini 2.5 Flash
(Nano Banana 🍌)
Imagen

🌎 Понимание мира и логическое мышление для создания более релевантных изображений.

💬 Редактируйте изображения с помощью описательных запросов, сохраняя контекст.

📖 встраивать точные визуальные элементы в длинные текстовые последовательности;

📐 Укажите соотношение сторон или формат сгенерированных изображений.

 

🖌️ Поддержка редактирования на основе масок для дорисовки и расширения изображений. 

 

🎚️ Больше контроля над деталями сгенерированного изображения (качеством, художественными деталями и определенными стилями).

Давайте посмотрим, как использовать их в приложении.

Дорисовка с помощью Imagen

Несколько месяцев назад мы добавили в Imagen новые функции редактирования. Хотя Imagen уже можно использовать для генерирования изображений, функции редактирования пока доступны только в предварительной версии для разработчиков.

Функции редактирования Imagen включают дорисовку и расширение – функции редактирования изображений на основе масок. Эта новая функция позволяет пользователям изменять определенные области изображения, не генерируя его заново. Это значит, что вы можете сохранить лучшие части изображения и изменить только то, что хотите.

Imagen inpainting dog.png

Используйте функции редактирования Imagen, чтобы вносить точные изменения в изображение, не затрагивая остальные его части.

При этом основные элементы и общая целостность исходного изображения сохраняются, а изменения вносятся только в область маски.

Чтобы реализовать дорисовку с помощью 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),
            ),
        )

Затем определите функцию дорисовки:

// 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, запрос на редактирование и количество шагов редактирования, которые необходимо выполнить.

Посмотрите, как это работает, в примере редактирования изображений с помощью Imagen в каталоге Android AI Sample.

Imagen также поддерживает дорисовку, которая позволяет модели генерировать пиксели за пределами маски. Вы также можете использовать возможности Imagen по настройке изображений, чтобы изменить стиль картинки или обновить объект на ней. Подробную информацию можно найти в документации для разработчиков Android.

Генерация изображений в чате с помощью 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 на основе маски, мы можем использовать chat 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

Вы можете посмотреть, как он работает, в примере чата с изображениями Gemini в каталоге Android AI Sample, а также узнать больше в документации Android.

Заключение

И Imagen, и Gemini 2.5 Flash Image предлагают мощные возможности, позволяя вам выбрать идеальную модель генерации изображений для персонализации вашего приложения и повышения вовлеченности пользователей в зависимости от вашего конкретного случая использования.

Автор:
Продолжить чтение