图片生成指南

图片生成器任务

借助 MediaPipe 图片生成器任务,您可以根据文本提示生成图片。此任务使用文本到图片模型使用扩散技术生成图片。

该任务接受文本提示作为输入,以及可选的条件图片,模型可以对该图片进行增强,并将其用作生成的参考。如需详细了解条件文本转图像生成,请参阅用于条件文本转图像生成的设备端扩散插件

图片生成器还可以根据在训练或重新训练期间向模型提供的特定概念生成图片。如需了解详情,请参阅使用 LoRA 进行自定义

开始使用

如需开始使用此任务,请按照适用于目标平台的以下任一实现指南操作。以下平台专用指南将引导您完成此任务的基本实现,其中包含使用默认模型和建议的配置选项的代码示例:

任务详情

本部分介绍了此任务的功能、输入、输出和配置选项。

功能

您可以使用图片生成器实现以下操作:

  1. 根据文字生成图像 - 使用文本提示生成图片。
  2. 使用条件图片生成图片 - 使用文本提示和参考图片生成图片。图片生成器使用条件图像的方式与 ControlNet 类似。
  3. 使用 LoRA 权重生成图片 - 使用自定义模型权重,根据文本提示生成特定人物、对象和风格的图片。
任务输入 任务输出
图片生成器接受以下输入:
  • 文本提示
  • 种子
  • 生成式迭代次数
  • 可选:状态图片
图片生成器输出以下结果:
  • 根据输入生成的图片。
  • 可选:生成的图片的迭代快照。

配置选项

此任务具有以下配置选项:

选项名称 说明 值范围
imageGeneratorModelDirectory 存储模型权重的图片生成器模型目录。 PATH
loraWeightsFilePath 设置 LoRA 权重文件的路径。可选,仅适用于使用 LoRA 自定义的模型。 PATH
errorListener 设置可选的错误监听器。 N/A

该任务还支持插件模型,让用户可以在任务输入中添加条件图片,基础模型可以对这些图片进行增强,并将其用作生成的参考。这些条件图片可以是面部地标、边缘轮廓和深度估计值,模型会将其用作生成图片的额外背景信息。

向基础模型添加插件模型时,还应配置插件选项。人脸地标插件使用 faceConditionOptions、Canny 边缘插件使用 edgeConditionOptions,深度插件使用 depthConditionOptions

Canny 边缘选项

edgeConditionOptions 中配置以下选项。

选项名称 说明 值范围 默认值
threshold1 滞后过程的第一阈值。 Float 100
threshold2 滞后过程的第二个阈值。 Float 200
apertureSize Sobel 算子的孔径大小。一般范围为 3-7。 Integer 3
l2Gradient 是否使用 L2 范数(而非默认的 L1 范数)来计算图片梯度幅度。 BOOLEAN False
EdgePluginModelBaseOptions 用于设置插件模型路径的 BaseOptions 对象。 BaseOptions 对象 N/A

如需详细了解这些配置选项的运作方式,请参阅 Canny 边缘检测器

人脸特征点选项

faceConditionOptions 中配置以下选项。

选项名称 说明 值范围 默认值
minFaceDetectionConfidence 人脸检测被视为成功所需的最低置信度得分。 Float [0.0,1.0] 0.5
minFacePresenceConfidence 人脸标志检测中人脸存在得分的最小置信度得分。 Float [0.0,1.0] 0.5
faceModelBaseOptions 用于为创建条件图片的模型设置路径的 BaseOptions 对象。 BaseOptions 对象 N/A
FacePluginModelBaseOptions 用于设置插件模型路径的 BaseOptions 对象。 BaseOptions 对象 N/A

如需详细了解这些配置选项的运作方式,请参阅人脸地标任务

深度选项

depthConditionOptions 中配置以下选项。

选项名称 说明 值范围 默认值
depthModelBaseOptions 用于为创建条件图片的模型设置路径的 BaseOptions 对象。 BaseOptions 对象 N/A
depthPluginModelBaseOptions 用于设置插件模型路径的 BaseOptions 对象。 BaseOptions 对象 N/A

模型

图片生成器需要一个基础模型,即使用扩散技术生成新图片的文本转图片 AI 模型。本部分列出的基准模型是经过优化,可在高端智能手机上运行的轻量级模型。

插件模型是可选的,可与基础模型相辅相成,让用户能够提供额外的条件图片以及文本提示,以生成更具体的图片。使用 LoRA 权重自定义基础模型是一种方法,可让基础模型了解特定概念(例如对象、人物或风格),并将其注入生成的图片中。

基础模型

基础模型是潜在的文本到图像 diffusion 模型,可根据文本提示生成图片。图片生成器要求基础模型与 runwayml/stable-diffusion-v1-5 EMA-only 模型格式相符,具体取决于以下模型:

以下基础模型也与图片生成器兼容:

下载基础模型后,使用 image_generator_converter 将模型转换为适用于图片生成器的适当设备端格式。

安装必要的依赖项:

$ pip install torch typing_extensions numpy Pillow requests pytorch_lightning absl-py

运行 convert.py 脚本:

$ python3 convert.py --ckpt_path <ckpt_path> --output_path <output_path>

插件模型

本部分中的插件模型由 Google 开发,必须与基础模型搭配使用。借助插件模型,Image Generator 可以接受条件图片和文本提示作为输入,以便您控制生成图片的结构。插件模型提供与 ControlNet 类似的功能,采用专门用于设备端扩散的新型架构。

必须在基本选项中指定插件模型,并且您可能需要下载其他模型文件。每个插件对条件图片都有独特的要求,这些图片可以由图片生成器生成。

Canny Edge 插件

两个生成的图片的示例输出结果,其中使用了砖块轮廓清晰的提供的条件图片和提示

Canny Edge 插件接受用于勾勒生成图片预期边缘的条件图片。基础模型使用条件图片暗示的边缘,并根据文本提示生成新图片。图片生成器包含用于创建条件图片的内置功能,只需下载插件模型即可。

下载 Canny Edge 插件

Canny Edge 插件包含以下配置选项:

选项名称 说明 值范围 默认值
threshold1 滞后过程的第一阈值。 Float 100
threshold2 滞后过程的第二个阈值。 Float 200
apertureSize Sobel 算子的孔径大小。一般范围为 3-7。 Integer 3
l2Gradient 是否使用 L2 范数(而非默认的 L1 范数)来计算图片梯度幅度。 BOOLEAN False
EdgePluginModelBaseOptions 用于设置插件模型路径的 BaseOptions 对象。 BaseOptions 对象 N/A

如需详细了解这些配置选项的运作方式,请参阅 Canny 边缘检测器

人脸特征点插件

两个生成的图片的输出示例,它们使用的是提供的素描面孔条件图片和两个不同的提示,以显示同一条件图片可用于生成外观截然不同的图片

人脸特征点插件接受 MediaPipe 人脸特征点的输出作为条件图片。人脸地标提供单张人脸的详细人脸网格,用于映射面部特征的存在和位置。基础模型使用条件图片暗示的面部映射,并在网格上生成新的面部。

下载人脸特征点插件

人脸标志插件还需要 Face Landmarker 模型软件包才能创建条件图片。此模型软件包与人脸地标定位任务使用的软件包相同。

下载人脸地标模型软件包

人脸地标插件包含以下配置选项:

选项名称 说明 值范围 默认值
minFaceDetectionConfidence 人脸检测被视为成功所需的最低置信度得分。 Float [0.0,1.0] 0.5
minFacePresenceConfidence 人脸标志检测中人脸存在得分的最小置信度得分。 Float [0.0,1.0] 0.5
faceModelBaseOptions 用于为创建条件图片的模型设置路径的 BaseOptions 对象。 BaseOptions 对象 N/A
FacePluginModelBaseOptions 用于设置插件模型路径的 BaseOptions 对象。 BaseOptions 对象 N/A

如需详细了解这些配置选项的运作方式,请参阅人脸地标任务

深度插件

两个生成的图片的示例输出,它们使用了显示汽车大致形状的提供的条件图片,以展示深度插件可以创建可为平面图片添加深度的图片

Depth 插件接受用于指定物体单眼深度的条件图片。基础模型使用条件图片推断要生成的对象的大小和深度,并根据文本提示生成新图片。

下载深度插件

深度插件还需要深度估算模型来创建条件图片。

下载深度估测模型

Depth 插件包含以下配置选项:

选项名称 说明 值范围 默认值
depthModelBaseOptions 用于为创建条件图片的模型设置路径的 BaseOptions 对象。 BaseOptions 对象 N/A
depthPluginModelBaseOptions 用于设置插件模型路径的 BaseOptions 对象。 BaseOptions 对象 N/A

使用 LoRA 进行自定义

使用 LoRA 自定义模型后,图片生成器便可根据特定概念生成图片,这些概念在训练期间由唯一的令牌标识。在训练后,使用新的 LoRA 权重,当文本提示中指定令牌时,模型能够生成新概念的图片。

若要创建 LoRA 权重,需要使用特定对象、人物或风格的图片训练基础模型,以便模型识别新概念并在生成图片时应用该概念。如果您要创建 LoRa 权重以生成特定人物和面孔的图片,请仅输入你自己的面部信息,如果要输入其他人的面部信息,则必须先获得对方的许可。

以下是使用令牌“monadikos teapot”基于 DreamBooth 数据集中的茶壶图片训练的自定义模型的输出:

生成的逼真图片:一把茶壶放在桌子上,旁边是挂在墙上的镜子

提示:一面镜子旁边的 monadikos 茶壶

自定义模型收到提示中的令牌,并注入了它从 LoRA 权重中学习到如何描绘的茶壶,并根据提示中的请求将其放置在镜子旁边。

结合使用 LoRA 和 Vertex AI

如需了解详情,请参阅自定义指南,其中介绍了如何使用 Vertex AI 上的 Model Garden 通过将 LoRA 权重应用于基础模型来自定义模型。