使用 Imagen 3 生成图片

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

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

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”。

    例如,请考虑提示“雨夜中的街道空无一人”。该模型可以将“人”解释为包含而不是省略内容的指令。如需生成更好的结果,您可以使用提示“雨夜中的街道”并显示否定提示“人”。

  • 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":生成成人图像,但不生成儿童图像。

文本提示语言

支持以下输入文本提示语言:

  • 中文(简体)(zh/zh-CN)
  • 中文(繁体)(zh-TW)
  • 英语 (en)
  • 印地语 (hi)
  • 日语 (ja)
  • 韩语 (ko)
  • 葡萄牙语 (pt)
  • 西班牙语 (es)

后续步骤

Gemini API 中的 Imagen 3 目前处于抢先体验阶段。敬请关注有关该功能状态的公告。