【论文阅读】InstructPix2Pix: Learning to Follow Image Editing Instructions
摘要:
提出了一种方法,用于教导生成模型根据人类编写的指令进行图像编辑:给定一张输入图像和一条书面指令,模型按照指令对图像进行编辑。
由于为此任务获取大规模训练数据非常困难,我们提出了一种生成配对数据集的方法,结合了两个大型预训练模型:
- 语言模型(GPT-3);
- 文本到图像模型(Stable Diffusion)。
这两个模型捕捉了关于语言和图像的互补知识,可以组合起来生成配对训练数据,用于同时涉及这两种模态的任务。
我们利用生成的配对数据训练了一个条件扩散模型,该模型给定输入图像和文本指令后,生成编辑后的图像。
模型在前向传播过程中直接执行图像编辑,且不需要额外的图像示例、输入/输出图像的完整描述或每个实例的微调。
1. 研究背景
-
图像编辑的挑战:
- 传统的图像编辑模型依赖于大量有监督的数据来指导模型生成,这通常需要提供 “原始图像-编辑后图像”对,导致数据标注成本极高。
- 这些模型通常缺乏灵活性,专门针对特定的编辑任务(如上色、修复等),不能广泛适应不同的编辑需求。
-
生成模型的局限性:
- 虽然一些文本到图像的生成模型(如 DALLE-2)本身具有图像编辑功能(如图像变化、区域填充),但它们在进行目标编辑时较为困难,因为相似的文本提示并不能保证产生相似的图像。
- Prompt-to-Prompt 方法解决了这一问题,通过将生成的图像与相似的文本提示联系起来,使得图像可以进行独立编辑。
-
多模型组合:
- 近年来的研究发现,多个大型预训练模型的结合能够有效解决一些单一模型无法完成的多模态任务(如图像描述和视觉问答)。这些方法包括:联合微调、通过提示信息进行通信、模型间的反馈引导等。
- 我们的方法与这些研究相似,结合了 GPT-3 和 Stable Diffusion 这两个互补能力强大的模型,但与以往的研究不同,我们通过这两种模型生成配对的多模态训练数据。
-
扩散模型:
- 在 扩散模型(如 Stable Diffusion)方面的进展推动了图像合成、视频、音频、文本等多模态生成模型的突破。文本到图像的扩散模型(如 Stable Diffusion)能够根据任意文本描述生成逼真的图像。
-
与现有方法的对比:
- 现有的一些编辑方法(如 SDEdit)主要是用于编辑真实图像,通常通过加噪和去噪来调整输入图像并生成新的图像。
- 然而, InstructPix2Pix 方法不同,它只依赖 单张图像 和 一条编辑指令,通过前向传播直接进行图像编辑,无需额外的用户手绘掩码或其他图像,这使得编辑过程更加简便和高效。
-
研究目标:
- 本研究的目标是开发 InstructPix2Pix 模型,能够在不依赖大量人工标注数据的情况下,通过自然语言指令进行灵活多样的图像编辑。这一目标对于非结构化的编辑任务尤为重要,因为用户可以通过自然语言直接描述编辑需求,避免了复杂的手动调整,极大地提升了图像编辑的便利性和灵活性。
2. 数据生成:生成配对的训练数据集
我们结合了两种大型预训练模型的能力——一个用于语言处理的大型语言模型(GPT-3)和一个文本到图像的模型(StableDiffusion)——来生成包含文本编辑指令及其对应的编辑前后图像的多模态训练数据集。以下是这个过程的两个关键步骤:
2.1 生成指令和配对标题
首先,我们在文本领域操作,利用大型语言模型根据图像描述生成编辑指令和编辑后的文本描述。例如,给定输入标题“女孩骑马的照片”,语言模型可以生成编辑指令“让她骑龙”以及修改后的输出标题“女孩骑龙的照片”。这种方式允许我们生成大量多样化的编辑,同时保持图像变化与文本指令之间的对应关系。
为此,我们对GPT-3进行了微调,训练数据来自于人类编写的编辑三元组:1) 输入标题,2) 编辑指令,3) 输出标题。训练数据由700个来自LAION-Aesthetics V2 6.5+数据集的输入标题及手动编写的指令和输出标题组成。通过微调GPT-3 Davinci模型一轮,我们的模型能够生成既富有创意又合理的指令和标题。最终生成的数据集包含454,445个样本。
2.2 从配对标题生成配对图像
接下来,我们使用预训练的文本到图像模型(如StableDiffusion)将一对标题(编辑前后的描述)转换为一对对应的图像。然而,文本到图像模型在生成图像时,可能会因为提示的微小变化而生成差异很大的图像。例如,“一只猫的照片”和“一只黑猫的照片”可能生成完全不同的图像,这对于我们训练编辑图像的模型并不适用。
为了解决这一问题,我们采用了Prompt-to-Prompt方法,这种方法通过在去噪过程中的交叉注意力权重共享来保证生成的图像在风格和内容上具有高度一致性。这可以确保生成的图像在相似性上保持一致,满足训练需求。
此外,不同的编辑可能会对图像产生不同程度的变化。因此,我们通过调节去噪步骤中共享注意力权重的比例(即p值),来控制图像对之间的相似度。为寻找合适的p值,我们为每对标题生成100个图像对,并通过CLIP空间中的方向相似度度量(衡量图像变化一致性)对这些图像对进行过滤,从而保证图像对的多样性和质量,提升数据生成的可靠性。
3. 模型结构:InstructPix2Pix的设计
InstructPix2Pix模型的核心就是通过一个强大的扩散模型,结合图像和文本指令来编辑图像。在生成过程中,模型不仅学会如何去噪,也学会如何根据不同的条件(图像、文本)调整图像,使得最终的生成图像既符合输入图像,也符合给定的文本指令。通过“无分类器引导”,我们可以在多样性和质量之间找到一个平衡。
3.1 扩散模型的基本原理
扩散模型的目标是通过逐步去噪生成数据。简单来说,扩散模型从一个随机噪声开始,然后逐步去除噪声来生成图像。这个过程通过一个自编码器实现:
- 编码器(Encoder,E):将图像压缩成潜在表示(latent representation)。
- 解码器(Decoder,D):将潜在表示转换回图像。
这个模型的核心目标是通过学习如何从噪声中恢复真实的图像数据,来生成新图像。
3.2 潜在扩散模型(Latent Diffusion)
潜在扩散模型的一个重要改进是它在潜在空间中工作,而不是直接在图像空间中。这让它更加高效,因为它减少了图像的复杂度并提高了生成质量。潜在空间是通过一个预训练的变分自编码器(VAE)获得的。
- 潜在空间:图像通过编码器转换成一个较低维度的潜在表示(latent representation),然后在这个表示上进行去噪,最后通过解码器重新生成图像。
3.3 InstructPix2Pix模型
InstructPix2Pix是基于上述潜在扩散模型的,并增加了“编辑图像”的功能。它的目标是根据文本指令修改图像。
例如,给定一个图像描述(比如“女孩骑马”),模型可以通过添加指令(例如“让她骑龙”)来改变原始图像,生成一个新的图像(“女孩骑龙”)。
3.3.1 模型如何工作:
- 图像和文本条件:InstructPix2Pix模型不仅输入图像(如“女孩骑马”),还输入文本指令(如“让她骑龙”)。
- 噪声预测:模型的任务是根据图像和指令,预测噪声并去除它,从而改变图像。它通过在潜在空间中处理图像的噪声来生成与指令相符的新图像。
3.3.2 无分类器引导(Classifier-free Guidance)
无分类器引导是一种方法,用于控制模型生成图像时,如何平衡图像的质量和多样性。基本思路是:
- 条件去噪:模型根据给定的条件(图像和文本指令)去生成图像。
- 无条件去噪:偶尔,模型也需要生成“无条件”的图像,也就是说,在没有任何条件限制下生成图像。这样可以让生成的图像更具多样性。
通过调整“引导尺度”(guidance scale),我们可以控制生成的图像在多大程度上与输入条件(图像和文本指令)相匹配。
例如:
- sI:控制图像与输入图像(cI)相符的程度。
- sT:控制图像与文本指令(cT)相符的程度。
3.3.3 如何调整引导尺度(sI 和 sT):
- 训练过程:在训练时,模型会有时只根据图像(或指令)去生成图像,有时根据两者一起生成图像。通过这种方式,模型学会如何平衡两者。
- 推理过程:在推理时,调整sI和sT的值来控制生成图像的质量。例如,当我们增加sI时,生成的图像会更贴近原始图像;增加sT时,生成的图像会更贴近文本指令。
4. 结果
4.1 定性对比:
-
本研究与两项相关工作的对比:
- SDEdit:基于预训练的扩散模型进行图像编辑。输入部分噪声的图像,去噪后生成编辑图像。缺点:需要提供完整的图像描述,而非简单的编辑指令。
- Text2Live:通过文本提示生成颜色+透明度增广层来编辑图像,适用于增量编辑。缺点:无法处理复杂的编辑类型。
-
结果:
- SDEdit 在处理风格变化较小的编辑时表现较好,但在处理较大或更复杂的变化时,难以保持图像的一致性(例如物体分离、身份保持等)。
- Text2Live 在处理加法图层(如修改背景)时效果不错,但对于其他类型的编辑任务则受到限制。
4.2 定量对比:
- 指标:
- CLIP图像嵌入余弦相似度:衡量编辑后的图像与原始图像的相似度。
- 方向性CLIP相似度:衡量文本描述的变化与图像变化的一致性。
- 这两个指标是对立的,增强编辑效果会导致与原图的相似度降低,反之亦然。
- 结果表明,与 SDEdit 对比时,本文方法在相同的方向性相似度下,图像一致性 更高,表现更优。
4.3 消融实验
- 数据集大小和过滤方法:
- 数据集大小:减少数据集的大小会导致模型在执行编辑时只能进行较小、细微的调整,无法进行大范围的图像修改(表现为高图像相似度,但低方向性相似度)。
- CLIP过滤:去除CLIP过滤会导致编辑图像与输入图像的整体一致性降低。
- 分类器无关引导的影响:
- sT(文本指令的引导尺度):增大 sT 强化文本指令的影响,使得输出图像更符合指令要求,编辑效果更强。
- sI(输入图像的引导尺度):增大 sI 有助于保持输入图像的结构,使输出图像更接近输入图像,从而保持图像一致性。
- 结果:
- 在实际操作中,通常通过调整 sT 和 sI 的值来平衡一致性与编辑强度。
- 最佳的引导尺度范围是:
- sT:5 到 10
- sI:1 到 1.5
5. 主要局限性:
-
生成数据集的视觉质量:我们的模型依赖于生成数据集的视觉质量,因此受到用于生成图像的扩散模型(如Stable Diffusion)的限制。
-
泛化能力的限制:该方法在处理新的编辑指令时存在一定的局限性,尤其是在图像变化与文本指令的关联上,受到:
- GPT-3用于微调的人工编写指令的局限;
- GPT-3生成指令和修改图像描述的能力的限制;
- Prompt-to-Prompt方法修改生成图像的能力的限制。
-
空间推理和物体计数的困难:模型在处理与物体计数和空间推理相关的指令时表现不佳,例如“将它移到图像的左侧”,“交换它们的位置”,“将两个杯子放在桌子上,一个放在椅子上” 等。
-
数据和模型的偏见:由于模型和数据的偏见,生成的图像可能会继承或引入这些偏见(如图14所示)。
未来的研究方向:
- 空间推理的指令处理:如何改进模型对空间推理指令的理解和执行。
- 与用户交互结合的指令:如何将指令与其他调节方式(如用户交互)结合,以增强模型的灵活性。
- 基于指令的图像编辑评估:如何有效地评估基于指令的图像编辑结果。
- 人类反馈的整合:如何利用人类反馈改进模型,未来可通过“人类在回路中的强化学习”策略来提高模型与人类意图的一致性。
相关文章:
【论文阅读】InstructPix2Pix: Learning to Follow Image Editing Instructions
摘要: 提出了一种方法,用于教导生成模型根据人类编写的指令进行图像编辑:给定一张输入图像和一条书面指令,模型按照指令对图像进行编辑。 由于为此任务获取大规模训练数据非常困难,我们提出了一种生成配对数据集的方…...
常用在汽车PKE无钥匙进入系统的高度集成SOC芯片:CSM2433
CSM2433是一款集成2.4GHz频段发射器、125KHz接收器和8位RISC(精简指令集)MCU的SOC芯片,用在汽车PKE无钥匙进入系统里。 什么是汽车PKE无钥匙进入系统? 无钥匙进入系统具有无钥匙进入并且启动的功能,英文名称是PKE&…...
【第四课】rust声明式宏理解与实战
目录 前言 理解宏 实战宏 前言 上一课在介绍vector时,我们再一次提到了rust中的宏,在初始化vector时使用了vec!宏,当时补了一句有机会会好好说明一下rust中的宏,并且写一个hashmap宏来初始化hashmap。想了想一直介绍基本语法还…...
渗透测试--Linux下的文件传输方法
渗透测试过程中,我们经常会需要文件传输,本文主要探讨Linux主机上我们对文件传输的方法。 编码方式 Linux 检查MD5 md5sum id_rsa Linux Base64 编码/解码 编码 cat id_rsa |base64 -w 0;echo 解码 echo -n LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVE…...
浅议Flink中的通讯工具: Akka
在Flink中,各个组件之间需要频繁交换数据和控制信息。Flink选择了基于Actor模型的Akka框架作为通信基础。 Akka是什么 Actor模型 Actor模型是用于单个进程中并发的场景。 在Actor模型中: ActorSystem负责管理actor生命周期 将每个实体视为独立的 Ac…...
基于YOLOv8深度学习的独居老人情感状态监护系统(PyQt5界面+数据集+训练代码)
本研究提出了一种创新的独居老人情感状态监护系统,基于YOLOV8深度学习模型,旨在通过对老年人面部表情的实时监测与分析,来精准识别其情感变化,从而提高独居老人的生活质量,确保其心理健康。本系统通过整合先进的YOLOV8…...
Qt添加外部库:静态库和动态库,批量添加头文件
Qt添加外部库需要知道库文件的位置才能正确链接,如果是静态库,要确保LIBS变量中包含正确的库文件路径和库文件名;如果是动态库,除了库路径外,还需要考虑动态库的加载路径。在 Windows 下,可以将动态库所在路径添加到系…...
Unity类银河战士恶魔城学习总结(P132 Merge skill tree with skill Manager 把技能树和冲刺技能相组合)
【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了解锁技能后才可以使用技能,先完成了冲刺技能的锁定解锁 Dash_Skill.cs using System.Collections; using System…...
Docker入门之Windows安装Docker初体验
在之前我们认识了docker的容器,了解了docker的相关概念:镜像,容器,仓库:面试官让你介绍一下docker,别再说不知道了 之后又带大家动手体验了一下docker从零开始玩转 Docker:一站式入门指南&#…...
DNS实验作业
实验要求 1.搭建dns服务器能够对自定义的正向或者反向域完成数据解析查询。 2.配置从DNS服务器,对主dns服务器进行数据备份。 实验步骤: 1.关闭防护墙 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2.正向解析 [rootlo…...
CSS回顾-CSS选择器详解
一、引言 我来填坑啦!之前在CSS基础知识详解中介绍过,CSS 是一门基于规则的语言。是由选择器与样式信息组成:选择器 {样式信息}。CSS 选择器是 CSS 规则的关键,能精准定位 HTML 元素,CSS3 新增选择器更是增强了设计能…...
FFMPEG录像推流时遇到的问题
FFMPEG录像推流时遇到的问题,记录一下供大参考 1. ret avformat_write_header( ofmt_ctx, NULL ); 执行写入头后,所有的流的时间基都会被内部重新设置,所以并不你想象的把原来的时间直接入到avPACKET中就可以发送了。必须要把你每个流的P…...
【STM32+K210项目】基于K210智能人脸识别+车牌识别系统(完整工程资料源码)
运行效果: 基于K210的智能人脸与车牌识别系统工程 目录: 运行效果: 目录: 前言: 一、国内外研究现状与发展趋势 二、相关技术基础 2.1 人脸识别技术 2.2 车牌识别技术 三、智能小区门禁系统设计 3.1 系统设计方案 3.2 系统设计目标 3.3 智能小区门禁系统硬件设计 3.3.1 控…...
Unity脚本基础规则
Unity脚本基础规则 如何在Unity中创建一个脚本文件? 在Project窗口中的Assets目录下,选择合适的文件夹,右键,选择第一个Create,在新出现的一栏中选择C# Script,此时文件夹内会出现C#脚本图标,…...
基于AIRTEST和Jmeter、Postman的自动化测试框架
基于目前项目和团队技术升级,采用了UI自动化和接口自动化联动数据,进行相关测试活动,获得更好的测试质量和测试结果。...
使用 Azure OpenAI 服务对数据进行联合 SharePoint 搜索
作者:来自 Elastic Gustavo Llermaly 使用 Azure OpenAI 服务处理你的数据,并使用 Elastic 作为向量数据库。 在本文中,我们将探索 Azure OpenAI 服务 “On Your Data”,使用 Elasticsearch 作为数据源。我们将使用 Elastic Shar…...
JavaScript学习笔记 1】初识JS
目录 一、JS是什么? 二、JS的作用? 三、JS的组成 四、JS的书写位置 1. 内部JS 2. 外部JS(外部导入) 3. 内联JS 4. 练习 五、JS的注释与结束符 1. 注释 2. 结束符 3. JS该不该加分号? 六、JS的输入和输出语法 1. 输出语法 a. 输出在页面中 b. …...
Linux-Samba
文章目录 Samba配置服务配置 🏡作者主页:点击! 🤖Linux专栏:点击! ⏰️创作时间:2024年11月18日13点20分 Samba配置 Samba是一个能让 Linux 系统应用与 Microsoft 网络通讯协议的软件&#x…...
【Java Web】JSON 以及 JSON 转换
JSON(JavaScript Object Notation)一种灵活、高效、轻量级的数据交换格式,广泛应用于各种数据交换和存储场景。 基本特点 1、简单易用:JSON格式非常简单,易于理解和使用。 2、轻量级:相比XML等其他数据格…...
Qt 元对象系统
Qt 元对象系统 Qt 元对象系统1. 元对象的概念2. 元对象系统的核心组件2.1 QObject2.2 Q_OBJECT 宏2.3 Meta-Object Compiler (MOC) 3. 信号与槽3.1 基本概念信号与槽的本质信号和槽的关键特征 3.2 绑定信号与槽参数解析断开连接 3.3 标准信号与槽查找标准信号与槽使用示例规则与…...
鸿蒙实战:使用隐式Want启动Ability
文章目录 1. 实战概述2. 实现步骤2.1 创建鸿蒙应用项目2.2 修改Index.ets代码2.3 创建LuzhouAbility2.4 创建Luzhou页面2.5 设置模块配置文件 3. 测试效果4. 实战总结 1. 实战概述 本次鸿蒙应用实战,先创建项目“ImplicitWantStartAbility”,接着修改In…...
go-zero(二) api语法和goctl应用
go-zero api语法和goctl应用 在实际开发中,我们更倾向于使用 goctl 来快速生成代码。 goctl 可以根据 api快速生成代码模板,包括模型、逻辑、处理器、路由等,大幅提高开发效率。 一、构建api demo 现在我们通过 goctl 创建一个最小化的 HT…...
java 操作Mongodb
CRUD基础操作 Springboot 操作 MongoDB 有两种方式。 第一种方式是采用 Springboot 官方推荐的 JPA 方式,这种操作方式,使用简单但是灵活性比较差。第二种方式是采用 Spring Data MongoDB 封装的 MongoDB 官方 Java 驱动 MongoTemplate 对 MongoDB 进行…...
以Java为例,实现一个简单的命令行图书管理系统,包括添加图书、删除图书、查找图书等功能。
江河湖海中的代码之旅:打造你的命令行图书管理系统 一、系统简介 1. Java简介 Java,这个编程语言界的“瑞士军刀”,自1995年诞生以来就以其跨平台的特性和强大的生态系统征服了无数开发者的心。想象一下,Java就像是一条蜿蜒曲折…...
[JavaWeb]微头条项目
完整笔记和项目代码: https://pan.baidu.com/s/1PZBO0mfpwDPic4Ezsk8orA?pwdwwp5 提取码: wwp5 JavaWeb-微头条项目开发 1 项目简介 1.1 业务介绍 微头条新闻发布和浏览平台,主要包含业务如下 用户功能 注册功能登录功能 头条新闻 新闻的分页浏览通过标题关键字搜…...
Linux(CentOS)安装达梦数据库 dm8
CentOS版本:CentOS 7,查看操作系统版本信息,请查阅 查看Linux内核版本信息 达梦数据库版本:dm8 一、获取 dm8 安装文件 1、下载安装文件 打开达梦官网:https://www.dameng.com/ 下载的文件 解压后的文件 2、上传安…...
【专题】中国企业出海洞察报告暨解码全球制胜之道报告汇总PDF洞察(附原数据表)
原文链接:https://tecdat.cn/?p38314 在当今全球化的浪潮中,中国企业的出海行动正以前所未有的规模和速度展开,成为全球经济舞台上的重要力量。本报告旨在对 2024 年中国企业出海情况进行深度洞察,涵盖多个领域和视角。 从对外投…...
[ 跨域问题 ] 前后端以及服务端 解决跨域的各种方法
这篇文章主要介绍了跨域问题,包括其定义、产生原因及各种解决方法。原因是浏览器安全策略限制,方法有 JSONP、CORS、Domain、 postMessage、Nginx配置、.NetCore配置。 前言 什么是跨域问题? 在Web应用中,当一个网页的脚本试图去请求另一个域…...
网络安全之信息收集-实战-2
请注意,本文仅供合法和授权的渗透测试使用,任何未经授权的活动都是违法的。 目录 7、网络空间引擎搜索 8、github源码泄露 9、端口信息 10、框架指纹识别 11、WAF识别 12、后台查找 7、网络空间引擎搜索 FOFA:https://fofa.info/ 360 …...
利用飞书多维表格自动发布版本
文章目录 背景尝试1,轮询尝试2,长连接 背景 博主所在的部门比较奇特,每个车型每周都需要发版,所以实际上一周会发布好几个版本。经过之前使用流水线自动发版改造之后,发版的成本已经大大降低了,具体参考&a…...
环球影城漫游卡持卡人是什么意思/东莞网站seo技术
2945:拦截导弹 查看 提交 统计 提示 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都…...
镇江本地网站/什么平台可以发广告引流
Python最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净、整洁、一目了然。要写出 Pythonic(优雅的、地道的、整洁的)代码,需要多看多学大牛们写的代码,github 上有很多非常优秀的源代码值得阅读&a…...
网站建设安全需求/百度安装免费下载
【广东最美的山】:肇庆鼎湖山点评:鼎湖山自然环境、历史沉淀、规模、各方面综合条件较好,最能代表广东山的美。【广东最美的峡谷】:乳源大峡谷点评:广东最大的峡谷,对驴友来说,最吸引人的是&…...
asp.net 微网站开发教程/个人网站建站教程
1、禁用启动项 window -> preferences -> general -> startup and shutdown -> plug-ins activated on startup,把不需要用到的勾去掉 2、禁止检查自动更新 window -> preferences -> install/update -> automatic updates,勾去掉…...
网站建设教育培训/免费网站在线观看人数在哪直播
讲解上面三条命令之前要先了解一下ELF格式文件https://blog.csdn.net/u014608280/article/details/81983055 一、readelf readelf命令可以查看ELF文件的详细信息。 选项 -a --all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I. -h --file-header 显示elf文件开始的文件…...
台州网站建设公司/廊坊关键词快速排名
小Alan在最近的开发中遇到了敏感词过滤,便去网上查阅了很多敏感词过滤的资料,在这里也和大家分享一下自己的理解。敏感词过滤应该是不用给大家过多的解释吧?讲白了就是你在项目中输入某些字(比如输入xxoo相关的文字时)时要能检测出来…...