InstructPix2Pix: Learning to Follow Image Editing Instructions
我们提出了一种根据人类指令编辑图像的方法:给定输入图像和告诉模型该做什么的书面指令,我们的模型遵循这些指令来编辑图像。
为了获得这个问题的训练数据,我们结合了两个大型预训练模型的知识——一个语言模型(GPT-3)和一个文本到图像模型(Stable Diffusion)——来生成一个大型图像编辑示例数据集。
我们的条件扩散模型InstructPix2Pix是在我们生成的数据上进行训练的,并在推理时推广到真实图像和用户编写的指令。由于它在向前传递中执行编辑,并且不需要每个示例的微调或反转,因此我们的模型可以在几秒钟内快速编辑图像。我们为输入图像和书面说明的不同集合展示了令人信服的编辑结果
模型结合gpt3和SD生成了一个用于图像编辑的数据集
作者使用生成的数据集训练了一个条件扩散模型来实现文本编辑图像
数据生成
作者使用了700条人工标注的文本编辑指令三元组微调GPT-3,之后使用微调过的GPT-3生成大规模的文本三元组。如下图,文本三元组包括(1)输入描述;(2)编辑指令;(3)编辑后的描述。
然后GPT3生成相似的三元组45w条
生成图像对在这个过程中面临了一个挑战:即使输入提示只有微小的不同,生成的图像也无法保证内容的一致性,如分别使用“photograph of a girl riding a horse”和“photograph of a girl riding a dragon”为提示生成图像,会得到下图内容:
为了解决不一致的问题,作者使用了promtp2prompt的方法。
该方法通过在扩散过程中注入原始图像的注意力图来控制编辑图像的注意力映射,实现了内容一致的图像生成。使用该方法与相同的提示词,会得到下图内容:
作者共生成 454,445 个样本,生成的数据可以通过开源脚本下载
InstructPix2Pix通过训练条件扩散模型来实现根据输入图像和文本指令来编辑图像的功能。