文生图也有自己的prompt优化工具了。
我们都知道,大模型输出的质量,很大程度上依赖于输入的prompt。尤其在文生图领域,对于prompt格外敏感。
来自中国人大、度小满等团队提出了一种全新的自动文本提示优化方法——动态提示自动编辑(Prompt Auto-Editing,PAE)。
它考虑了文本提示中的每个词在扩散生成过程的权重和注入时间步。
最终在多个公开数据集上进行了实验验证,包括Lexica.art、DiffusionDB和COCO。PAE方法不仅提高了图像的美学质量,还确保了图像与文本描述的语义一致性。
与传统方法相比,PAE在控制图像生成过程中的精确性和灵活性方面表现更优。
关键在动态prompt
当前,尽管用户可以通过手动修改提示来尝试生成更优质的图像,但这一过程不仅效率低下,而且难以精确控制。
为了提高效率并优化生成结果,团队研发了PAE方法,这一方法的关键在于采用了动态提示(Dynamic Prompts)。
首先是为用户输入的简短提示词扩充出更多修饰词,其次是通过动态调整新添加的修饰词的权重和注入时间步,自动细化优化文本提示,从而更精准地控制图像生成过程。
1、Dynamic Prompt的定义
具体来说,团队定义了一种新的提示格式,用以丰富初始提示的信息,命名为动态精细控制提示(DF-Prompt)
文本prompt中的每个token会被拓展成一个三元组,在原有基础上新添加了用来添加权重的浮点数,以及文本生效的时间步范围。
DF-Prompt是原本的提示词和修饰词的结合。DF-Prompt 的本质在于促进更精确和控制的生成。为了便于演示和代码实现,我们还定义了一个纯文本格式:[token:range:weight]
以portrait of a beautiful forest goddess, beauty, very aesthetic, masterpiece为例,其中beauty拓展成三元组可以表示为[beauty:0.5→0:0.75],其权重为0.75,生效的时间步范围为后50%的降噪步骤。
2、训练数据收集
DiffusionDB数据集收集了用户生成图像时使用的prompt,其中包含大量的修饰词、风格描述等,可以帮助我们训练提示词拓展与精细优化的自动化模型。
在DiffusionDB等数据集中,一般逗号之前的文本包含主要信息,描述图像的主题,而逗号之后的文本被视为次要文本,提供补充后缀作为修饰语。
比如“a red horse on the yellow grass, anime style”,主要信息为“a red horse on the yellow grass”,次要文本为“anime style”。
我们把逗号之前的文本作为短提示,剩余的文本(次要文本)形成了修饰词集合,以此来构建训练数据中的输入提示词和目标提示词。
最后,我们定义一个置信分数,利用美学指标和CLIP分数来筛选训练数据,确保用于训练的提示词能够引导生成高美学评分、高图文对齐度的图像。
3、训练阶段
如图所示,使用收集好的训练数据进行两阶段训练。
阶段一:监督式微调阶段。
在收集好的数据集上对语言模型进行微调,以生成优化后的文本提示。每条训练数据都包含了短提示词文本和修饰词集合,这里的优化目标就是让语言模型根据短提示词扩展出更多修饰词。在这种方式中,训练好的模型能够处理简短的提示,并预测适当的修饰词,从而提升生成图像的美学质量。
阶段二:强化学习阶段。
使用强化学习优化文本提示,通过多维度奖励系统来指导这一过程,考虑到美学评分、语义一致性和用户偏好。这一阶段的主要目的是为每一个修饰词添加权重和作用时间步,实现精细化的控制。我们使用 PPO 算法,在训练集上最大化期望累积奖励。奖励函数是在生成的图像上计算的,考虑了包括CLIP分数、PickScore、美学评分等指标。
通过观察自动学习到的权重分布、时间步范围统计信息,我们还有了一些有趣的发现:
- 使用艺术家名称和纹理修饰词:通过引入艺术家的名字和纹理修饰词,可以显著提高生成图像的艺术质量,并保持语义的准确性。
- 在扩散过程的后半阶段引入风格元素:在图像生成的扩散过程后半段引入风格化元素,可以更好地融合这些元素,从而提高整体的视觉和艺术效果。
- 降低复杂术语的权重:对于复杂的术语,适当降低其权重可以确保图像生成既平衡又具吸引力,避免过分强调某些元素,从而影响图像的整体美观。
arxiv链接: https://arxiv.org/abs/2404.04095
代码链接: https://github.com/Mowenyii/PAE