【AIGC】InstructPixPix:基于文本引导的图像编辑技术
github:diffusers/examples/instruct_pix2pix/train_instruct_pix2pix_sdxl.py at main · huggingface/diffusers · GitHub
论文:https://arxiv.org/pdf/2211.09800
摘要
我们提出了一种从人类指令编辑图像的方法:给定一个输入图像和告诉模型做什么的书面指令,我们的模型遵循这些指令来编辑图像。为了获得这个问题的训练数据,我们结合了两个大型预训练模型(语言模型 (GPT-3) 和文本到图像模型 (Stable Diffusion))的知识,以生成大量图像编辑示例数据集。我们的条件扩散模型 InstructPix2Pix 在我们生成的数据上进行了训练,并在推理时推广到真实图像和用户编写的指令。由于它在前向传递中执行编辑,并且不需要每个示例的微调或反转,因此我们的模型在几秒钟内快速编辑图像。我们展示了对不同集合输入图像和书面指令的令人信服的编辑结果。
介绍
我们提出了一种教学生成模型的方法,以遵循人工编写的指令进行图像编辑。由于此任务的训练数据难以大规模获取,我们提出了一种生成成对数据集的方法,该数据集结合了在不同模态上预训练的多个大型模型:大型语言模型 (GPT-3 [7]) 和文本到图像模型 (Stable Diffusion [52])。这两个模型捕获了有关语言和图像的补充知识,这些知识可以结合起来为跨越两种模态的任务创建成对的训练数据。
使用我们生成的成对数据,我们训练了一个条件扩散模型,该模型给定输入图像和文本指令如何编辑它,生成编辑后的图像。我们的模型直接在前向传递中执行图像编辑,不需要任何额外的示例图像、输入/输出图像的完整描述或每个示例微调。尽管完全接受了合成示例的训练(即生成的书面说明和生成的图像),我们的模型实现了对任意真实图像和自然人工编写的指令的零样本泛化。我们的模型实现了直观的图像编辑,可以遵循人类指令来执行多样化的编辑集合:替换对象、更改图像的样式、更改设置、艺术媒介等。选定的示例可以在图 1 中找到。
方法
我们将基于指令的图像编辑视为监督学习问题:(1)首先,我们在编辑前后生成文本编辑指令和图像的配对训练数据集(第 3.1 节,图 2a-c),然后(2)我们在这个生成的数据集上训练图像编辑扩散模型(第 3.2 节,图 2d)。尽管是用生成的图像和可编辑指令,我们的模型能够泛化到使用任意人工编写的指令编辑真实图像。有关我们方法的概述,请参见下图2。

我们的方法由两部分组成:生成图像编辑数据集,并在该数据集上训练扩散模型。(a) 我们首先使用微调的 GPT-3 来生成指令和编辑的标题。(b) 然后,我们使用 StableDiffusion [52] 结合 Prompt-to-Prompt [17] 从字幕对生成图像对。我们使用此过程来创建超过 450,000 个训练示例的数据集 (c)。(d) 最后,我们在生成的数据上训练我们的 InstructPix2Pix 扩散模型,以从指令编辑图像。在推理时,我们的模型可以推广到从人工编写的指令中编辑真实图像
生成多模态训练数据集
我们结合了两种在不同模态上运行的大规模预训练模型的能力——大型语言模型 [7] 和文本到图像模型 [52]——以生成包含文本编辑指令的多模式训练数据集以及编辑前后的相应图像。在接下来的两节中,我们将详细描述此过程的两个步骤。在第 3.1.1 节中,我们描述了微调 GPT-3 [7] 以生成文本编辑集合的过程:给定一个描述图像的提示,生成一个描述要进行更改的文本指令,以及一个描述该更改后图像的提示(图 2a)。然后,在第 3.1.2 节中,我们描述了使用文本到图像模型 [52] 将两个文本提示(即编辑前后的)转换为一对对应图像的过程(图 2b)。
生成指令和配对提示词
我们首先完全在文本领域进行操作,我们利用一个大型语言模型来获取图像标题,并在编辑后生成编辑说明和最终的文本标题。例如,如图2a所示,提供“一个女孩骑马的照片”的输入标题,我们的语言模型既可以生成一个合理的编辑指令“让她骑马”,也可以生成一个适当修改的输出标题“一个女孩骑马的照片”。在文本域中操作使我们能够生成大量不同的编辑集合,同时保持图像更改和文本指令之间的对应关系。我们的模型是通过在一个相对人工编写的编辑三元组小数据集:(1)输入标题,(2)编辑指令,(3)输出标题。为了生成微调数据集,我们从LAION-Aesthetics V2 6.5+[57]数据集中采样了700个输入标题,并手动编写指令和输出标题。关于我们的书面指令和输出标题的示例,请参见表1a。使用这些数据,我们使用默认训练参数对GPT-3达芬奇模型进行了单个epoch的微调。
得益于GPT-3的丰富知识和泛化能力,我们的微调模型能够生成创造性但明智的说明和说明。例如GPT-3生成的数据见表1b。我们的数据集是通过使用此训练模型生成大量编辑和输出标题来创建的,其中输入标题是来自LAION-Aesthetics的真实图像标题(不包括具有重复标题或重复图像url的样本)。我们之所以选择LAION数据集,是因为它的大小、内容的多样性(包括对专有名词和流行文化的引用)和媒介的多样性(照片、绘画、数字艺术品)。LAION的一个潜在缺点是它非常嘈杂,并且包含许多无意义或描述性的标题——然而,我们发现通过数据集过滤(第3.1.2节)和无分类器指导(第3.2.1节)的组合可以减轻数据集噪声。我们生成的指令和标题的最终语料库由454,445个示例组成。

表1。我们标记了一个小型文本数据集,微调GPT-3,并使用该微调模型生成一个大型文本三元组数据集。作为标记示例和生成示例的输入标题,我们使用来自LAION的真实图像标题。高亮显示的文本是由GPT-3生成的。
从配对字幕生成配对图像
接下来,我们使用预训练的文本到图像模型将一对字幕(参考编辑前后的图像)转换为一对图像。将一对字幕转换为一对相应的图像的一个挑战是,文本-图像模型不能保证图像的一致性,即使在条件的非常微小的变化下也是如此提示。例如,两个非常相似的提示:“一只猫的图片”和“一只黑猫的图片”可能会产生截然不同的猫的图像。这并不适合我们的目的,我们打算使用这些配对数据作为监督来训练模型来编辑图像(而不是产生不同的随机图像)。因此,我们使用了Prompt-to-Prompt[17],这是一种最近的方法,旨在鼓励文本到图像扩散模型的多代相似。这是通过在一些去噪步骤中借用交叉注意权重来完成的。图3显示了使用和不使用Prompt-to-Prompt的采样图像的比较。

图3。使用StableDiffusion[52]和不使用Prompt-to-Prompt[17]生成的一对图像。两者对应的标题都是“女孩骑马的照片”和“女孩骑马的照片”。
虽然这极大地有助于吸收生成的图像,但不同的编辑可能需要对图像空间进行不同程度的更改。例如,较大幅度的变化,例如那些改变大规模图像结构的变化(例如,四处移动物体,用不同形状的物体替换),可能对生成的图像对的相似性要求较低。幸运的是,Prompt-to-Prompt有一个参数可以控制两个图像之间的相似性:具有共享注意力权重的去噪步骤p的比例。不幸的是,仅从标题和编辑文本中识别p的最佳值是很困难的。因此,我们为每个标题对生成100个样本对图像,每个图像具有随机的p ~ U(0.1, 0.9),并对这些图像进行过滤 使用基于CLIP的度量:Gal等人[14]引入的CLIP空间中的方向相似性。该度量度量两个图像(在CLIP空间中)之间的变化与两个图像标题之间的变化的一致性。执行这种过滤不仅有助于最大限度地提高图像对的多样性和质量,而且还使我们的数据生成对提示到提示和稳定扩散的失败更加健壮。
InstructPix2Pix
我们使用生成的训练数据来训练一个条件扩散模型,该模型可以根据书面指令编辑图像。我们的模型基于稳定扩散,这是一种大规模文本到图像的潜在扩散模型。
扩散模型[60]学习通过一系列去噪自编码器来生成数据样本,这些自编码器估计数据分布的分数[23](指向更高密度数据的方向)。潜伏扩散[52]通过在预训练的具有编码器E和解码器d的变分自编码器[30]的潜伏空间中运行,提高了扩散模型的效率和质量。对于图像,扩散过程在编码的潜伏z = E(x)中添加噪声,产生噪声潜伏zt,其中噪声水平随着时间步长t∈t而增加。我们学习了一个网络θ,在给定图像条件cI和文本指令条件cT的情况下,该网络可以预测添加到噪声潜在zt中的噪声。我们最小化以下潜在扩散目标:

两种条件下的无分类器引导
无分类器扩散指导[20]是一种权衡扩散模型生成的样本质量和多样性的方法。它通常用于类条件图像和文本条件图像生成,以提高生成图像的视觉质量,并使采样图像更好地与其条件相对应。无分类器引导有效地将概率质量向数据转移,其中隐式分类器pθ(c|zt)将高似然性分配给条件c。无分类器引导的实现包括联合训练扩散模型进行条件和无条件去噪,并在推理时组合两个得分估计。无条件去噪的训练是通过在训练期间简单地将条件设置为某个频率下的固定零值c=∅来完成的。在推理时,当引导量表s≥1时,在di中外推修正的得分估计值eθ(zt,c)-朝向条件eθ(zt,c),远离无条件eθ。
![]()
对于我们的任务,分数网络eθ(zt,cI,cT)有两个条件:输入图像cI和文本指令cT。我们发现,在两种条件下利用无分类器指导是否有益。Liu等人[38]证明,条件扩散模型可以从多个不同的条件值中组合分数估计。我们将相同的概念应用于具有两个单独条件输入的模型。在训练过程中,我们随机设置5%的样本只有cI=∅I,5%的样本只有cT=⇼T,5%的示例同时有cI=?I和cT=?T。因此,我们的模型能够对两个或两个条件输入进行条件或无条件的去噪。我们引入了两个指导量表,sI和sT,可以调整它们来权衡生成的样本与输入图像的对应程度和它们与编辑指令的对应程度。我们修改后的分数估计如下:

在图4中,我们显示了这两个参数对生成样本的影响。关于我们的无分类器引导公式的详细信息,请参见附录B
结果
我们在一组不同的真实照片和艺术品上展示了基于指令的图像编辑结果,用于各种类型的编辑和指令文字。所选结果见图1、5、6、7、11、12、15、16、17、18和19。我们的模型成功地执行了许多具有挑战性的编辑,包括替换对象、更改季节和天气、替换背景、修改材质属性、转换艺术媒介等。
我们将我们的方法与最近的几部作品SDEdit[39]和Text2Live[6]进行了定性比较。我们的模型遵循如何编辑图像的说明,但之前的工作(包括这些基线方法)需要对图像(或编辑层)进行描述。因此,我们为他们提供了“编辑后”的文字说明,而不是编辑说明。我们还将我们的方法与SDEdit进行了定量比较,使用了两个衡量图像一致性和编辑质量的指标,如第4.1节所述。最后,我们在第4.2节中展示了生成的训练数据的大小和质量如何影响我们模型的性能。
图5。蒙娜丽莎变成了各种艺术媒介。

图6。亚当的创造与新的背景和主题(以768分辨率生成)。

图7。披头士乐队标志性的专辑《艾比路》封面以各种方式发生了变化。
训练配置
我们在8×40GB NVIDIA A100 GPU上训练我们的图像编辑模型,在25.5小时内完成10000步。我们以256×256的分辨率进行训练,总批量大小为1024。我们应用随机水平翻转增强和裁剪增强,其中图像首先在256和288像素之间随机调整大小,然后裁剪到256。我们使用10−4的学习率(没有任何学习率预热)。从Stable Diffusion v1.5检查点的EMA权重初始化我们的模型,并采用公共Stable Diffusion代码库中的其他训练设置。虽然我们的模型是在256×256分辨率下训练的,但我们发现它在推理时很好地推广到512×512分辨率,并在本文中使用Kerras等人提出的具有去噪方差调度的Euler祖先采样器在512分辨率下生成了100个去噪步骤的结果[25]。在A100 GPU上使用我们的模型编辑图像大约需要9秒。
相关文章:
【AIGC】InstructPixPix:基于文本引导的图像编辑技术
github:diffusers/examples/instruct_pix2pix/train_instruct_pix2pix_sdxl.py at main huggingface/diffusers GitHub 论文:https://arxiv.org/pdf/2211.09800 摘要 我们提出了一种从人类指令编辑图像的方法:给定一个输入图像和告诉模型做什么的书面…...
无人机动力系统设计之桨叶推力计算
无人机动力系统设计之桨叶推力计算 1. 源由2. 关键参数2.1 特性参数2.1.1 材质(Material)2.1.2 叶片数量(Number of Blades)2.1.3 重量(Weight)2.1.4 噪音水平(Noise Level) 2.2 安装…...
LabVIEW重构其他语言开发的旧系统
在面对一个运行已久、代码不清晰的项目时,如果该项目涉及复杂的通讯协议(如串口和488通讯),重新开发并优化成LabVIEW版本可以极大提升系统的易用性和维护性。为了确保通讯协议的顺利解析和移植,借助专业工具分析现有通…...
[晕事]今天做了件晕事43 python-byte串长度与转义字符
今天办了一件晕事,导致测试结果与预期不一致。 过程是,组装byte串的时候,整个字符串里有转义字符\x0d。 from scapy.all import IPv6, UDP pkt IPv6(src"2002:db8:a0b:12f0::157", dst"2002:db8:a0b:12f0::13")/UDP(sp…...
初识redis(String,Hash,List,Set,SortedSet)
认识NoSql sql关系型数据库 nosql非关系型数据库 nosql具有非结构化,Key/Value,Document,Draph 无关联的,非sql,BASE(原子性,持久性,一致性,隔离性) 认识r…...
Ton与ETH的一些独特的区别
文章目录 前言一、智能合约需要收取租金。二、从数据到大数据的转变三、智能合约不能运行其他合约的getter方法四、合约不是无法改变的五、Ton取消了无限制的数据结构六、钱包和地址具有独立性 前言 TON区块链是一个现代化的区块链,它为智能合约开发带来了一些全新…...
C++ | Leetcode C++题解之第396题旋转图像
题目: 题解: class Solution { public:int maxRotateFunction(vector<int>& nums) {int f 0, n nums.size();int numSum accumulate(nums.begin(), nums.end(), 0);for (int i 0; i < n; i) {f i * nums[i];}int res f;for (int i …...
前向渲染路径
1、前向渲染路径处理光照的方式 前向渲染路径中会将光源分为以下3种处理方式: 逐像素处理(需要高等质量处理的光)逐顶点处理(需要中等质量处理的光)球谐函数(SH)处理(需要低等质量…...
Python画笔案例-040 绘制五角星顶圆
1、绘制五角星顶圆 通过 python 的turtle 库绘制五角星顶圆,如下图: 2、实现代码 绘制五角星顶圆,以下为实现代码: """五角星顶圆.py """ import turtledef draw_circle(d):turtle.left(90)for _ …...
【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例
伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教…...
期货量化-群体优化算法:混合蛙跳算法(SFL)
1. 概述 混合蛙跳算法(Shuffled Frog Leaping Algorithm, SFL)由 M. Eusuff 等人在2003年提出。这一算法结合了模因算法与粒子群优化算法的原理,灵感来源于一群青蛙在觅食过程中的行为模式。 SFL 最初作为一种求解组合优化问题的元启发式方法…...
tensorflow-线性回归python入门
目录 读入库 构造数据 建立训练和测试数据 创建第一层到最后一层的神经网络 开始测试 sin函数回归 读入库 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt import time 构造数据 X np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, …...
VSCode学习笔记
1. 快捷键 KeyDescriptionPlatformF1打开命令面板(Command Palette)Win10Shift Delete剪切当前光标所在的代码行Win10 2. 文件 2.1 在文件列表中定位当前文件 操作路径:右键单击文件名 ⇒ 在右键菜单中点击 【Reveal in Explorer View】...
【Canvas与艺术】菊花孔雀螺旋
【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>菊花孔雀螺旋</title><style type"text/css">…...
circuitjs 普通开关和按钮开关
circuitjs 各类开关中最基本的有 (普通)开关 和 按钮开关(瞬时开关). 添加 在菜单 “绘制–无源元件–添加开关” 下可以添加一个普通开关.在菜单 “绘制–无源元件–添加按钮开关” 下可以添加一个按钮开关. 两者在缺省外观上没有什么区别, 如上, 左边是普通开关, 右边是按钮…...
客户端绑定本地端口与服务器建立连接的详细实现
客户端绑定本地端口与服务器建立连接的详细实现 一、网络编程基础1.1 TCP/IP协议1.2 套接字(Socket)1.3 客户端与服务器模型二、客户端程序的设计2.1 需求分析2.2 流程设计三、具体代码实现3.1 伪代码3.2 C代码实现四、代码详解4.1 初始化套接字库4.2 创建套接字4.3 绑定本地…...
C++ std::bind函数用法
看一个例子解释用法: TcpServer类的构造函数中定义: acceptor_->setNewConnectionCallback(std::bind(&TcpServer::newConnection, this,std::placeholders::_1, std::placeholders::_2));// 有一个新的客户端的连接,acceptor会执行这…...
Caffenie配合Redis做两级缓存
一、什么是两级缓存 在项目中。一级缓存用Caffeine,二级缓存用Redis,查询数据时首先查本地的Caffeine缓存,没有命中再通过网络去访问Redis缓存,还是没有命中再查数据库。具体流程如下 二、简单的二级缓存实现-v1 目录结构 2…...
MATLAB实现PID参数自动整定
目录 1、项目说明 2、文件说明 1、项目说明 本项目旨在通过 MATLAB 语言实现 PID 参数的自动整定,并设计了一个直观易用的 GUI 界面。该系统特别适用于实验室环境下的 PID 参数自整定任务。整定的核心原则在于优化系统性能,使系统的衰减比尽可能接近理…...
UE5学习笔记21-武器的射击功能
一、创建C类 创建武器子弹的类,创建生产武器子弹的类,创建弹壳的类,生产武器子弹的类的父类是武器的类 创建后如图,ProjectileMyWeapon类(产生子弹的类)继承自weapon类,Projectile(子弹的类),Casing(弹壳声…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
