使用 Imagen 3 生成图片

Gemini API 让你可以 Imagen 3,Google 的 先进的图像生成模型。借助 Imagen,您可以根据文本提示生成新图片。Gemini API 与 Imagen 的集成旨在帮助您构建新一代 AI 应用,以便在几秒钟内将用户提示转换为高品质的视觉素材资源。

本指南将帮助您通过 Gemini API Python 开始使用 Imagen SDK。

Imagen 3 简介

Imagen 3 是 Google 最出色的文本转图片模型,具有多项新功能和改进功能。Imagen 3 可以执行以下操作:

  • 生成细节更清晰、光线更丰富、干扰更少的图片 出现明显的差异。
  • 能理解以自然的日常语言编写的提示,无需复杂的提示工程即可生成符合预期的输出。
  • 生成各种格式和风格的图片,从逼真的风景到细腻入微的油画,再到奇思妙想的黏土动画场景。
  • 比以前的模型更有效地渲染文本,为新模型 有多种用途,例如风格化的生日贺卡、演示文稿 。

Imagen 3 采用了 Google 最新的安全和负责任创新技术,从数据和模型开发到生产都遵循相关要求。Google DeepMind 团队使用 广泛过滤和数据标签,以最大限度地减少数据集中的有害内容 并降低产生有害输出的可能性。该团队还针对公平性、偏见和内容安全等主题开展了红队攻击和评估。

如需了解详情并查看示例输出,请参阅 Google DeepMind Imagen 3 概览

开始前须知:设置项目和 API 密钥

pip install -U git+https://github.com/google-gemini/generative-ai-python@imagen

在调用 Gemini API 之前,您需要设置项目并配置 API 密钥。

生成图片

本部分介绍了如何实例化 Imagen 模型并生成图片。

要运行示例代码,您必须先安装 Pillow

pip install --upgrade Pillow

然后,安装 Pillow 和 Python SDK 后,您可以使用以下代码生成图片:

import os
import google.generativeai as genai

genai.configure(api_key=os.environ['API_KEY'])

imagen = genai.ImageGenerationModel("imagen-3.0-generate-001")

result = imagen.generate_images(
    prompt="Fuzzy bunnies in my kitchen",
    number_of_images=4,
    safety_filter_level="block_only_high",
    person_generation="allow_adult",
    aspect_ratio="3:4",
    negative_prompt="Outside",
)

for image in result.images:
  print(image)

# The output should look similar to this:
# <vertexai.preview.vision_models.GeneratedImage object at 0x78f3396ef370>
# <vertexai.preview.vision_models.GeneratedImage object at 0x78f3396ef700>
# <vertexai.preview.vision_models.GeneratedImage object at 0x78f33953c2b0>
# <vertexai.preview.vision_models.GeneratedImage object at 0x78f33953c280>

for image in result.images:
  # Open and display the image using your local operating system.
  image._pil_image.show()

记事本应显示四张类似于此图片的图片:

AI 生成的图片:厨房里有两只毛茸茸的兔子

Imagen 模型参数

以下参数适用于 generate_images()

  • prompt:图片的文本提示。
  • negative_prompt:有关您要在生成的图片中省略的内容的说明。默认值为“none”。

    例如,假设提示是“arainy city street in night with no ”(雨天的城市街道在夜晚,没有 人物”。该模型可能会解读“人物”作为指令来指明要包含的内容 而不是省略。如要生成更理想的结果,您可以使用“a rainy”(雨)提示, 夜晚的城市街道使用否定提示“people”。

  • number_of_images:要生成的图片数量,介于 1 到 4(含)之间。 默认值为 4。

  • aspect_ratio:更改生成图片的宽高比。支持 值为 "1:1""3:4""4:3""9:16""16:9"。默认值为 "1:1"

  • safety_filter_level:为安全性过滤策略添加过滤级别。以下值均有效:

    • "block_low_and_above":在出现概率得分或严重程度时屏蔽 得分为 LOWMEDIUMHIGH
    • "block_medium_and_above":在出现概率得分或严重程度时屏蔽 得分为 MEDIUMHIGH
    • "block_only_high":当概率得分或严重级别得分为 HIGH 时屏蔽。
  • person_generation:允许模型生成人物图片。通过 支持以下值:

    • "dont_allow":禁止生成人物图片。
    • "allow_adult":生成成人(而非儿童)的图片。

后续步骤

Gemini API 中的 Imagen 3 目前处于抢先体验阶段。敬请关注关于以下内容的公告: 相应地图项的状态。