InstructPix2Pix Learning to Follow Image Editing Instructions

InstructPix2Pix: Learning to Follow Image Editing Instructions

TL; DR:核心是使用 GPT3 + SD + P2P 来机造指令编辑训练数据。

数据

本文要做的事情是教会模型根据指令来进行图像编辑。样例如下图所示,给定一张向日葵的图片和指令 “将向日葵换为玫瑰”,编辑结果是将图中的向日葵换为了玫瑰,并保持图像整体布局构图不变。

在这里插入图片描述

如何做到这种指令编辑呢?首先要构建对应的监督数据,即 <原图,编辑指令,目标图> 的三元组。数据的构建也是本文的关键。作者选用了机造数据的方式,使用微调的 GPT-3,根据原始图像描述,生成编辑指令和编辑之后的图像描述。然后使用 Stable Diffusion + Prompt2Prompt 来使用编辑前后的两个图像描述生成两张图像。以下将具体介绍这两步:GPT3 机造编辑前后的文本描述、SD+P2P 根据两个文本描述生成编辑前后的图像。

GPT3 机造编辑前后的文本描述

作者选择了大规模、高质量的 LAION-Aesthetic 图文对数据集,取其图像文本描述。注意,本文完全没有用到现成的图片。首先,作者根据图像的文本描述手写了 700+ 条编辑指令,以及编辑之后的图像描述。然后拿着 700+ 条数据对 GPT3 进行微调,使其具备根据输入文本描述自行设计编辑指令,并生成对应的编辑后文本描述的能力。然后,使用这个微调后的 GPT3,输入文本描述,机造了 450000+ 条数据。这个过程中的数据如下图所示,其中绿色底色的部分是由 GPT3 生成的。

在这里插入图片描述

SD+P2P 根据两个文本描述生成编辑前后的图像

第二步,我们要根据第一步 GPT3 生成的编辑前后的文本描述,生成训练数据图像。众所周知,即使文本描述由细微的变化,图像生成模型的生图结果也很可能完全不同(即使固定 seed),这样的样本不是我们想要的。我们想要的是两张编辑前后图片整体布局构图大致相同,只是根据指令进行了细微的编辑。因此,这一步的关键是,如何保持编辑前后两张图片的布局结构大致相同。

幸运的是,最近刚好有 Google 的工作 Prompt2Prompt 做到了这一点。Promp2Prompt 通过在第二次生成时(在某些时间步)复用第一次生图的注意力图,从而使得第二次生成的布局结构与第一次生图相同,两次生图的 prompt 可以有词替换、词增加等不同的变动。

下图展示了使用或不适用 Promp2Prompt 生成的编辑前后的结果,可以看到,加了 Prompt2Prompt 之后,只有想要编辑的元素(horse -> dragon)发生了变化,图像其余部分以及整体布局结构都基本保持不变,这才是图像编辑想要的效果。

在这里插入图片描述

模型

有了<原图,编辑指令,目标图> 的三元组数据之后,整个任务就是一个监督学习。模型方面我们不需要做太大的变动,只是 InstructPix2Pix 是需要输入图片和文本两个条件,只需在 SD 文生图模型的基础上适配图片条件输入即可。

具体来说,作者在 UNet 的第一个卷积层添加了一个通道(零初始化),接收原图与起始噪声的拼接结果作为输入。

另外,有了两个条件,CFG 的训练设置也有所调整,两个条件都有一定概率被置空。

总结

InstructPix2Pix 是扩散模型指令编辑方向比较经典的工作。核心还是在监督数据的构建,灵活地运用了大语言模型强大的泛化能力和 Prompt2Prompt 保持两次生图布局构图一直的能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3227344.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

zynq使用简单I/O对Flash进行读写测试

硬件环境&#xff1a;ALINX 7020 ZYNQ的QSPI Flash 控制器有以下三种模式&#xff1a;I/O 模式、线性地址模式&#xff0c;以及传统 SPI 模式。 I/O模式 操作特点&#xff1a;在I/O模式下&#xff0c;软件模拟去实现 Flash 器件的通信协议。软件需要将 Flash 命令和数据写到控…

【深度学习入门篇 ②】Pytorch完成线性回归!

&#x1f34a;嗨&#xff0c;大家好&#xff0c;我是小森( &#xfe61;ˆoˆ&#xfe61; )&#xff01; 易编橙终身成长社群创始团队嘉宾&#xff0c;橙似锦计划领衔成员、阿里云专家博主、腾讯云内容共创官、CSDN人工智能领域优质创作者 。 易编橙&#xff1a;一个帮助编程小…

二四、3d人脸构建

一、下载github项目3dmm_cnn-master https://github.com/anhttran/3dmm_cnn.git 一个使用深度神经网络从单个图像进行 3D 人脸建模的项目,端到端代码,可直接根据图像强度进行 3D 形状和纹理估计;使用回归的 3D 面部模型,从检测到的面部特征点估计头部姿势和表情。…

STM32中断学习记录

文章目录 NVICNVIC是什么NVIC寄存器NVIC 结构体NVIC 相关固件库函数 如何定义优先级中断编程外部中断 EXTIEXIT 外部中断/事件控制器EXIT的使用EXTI内部寄存器分析GPIO触发中断例程为什么中断后要清除中断标志位 SysTick的使用SysTick分析 NVIC NVIC是什么 待补充.........NVI…

Docker安装HomeAssistant

检查Docker服务是否正常运行&#xff0c;确保Docker正常运行。 systemctl status docker#输出---------------------- docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Activ…

旗晟智能巡检机器人:开启工业运维的智能化新篇章

在当今快速发展的工业领域&#xff0c;安全、效率和成本控制是企业运营的核心。旗晟科技以创新为驱动&#xff0c;推出了一站式的工业级智能巡检机器人数字化全景运维解决方案&#xff0c;为石油、天然气、化工、电力等高危行业提供了一个全新的运维模式。 一、面对挑战&#x…

人工智能算法工程师(中级)课程3-sklearn机器学习之数据处理与代码详解

大家好&#xff0c;我是微学AI,今天给大家分享一下人工智能算法工程师(中级)课程3-sklearn机器学习之数据处理与代码详解。 Sklearn&#xff08;Scikit-learn&#xff09;是一个基于Python的开源机器学习库&#xff0c;它提供了简单有效的数据挖掘和数据分析工具。Sklearn包含了…

动手学深度学习(Pytorch版)代码实践 -循环神经网络-57长短期记忆网络(LSTM)

57长短期记忆网络&#xff08;LSTM&#xff09; 1.LSTM原理 LSTM是专为解决标准RNN的长时依赖问题而设计的。标准RNN在训练过程中&#xff0c;随着时间步的增加&#xff0c;梯度可能会消失或爆炸&#xff0c;导致模型难以学习和记忆长时间间隔的信息。LSTM通过引入一组称为门…

碾压SOTA!最新视觉SLAM:渲染速度提升176倍,内存占用减少150%

视觉SLAM&#xff0c;一种结合了CV与机器人技术的先进方法。与激光SLAM相比&#xff0c;它成本低廉且信息量大&#xff0c;易于安装&#xff0c;拥有更优秀的场景识别能力&#xff0c;因此在自动驾驶等许多场景上都非常适用&#xff0c;是学术界与工业界共同关注的热门研究方向…

如何将heic格式转换jpg?四种将heic转换成jpg的方法!

如何将heic格式转换jpg&#xff1f;在现今的数字图像处理领域&#xff0c;Heic格式作为一种被吹捧的创新型图像格式&#xff0c;以其先进的压缩技术&#xff0c;迅速减小了图片文件的大小&#xff0c;然而&#xff0c;尽管其有许多优点&#xff0c;实际使用中Heic格式却带来了一…

RSA加密算法因N强度不足破解实例

已知如下RSA密文和公钥信息&#xff0c;要求解密得到明文。 ----------------------- ciphertext&#xff08;HEX&#xff09; 94808F954A8AF9B9 N&#xff08;HEX&#xff09; C6EAD137492B4631 e&#xff08;HEX&#xff09; 10001 ------------------------ 分析过…

【Linux】命令执行的判断依据:;,,||

在某些情况下&#xff0c;很多命令我想要一次输入去执行&#xff0c;而不想要分次执行时&#xff0c;该如何是好&#xff1f; 基本上有两个选择&#xff0c; 一个是通过shell脚本脚本去执行&#xff0c;一种则是通过下面的介绍来一次入多个命令。 1.cmd&#xff1a;cmd&#…

【Android】基于 LocationManager 原生实现定位打卡

目录 前言一、实现效果二、定位原理三、具体实现1. 获取权限2. 页面绘制3. 获取经纬度4. 方法调用5. 坐标转换6. 距离计算7. 完整代码 前言 最近公司有个新需求&#xff0c;想要用定位进行考勤打卡&#xff0c;在距离打卡地一定范围内才可以进行打卡。本文将借鉴 RxTool 的 Rx…

buuctf面具下的flag

细节: 这道题可能因为是vmdk的原因 导致在window上 7z无法得到全部的信息 所以最后解压要在linux系统上 解密网站 Brainfuck/Ook! Obfuscation/Encoding [splitbrain.org] 这道题010打开,可以发现里面隐藏了很多 binwalk解压 两个文件 vmdk可以直接 用7z解压 7z x flag.…

常用网络概念

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 ​​ 目录 了解组织 局域网技术 …

20240711 每日AI必读资讯

&#x1f3a8;Runway Gen-3 Alpha 详细使用教程以及提示词指南大全 - 7月9日&#xff0c;著名生成式AI平台Runway在官网公布了&#xff0c;最新发布的文生视频模型Gen-3 Alpha的文本提示教程。 - 从技术层面来说&#xff0c;输入的文本提示会被转换成“向量”&#xff0c;这些…

怎么提高音频声音大小?提高音频声音大小的四种方法

怎么提高音频声音大小&#xff1f;在音频处理和编辑中&#xff0c;增加声音的音量是一个常见的需求&#xff0c;尤其是在确保音频清晰度和听觉效果的同时。调整音频的音量不仅仅是简单地提高音频的响度&#xff0c;它也涉及到如何保持音质的高标准&#xff0c;确保没有失真或削…

如何写好品牌宣传稿提升品牌曝光?看这篇文章就够了

在这个信息爆炸的时代&#xff0c;一句精炼而富有力量的宣传语&#xff0c;足以让品牌在万千竞争者中脱颖而出。撰写一篇成功的品牌宣传稿&#xff0c;不仅是对文字艺术的驾驭&#xff0c;也是对品牌灵魂的深刻洞察与精准传达&#xff0c;更是连接品牌与消费者情感与认知的桥梁…

怎样将aac转换mp3格式?推荐四个aac转MP3的方法

怎样将aac转换mp3格式&#xff1f;当需要将aac格式音频转换为MP3格式时&#xff0c;有几种方法可以轻松实现这一目标。MP3是一种广泛支持的音频格式&#xff0c;几乎所有设备和平台都能播放MP3文件&#xff0c;包括各种音乐播放器、手机、平板电脑和汽车音响系统。而且它也提供…

实习记录3

1.Mybaits懒加载 MyBatis 延迟加载&#xff08;懒加载&#xff09;一篇入门-腾讯云开发者社区-腾讯云 (tencent.com) 2.高级映射 106-高级映射之多对一映射第一种方式_哔哩哔哩_bilibili 3.TableId(type IdType.INPUT) Mybatis-plus 主键生成策略_mybatis-plus 自增主键等于…