图片生成指南

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

该任务接受文本提示作为输入,此外还接受一个可选的条件图片,模型可以对其进行增强并用作生成时的参考。如需详细了解如何生成经过调节的文本到图像生成,请参阅用于生成经过调节的文本到图像生成的设备端扩散插件

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

开始使用

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

任务详情

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

特性

您可以使用图片生成器实现以下内容:

  1. 文本到图像生成 - 使用文本提示生成图片。
  2. 使用条件图片生成图片 - 使用文本提示和参考图片生成图片。图片生成器使用条件图片的方式与 ControlNet 类似。
  3. 使用 LoRA 权重生成图片 - 使用自定义模型权重通过文本提示生成特定人物、物体和样式的图片。
任务输入 任务输出
图片生成器接受以下输入:
  • 文本提示
  • 种子投资
  • 生成迭代次数
  • 可选:使用情况图片
图片生成器输出以下结果:
  • 基于输入生成的图片。
  • 可选:所生成图片的迭代快照。

配置选项

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

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

该任务还支持插件模型,让用户可以在任务输入中添加条件图片,基础模型可以对其进行扩充并用作生成作业的参考。这些条件图片可以是人脸特征点、边缘轮廓和深度估算值,模型会将其用作生成图片的额外上下文和信息。

将插件模型添加到基础模型时,还需要配置插件选项。人脸特征点插件使用 faceConditionOptions,Canny Edge 插件使用 edgeConditionOptions,Depth 插件使用 depthConditionOptions

Canny Edge 选项

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 权重自定义基础模型这一选项可以向基础模型介绍特定概念(如对象、人物或风格),并将其注入生成的图像中。

基础模型

基础模型是根据文本提示生成图片的潜在文本到图像扩散模型。图片生成器要求基础模型与 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 开发,必须与基础模型结合使用。借助插件模型,图片生成器可以接受条件图片以及文本提示作为输入,从而控制所生成图片的结构。插件模型提供与 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 人脸特征点的输出作为条件图片。人脸特征点工具提供单个人脸的详细脸部网格,用于绘制面部特征的存在和位置。基础模型使用条件图片暗含的面部映射,并在网格上生成新面孔。

下载人脸特征点插件

人脸特征点插件还需要使用人脸特征点的模型包来创建条件图片。该模型软件包与人脸特征点任务使用的软件包相同。

下载人脸特征点模型包

人脸特征点插件包含以下配置选项:

选项名称 说明 值范围 默认值
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 权重来自定义模型。