Генерируйте изображения с помощью Imagen


Vertex AI в Firebase SDK предоставляет вам доступ к моделям Imagen 3 (через Imagen API ), чтобы вы могли создавать изображения из текстовой подсказки. Благодаря этой возможности вы можете делать такие вещи, как:

  • Генерируйте изображения из подсказок, написанных на естественном языке.
  • Создавайте изображения в широком диапазоне форматов и стилей.
  • Рендеринг текста в изображениях

Обратите внимание, что Vertex AI в Firebase пока не поддерживает все функции, доступные для моделей Imagen . Подробную информацию см. в разделе «Поддерживаемые возможности и функции» далее на этой странице.

Перейти к коду для ввода только текста

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

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

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

  • Убедитесь, что вы используете как минимум следующие версии библиотеки Firebase:
    iOS+ : v11.9.1+ | Android : v16.2.0+ ( BoM : v33.10.0+) | Интернет : v11.4.1+ | Flutter : v1.4.0+ (BoM: v3.8.0+)

  • Инициализируйте ImagenModel ( не GenerativeModel )

  • Отправьте приглашение при вызове метода generateImages() ( не для generateContent() или generateContentStream() ).

Инициализация ImagenModel и использование метода generateImages() показаны в примерах на этой странице.

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

Генерация изображений поддерживается моделями Imagen 3 . Скоро появится поддержка генерации изображений моделями Gemini 2.0 .

Генерация изображений из текстового ввода

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

Создать одно изображение из текстового ввода

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

Вы можете попросить модель Imagen сгенерировать одно изображение, запросив текст.

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize with an Imagen 3 model that supports your use case
let model = vertex.imagenModel(modelName: "imagen-3.0-generate-002")

// Provide an image generation prompt
let prompt = "An astronaut riding a horse"

// To generate an image, call `generateImages` with the text prompt
let response = try await model.generateImages(prompt: prompt)

// Handle the generated image
guard let image = response.images.first else {
  fatalError("No image in the response.")
}
let uiImage = UIImage(data: image.data)

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

Создание нескольких изображений из текстового ввода

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

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

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize with an Imagen 3 model that supports your use case
let model = vertex.imagenModel(
  modelName: "imagen-3.0-generate-002",
  // Configure the model to generate multiple images for each request
  // See: https://firebase.google.com/docs/vertex-ai/model-parameters
  generationConfig: ImagenGenerationConfig(numberOfImages: 4)
)

// Provide an image generation prompt
let prompt = "An astronaut riding a horse"

// To generate images, call `generateImages` with the text prompt
let response = try await model.generateImages(prompt: prompt)

// If fewer images were generated than were requested,
// then `filteredReason` will describe the reason they were filtered out
if let filteredReason = response.filteredReason {
  print(filteredReason)
}

// Handle the generated images
let uiImages =  response.images.compactMap { UIImage(data: $0.data) }

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

Поддерживаемые функции и требования

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

Поддерживаемые возможности и функции

Vertex AI в Firebase поддерживает эти функции моделей Imagen 3 .

  • Генерация людей и лиц (при условии, что ваш проект Firebase одобрен Google Cloud )

  • Генерация текста внутри сгенерированных изображений

  • Добавление водяного знака к созданным изображениям

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

  • Настройка параметров безопасности

Vertex AI в Firebase не поддерживает эти расширенные функции моделей Imagen 3 .

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

  • Функции редактирования или манипулирования изображениями, включая масштабирование изображений.

  • Включение изображений в запрос к модели (как при обучении по нескольким кадрам)

  • Проверка цифровых водяных знаков с помощью SDK
    Если вы хотите убедиться, что изображение имеет водяной знак, вы можете загрузить изображение в Vertex AI Studio, используя вкладку «Медиа» .

  • Генерация «живых изображений» из текста (генерация MP4)

  • Создание изображений с использованием предопределенного стиля

  • Установка языка входного текста

  • Включение includeSafetyAttributes означает, что safetyAttributes.categories и safetyAttributes.scores не могут быть возвращены.

  • Отключение улучшения подсказки (параметр enhancePrompt ). Это означает, что инструмент переписывания подсказки на основе LLM всегда будет автоматически добавлять больше деталей к предоставленной подсказке, чтобы предоставлять изображения более высокого качества, которые лучше отражают предоставленную подсказку.

  • Запись сгенерированного изображения непосредственно в Google Cloud Storage как часть ответа модели (параметр storageUri ). Вместо этого изображения всегда возвращаются в ответе как байты изображения в кодировке Base64.
    Если вы хотите загрузить сгенерированное изображение в Cloud Storage , вы можете использовать Cloud Storage for Firebase .

Технические характеристики и ограничения

Лимиты (за запрос) Изображение 3 Изображение 3 Быстрое
Максимальное количество входных токенов 480 жетонов 480 жетонов
Максимальное количество выходных изображений 4 изображения 4 изображения
Поддерживаемое разрешение выходного изображения (пикселей)
  • 1024x1024 пикселей (соотношение сторон 1:1)
  • 896x1280 (соотношение сторон 3:4)
  • 1280x896 (соотношение сторон 4:3)
  • 768x1408 (соотношение сторон 9:16)
  • 1408x768 (соотношение сторон 16:9)
  • 1024x1024 пикселей (соотношение сторон 1:1)
  • 896x1280 (соотношение сторон 3:4)
  • 1280x896 (соотношение сторон 4:3)
  • 768x1408 (соотношение сторон 9:16)
  • 1408x768 (соотношение сторон 16:9)

Что еще вы можете сделать?

Узнайте, как контролировать создание контента

Узнайте больше о поддерживаемых моделях

Узнайте о моделях, доступных для различных вариантов использования , а также об их квотах и ​​ценах .


Оставьте отзыв о своем опыте использования Vertex AI в Firebase.