Расширьте содержимое изображения, используя функцию «Outpainting» в Imagen


На этой странице описывается, как использовать функцию outpainting с помощью Imagen для расширения содержимого изображения за пределы его исходных границ с помощью Firebase AI Logic SDK.

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

Как это работает : вы предоставляете исходное изображение и соответствующее изображение с маской (сгенерированное автоматически или предоставленное вами), которое определяет маску новой расширенной области. Вы также можете предоставить текстовую подсказку с описанием того, что вы хотите видеть в расширенной области, или модель может самостоятельно определить, что будет логическим продолжением существующей сцены. Модель генерирует новый контент и заполняет замаскированную область.

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

Перейти к коду

Прежде чем начать

Доступно только при использовании API Vertex AI Gemini в качестве поставщика API.

Если вы еще этого не сделали, ознакомьтесь с руководством по началу работы , в котором описывается, как настроить проект Firebase, подключить приложение к Firebase, добавить SDK, инициализировать внутреннюю службу для выбранного поставщика API и создать экземпляр ImagenModel .

Модели, поддерживающие эту возможность

Imagen предлагает редактирование изображений с помощью своей модели capability :

  • imagen-3.0-capability-001

Обратите внимание, что для моделей Imagen global местоположение не поддерживается.

Развернуть содержимое изображения

Прежде чем приступить к работе с этим примером, выполните указания раздела «Перед началом работы» данного руководства, чтобы настроить свой проект и приложение.

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

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

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

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

Быстрый

Редактирование изображений с помощью моделей Imagen не поддерживается в Swift. Следите за обновлениями в этом году!

Kotlin

Чтобы расширить изображение, используйте editImage() и настройте конфигурацию редактирования на использование ImagenEditMode.OUTPAINT .
Обратите внимание, что вы можете при желании использовать outpaintImage() вместо editImage() , и вам не нужно указывать режим редактирования.

Ознакомьтесь с кратким руководством по образцу кода для перерисовки .

Java

Чтобы расширить изображение, используйте editImage() и настройте конфигурацию редактирования на использование ImagenEditMode.OUTPAINT .
Обратите внимание, что вы можете при желании использовать outpaintImage() вместо editImage() , и вам не нужно указывать режим редактирования.

Ознакомьтесь с кратким руководством по образцу кода для перерисовки .

Web

Редактирование изображений с помощью моделей Imagen не поддерживается в веб-приложениях. Следите за обновлениями позже в этом году!

Dart

Чтобы расширить изображение, используйте editImage() и настройте конфигурацию редактирования на использование ImagenEditMode.OUTPAINT .

Ознакомьтесь с кратким руководством по образцу кода для перерисовки .

Единство

Редактирование изображений с помощью моделей Imagen не поддерживается в Unity. Следите за обновлениями позже в этом году!

Лучшие практики и ограничения

Мы рекомендуем расширять маску при редактировании изображения. Это поможет сгладить границы редактирования и сделать его более убедительным. Обычно рекомендуется значение расширения 1% или 2% ( 0.01 или 0.02 ).


Оставьте отзыв о своем опыте работы с Firebase AI Logic