绝地归来!英伟达等提出JeDi:无需微调,个性化图像生成新SOTA![CVPR 2024]

news2024/9/30 13:18:46

文章链接:https://arxiv.org/pdf/2407.06187
github链接:https://research.nvidia.com/labs/dir/jedi

  • 本文提出了一种无需微调的文本生成图像方法,采用了新颖的联合图像扩散模型。

  • 提出了一种简单且可扩展的数据合成流程,用于生成共享同一主题的多图像个性化数据集。

  • 设计了新颖的架构和采样技术,如耦合自注意力和图像引导,以实现高保真度的个性化生成。

个性化文本生成图像模型使用户能够在不同场景中创建展示其个人物品的图像,并在各个领域找到应用。为了实现个性化功能,现有方法依赖于在用户的自定义数据集上微调文本生成图像的基础模型,这对于普通用户来说可能并不容易,而且资源密集且耗时。尽管已有尝试开发无需微调的方法,但其生成质量远低于微调方法。

本文提出了一种名为Joint-Image Diffusion (JeDi) 的有效技术,用于学习无需微调的个性化模型。关键思想是学习共享共同主题的多个相关文本图像对的联合分布。为了便于学习,提出了一种可扩展的合成数据集生成技术。模型训练完成后,本文的模型在测试时通过在采样过程中简单使用参考图像作为输入,能够实现快速且简便的个性化。JeDi不需要任何昂贵的优化过程或额外的模块,并且可以保留任意数量参考图像所表示的身份。实验结果表明,本文的模型在定量和定性方面都实现了最先进的生成质量,显著优于之前基于微调和无需微调的个性化基准。

方法

数据集创建

训练模型以生成多张同一主题图像的联合分布,需要一个数据集,每个样本都是共享同一主题的图像集。虽然存在一些同一主题的数据集,例如 CustomConcept101和 DreamBooth,但它们规模较小,缺乏扩散模型训练所需的足够变化。因此,研究者们使用大型语言模型和单图像扩散模型创建了一个包含同一主题的图像-文本对的多样化大规模数据集,称为合成同一主题(S3)数据集。

下图3展示了数据生成过程。首先从一个常见对象列表开始,并提示 ChatGPT 为列表中的每个对象生成文本描述。然后,使用预训练的 SDXL模型,通过在每个生成的文本提示中附加“相同的照片”一词,生成一个相同主题的照片拼贴数据集。观察到,通过这种方式提示 SDXL 模型,它可以生成具有不同姿势的相同主题的照片拼贴。然而,生成的图像通常包含简单背景中的物体特写。为了增加数据的多样性,采用了一个后处理步骤,对生成的对象进行背景增强。

对于生成的照片拼贴,首先运行目标检测和分割以分离出对象实例并提取前景区域。丢弃 CLIP图像得分低于0.95的实例对,因为它们可能不包含相同的主题。然后,将对象粘贴在空白图像中的随机位置,并使用Stable Diffusion修补模型根据与相同对象名称相关的新提示修补背景。此外,使用 InstructPix2Pix以0.5的概率对生成的样本进行风格化,以使用随机选择的风格提示增加风格变化。下图4显示了通过该过程生成的一些文本-图像数据示例。生成的样本具有一致的主题,并且具有良好的多样性和姿势变化。

联合图像扩散

训练联合图像扩散模型的目标是生成共享相同主题的多张相关图像。然而,传统的扩散模型只能独立生成单张图像,因为网络架构在一个批次中不同样本之间没有任何连接。研究者们发现,通过简单的修改,单图像扩散模型可以适应成为联合图像模型,从而生成具有相关内容(如相同定制主题)的图像。

更具体地说,给定一组相同主题的噪声输入图像,修改 U-Net 的注意力层,将同一组中不同图像的自注意力特征融合在一起。如下图6所示,耦合自注意力层在每个空间位置的特征会关注到集合中所有图像的每个其他位置。由于 U-Net 架构在各种分辨率上都有注意力层,在多个分辨率上使用耦合自注意力使得生成的图像集具有一致的高层语义特征以及低层属性。下图5可视化了耦合自注意力层的像素对应关系和注意力热图。观察到,不同图像之间共同关注的区域在所有分辨率上形成了正确的对应关系。

在耦合自注意力层之后,输出会被送到常规的交叉注意力层,这将每张图像的视觉特征与相应的文本提示对齐。耦合自注意力层可以通过在常规自注意力之前和之后简单地添加两个重塑操作来实现,从而实现预训练单图像扩散模型的简单易行的适配。

下图2(b) 说明了训练过程。首先通过添加各向同性高斯噪声来创建噪声相同主题数据,并训练联合图像扩散模型以去噪这些数据。理想情况下,相同主题的每个图像集的大小没有限制。

在实验中,在训练过程中随机将大小设置为 2、3 或 4。JeDi 的训练损失与常规扩散模型非常相似。使用 ε-prediction 和 [13] 中 介绍的简化训练目标。损失函数如下:

表示由参数 参数化的网络,T 是扩散步骤数, 是第 t 步的噪声图像集,大小为 N,即 。为了简化,在 (·) 中省略了文本和时间步条件。训练后,JeDi 模型可以接受多个文本提示作为输入,并生成包含相同主题的图像。

个性化文本生成图像

个性化修复。联合图像扩散模型可以生成相同主题的图像,但它没有输入需要个性化的参考图像。本节提出通过将输入图像个性化问题视为修补任务来解决这个问题。也就是说,给定一些作为参考的文本-图像对,生成新的个性化样本的任务可以视为修补包含参考图像的联合图像集的缺失图像(如前面图 2 (c))。

通过修改扩散 U-Net 的输入层来设计修补模型,以便它可以以参考图像为条件。更具体地说,扩散模型的输入是一个噪声图像、参考图像和一个二进制mask的拼接列表,该mask指示是否使用参考图像。当二进制mask全为0时,使用参考图像。另一方面,当二进制mask全为1时,参考图像是一个空的黑色图像(表示需要生成的缺失图像)。在训练过程中,对于联合图像集中的每张图像,以0.5的概率使用参考图像,即以0.5的概率将二进制mask设置为0。然后,训练损失可以写为如下:

其中,M 是一个空间重复的二项变量 m 的张量; 表示参考图像,未知元素设为零。

在推理过程中,利用替换技巧,将联合图像集中已知部分替换为干净参考图像的前向扩散响应。设 为参考图像,它们是图像集 中已知的元素,在生成时使用。在每个扩散步骤 t 中,只保留未知元素 的反向扩散输出,同时将已知部分替换为前向扩散输出,即噪声的真实图像 。

图像引导 分类器无关引导是一种流行的技术,用于单图像扩散模型中,使生成的图像更加符合输入条件。为了提高生成样本对输入参考图像的忠实度,在采样过程中除了使用文本引导外,还使用图像引导。使用图像引导的评分函数如下:

其中, 表示当文本提示和所有参考图像都设置为空时的无条件评分; 是引导比例。发现,使用图像引导可以显著提高生成图像对输入参考图像的忠实度。

实验

数据集 研究者们构建了用于训练的合成同一主题数据集(S3 数据集)。经过 CLIP 过滤后,获得了 160 万组图像,每组包含 2-4 张图像。训练期间,还包括了来自 WebVid10M 的视频帧和 Objaverse的渲染多视图图像,因为这些视频帧和资产的渲染图像通常具有相同的主题。使用原始视频字幕或资产字幕作为从同一视频/资产获得的所有图像的文本提示。此外,还包括来自 LAION 美学数据集的单图像数据,并将这些图像的集合大小设为 1。为了评估本文的模型,使用了 DreamBooth中提出的测试数据集。DreamBooth 测试集包含 30 个现实世界的主体,每个主体有 4-6 张图像和 25 个提示词。

评估指标 个性化文本生成图像的两个主要评估标准包括 (1) 生成图像与输入文本提示之间的一致性,以及 (2) 生成图像对输入参考图像的忠实度。使用生成图像与输入字幕之间的 CLIP 图像-文本相似性 (CLIP-T) 来评估 (1)。对于 (2),遵循之前的工作 [17, 28, 33],使用生成图像与参考图像之间的 CLIP 图像embedding (CLIP-I) 和 DINO 图像embedding (DINO) 的余弦相似性。DINO 被认为是衡量图像相似性的首选指标,因为它对同一概念类别中不同图像的外观变化很敏感。此外,还报告了仅针对前景遮罩图像的 CLIP-I 和 DINO 得分,即使用对象检测和分割剪切出前景对象的图像。这有助于在计算图像相似性得分时消除背景变化,更好地反映对参考主题的忠实度。称这些指标为 MCLIP-I 和 MDINO。

实现细节 基于 Stable Diffusion V1.4 实现了本文的方法,以便与先前的方法进行公平比较。使用批量大小 2048 和学习率 5e-5 来训练模型。使用预训练的 Stable Diffusion 模型初始化权重。对于每个批次,以相等的概率从 S3、WebVid10M、Objaverse 和 LAION 数据集中随机抽取图像集。随机选择图像集大小为 2-4,LAION 除外,LAION 的集大小始终为 1。本文的模型在 32 个 A100 GPU 上训练了 36 小时,共进行了 140,000 步。

比较

将本文的方法与最先进的无需微调的方法 BLIPD和 ELITE 以及两种基于微调的方法 DreamBooth (DB)和 CustomDiffusion (CD)进行比较。对于每个主体,对无需微调的方法使用一张输入参考图像,对基于微调的方法使用三张输入参考图像。

与无需微调的方法的比较 下图 8 展示了本文的方法与 BLIPD 和 ELITE 的视觉对比。可以看出,本文的方法能够忠实捕捉输入参考图像的视觉特征,包括语义属性和低级细节。

然而,BLIPD 和 ELITE 生成的图像只能大致类似于输入的颜色模式和语义特征。还观察到,对于诸如狗等常见对象类别,BLIPD 和 ELITE 可以生成合理的结果。这是因为它们的编码器可以轻松识别常见的对象类别(如狗的品种),使个性化生成更容易。然而,对于独特的不常见对象,它们的结果往往要差得多,例如第二行的玩具和第三行的图像。请注意,即使是常见类别,如第一行的狗例子,BLIPD 和 ELITE 生成的图像也可能会遗漏一些输入特征(尽管是同一品种但发型不同)。相比之下,本文的方法消除了编码器引起的信息丢失,能够更好地保留自定义概念。这也反映在量化比较下表 2 中,我本文的方法大幅度超过了 BLIPD 和 ELITE。

与基于微调的方法的比较 下图 9 展示了本文的方法与 DreamBooth (DB) 和 CustomDiffusion (CD) 的视觉对比。当参考图像数量有限时,基于微调的方法难以避免过拟合并生成输入主体的新变体。从图 9 中可以看出,由于过拟合,DB 经常直接复制输入图像,而 CD 生成的图像不能忠实地保留输入主体的特征。相比之下,本文的方法在不改变关键视觉特征的情况下,创造了参考主体的适当变体。即使没有任何昂贵的微调,当提供相同数量的参考图像(JeDi-3)时,本文的方法在量化比较中也优于 DB 和 CD,如表 2 所示。

消融研究

S3 数据集的大小 下表 3 报告了使用不同数量的合成图像训练本文的模型的结果。数据集大小 0 指的是仅在视频和多视图图像上训练模型。这个设置产生了最佳的图像对齐(DINO 和 MDINO)和最差的文本对齐,因为模型学会了一种捷径,即忽略文本提示并复制输入图像。第 2-4 列的性能大致相似,这表明通过增加合成数据集的大小并没有带来太大的提升。

联合图像扩散模型 在下表 4 中,报告了 JeDi 训练中不同设计选择的消融研究结果。第一列显示了一个 CLIP 编码器基线的结果,这是一个基于 CLIP 图像特征进行条件训练的单图像扩散模型。JeDi 模型在图像对齐方面远优于 CLIP 编码器基线,这表明使用联合图像模型比使用图像编码器有更多优势。还发现,将 CLIP 图像embedding作为额外条件输入添加到 JeDi(+ CLIP emb)中并没有改善性能,如第 3 列所示。这表明联合图像模型已经捕捉到了图像embedding中提取的信息。最后一列报告了没有图像引导的结果(w/o IG)。通过比较第二列和最后一列,可以看出图像引导对于获得良好的个性化结果至关重要。

结论

JeDi,一种使用联合图像扩散模型进行无需微调的个性化文本到图像生成的新方法。展示了如何通过联合自注意力层将单图像扩散 U-Net 调整为学习联合图像分布。为了训练联合图像扩散模型,构建了一个名为 S3 的合成数据集,其中每个样本包含一组共享相同主题的图像。实验结果表明,所提出的 JeDi 模型在基准数据集上在数量和质量上都优于先前的方法。

参考文献

[1] JeDi: Joint-Image Diffusion Models for Finetuning-Free Personalized Text-to-Image Generation

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

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

相关文章

kafka.common.KafkaException: Socket server failed to bind to xx:9092

部署分布式集群的时候遇到的错误。 解决方案: 修改config下的server.properties,添加 listenersPLAINTEXT://:9092 advertised.listenersPLAINTEXT://自己的服务器ip:9092 然后重新启动,检查进程是否存在ps -aux | grep kafka。 成功启动。

微信小程序 - 本地存储 增加有效期

小程序的本地存储API提供了wx.setStorageSync和wx.setStorage来存储数据,注意的是,小程序的本地存储并没有明确的有效期设置,存储的数据在不超过限制的情况下,会一直保留。 一、小程序本地存储API 小程序的本地存储API提供了设置…

全网最全的接口文档速成

文章目录 接口文档内容前言1. 前后端分离开发1.1 介绍1.2 开发流程1.3 前端技术栈 2. Yapi2.1 介绍2.2 使用2.2.1 准备2.2.2 定义接口2.2.3 导出接口文档2.2.4 导入接口文档 3. Swagger3.1 介绍3.2 使用方式3.3 查看接口文档3.4 常用注解3.4.1 问题说明3.4.2 注解介绍3.4.3 注解…

【C++高阶】高效数据存储:理解并模拟实现红黑树Map与Set

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:了解 红黑树 🌹🌹期待您的关注 🌹🌹 ❀模拟实现Map与Set 📒1.…

【RHCE】转发服务器实验

1.在本地主机上操作 2.在客户端操作设置主机的IP地址为dns 3.测试,客户机是否能ping通

PHP禁止IP访问和IP段访问(代码实例)

PHP禁止IP和IP段访问 实现IP限制是Web开发中常见的需求之一&#xff0c;它可以用于限制特定IP地址的访问权限。在PHP中&#xff0c;我们可以通过一些方法来实现IP限制。 <?//禁止某个IP$banned_ip array ("127.0.0.1",//"119.6.20.66","192.168.…

使用CANoe创建仿真项目并执行

使用CANoe创建开关控制灯亮灯灭的仿真环境 一、创建仿真工程 1.在某盘符下创建一个文件夹&#xff0c;命名为testpanel(自定义&#xff0c;与项目相关)&#xff0c;在文件夹testpanel下面分别创建CANdb、Panels和Nodes文件目录 2.打开CANoe&#xff0c;单击File→New&#xff…

分享中国-吉林省和9个地级市州人文地图

分享中国-吉林省和9个地级市州人文地图 1、吉林省 吉林省&#xff0c;位于中国东北地区中部&#xff0c;地处东北亚地理中心位置&#xff0c;因吉林市而得名&#xff0c;清康熙时在松花江畔建吉林乌拉城&#xff0c;满语意为“沿江的地方”。 吉林省以中部大黑山为界&#x…

How do I format markdown chatgpt response in tkinter frame python?

题意&#xff1a;怎样在Tkinter框架中使用Python来格式化Markdown格式的ChatGPT响应&#xff1f; 问题背景&#xff1a; Chatgpt sometimes responds in markdown language. Sometimes the respond contains ** ** which means the text in between should be bold and ### te…

[AI 大模型] Meta LLaMA-2

文章目录 [AI 大模型] Meta LLaMA-2简介模型架构发展新技术和优势示例 [AI 大模型] Meta LLaMA-2 简介 Meta LLaMA-2 是 Meta 推出的第二代开源大型语言模型&#xff08;LLM&#xff09;&#xff0c;旨在为研究和商业应用提供强大的自然语言处理能力。 LLaMA-2 系列模型包括从…

华为OD机试 - 二叉树的广度优先遍历 - 二叉树(Java 2024 D卷 200分)

华为OD机试 2024D卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;D卷C卷A卷B卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测…

算丰 2300x-SOC TPU 处理器体验,运行 langchain + chatglm3 知识库,评测对话效果海口有几个机场 | Chatopera

处理器 算丰 2300x-SOC&#xff0c;国产 AI 芯片 处理器效果不错&#xff0c;使用 models/glm3_model/chatglm3-6b_int4_1dev_2k.bmodel 达到 8.9 Token/s 知识库项目 ChatDoc-TPU 验证过程 但是知识库运行的效果差强人意&#xff0c;有待提升。过程如下&#xff1a; 上…

Kithara和OpenCV (一)

Kithara使用 OpenCV 目录 Kithara使用 OpenCV简介需求和支持的环境构建 OpenCV 库使用 CMake 进行配置以与 Kithara 一起工作 使用 OpenCV 库设置项目运行 OpenCV 代码图像采集和 OpenCV自动并行化限制和局限性1.系统建议2.实时限制3.不支持的功能和缺失的功能4.显示 OpenCV 对…

Centos7 被停用!如何利用 Ora2Pg 将 Oracle 迁移至 IvorySQL?

在过去的社区讨论中&#xff0c;想要使用或正在使用IvorySQL的社区用户&#xff0c;经常问到Oracle 如何迁移到 IvorySQL 中&#xff0c;而且近期随着 Centos7 官方已经停止维护&#xff0c;这一变动促使了很多将 Oracle 部署在 Centos7 上的 Oracle 用户&#xff0c;开始准备 …

深度学习之梯度消失

在深度学习中&#xff0c;梯度消失是指在反向传播过程中&#xff0c;随着网络层数增加或者在使用特定类型的激活函数&#xff08;如sigmoid函数&#xff09;时&#xff0c;梯度逐渐变小并最终趋近于零的现象。这种现象导致在更新参数时&#xff0c;底层网络的权重几乎不会得到有…

增强现实(AR)与虚拟现实(VR)的区别?

随着科技的飞速发展&#xff0c;增强现实&#xff08;AR&#xff09;与虚拟现实&#xff08;VR&#xff09;技术在各个领域展现出巨大的潜力和应用前景。这两种技术虽然在体验和实现方式上有所不同&#xff0c;但都为用户提供了全新的感知体验。本文将详细解析AR和VR的概念、区…

mysql查询的一些问题

解决方案一&#xff1a;给字段起别名&#xff0c;让别名与实体类属性一致 解决方案二&#xff1a;通过Results和Result注解手动映射 推荐使用方案三&#xff1a;开启驼峰命名在application.properties文件中添加mybatis.configuration.map-underscore-to-camel-casetrue

基于Java中的SSM框架实现疫情冷链追溯系统项目【项目源码+论文说明】

基于Java中的SSM框架实现疫情冷链追溯系统演示 摘要 近几年随着城镇化发展和居民消费水平的不断提升&#xff0c;人们对健康生活方式的追求意识逐渐加强&#xff0c;生鲜食品逐渐受到大众青睐&#xff0c;诸如盒马鲜生、7-fresh等品牌生鲜超市&#xff0c;一时间如雨后春笋般迅…

280个地级市金融集聚水平数据(2006-2022年)

2006年-2022年280个地级市金融集聚水平数据整理资源-CSDN文库 金融集聚水平&#xff1a;衡量地级市金融发展的新维度 金融集聚水平是衡量一个地区金融发展程度的重要指标&#xff0c;它反映了金融机构、金融资源、金融服务在特定时间和空间的集中程度。这一指标的评估可以从多…

【常见开源库的二次开发】一文学懂CJSON

简介&#xff1a; JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式。它基于JavaScript的一个子集&#xff0c;但是JSON是独立于语言的&#xff0c;这意味着尽管JSON是由JavaScript语法衍生出来的&#xff0c;它可以被任何编程语言读取和生成…