Multi-Concept Customization of Text-to-Image Diffusion——【论文笔记】

news2024/9/28 7:15:43

本文发表于CVPR 2023

论文地址:CVPR 2023 Open Access Repository (thecvf.com)

Github官方代码地址: github.com

 一、Intorduction

最近的文本到图像模型能够根据文本提示生成高质量的图像,可以覆盖广泛的物体、风格和场景。尽管这些模型具有多样的通用功能,但用户通常希望从他们自己的个人生活中综合特定的概念。例如,亲人,如家人,朋友,宠物,或个人物品和地方,如新沙发或最近参观的花园,都是有趣的概念。用户往往希望生成与个人生活紧密相关的内容,而这些通常不会出现在大规模训练数据中。

所以产生了对模型进行定制化的需求,当前个性化模型主要存在以下一些挑战:

  • 遗忘问题: 微调模型时,存在着它可能会忘记或改变已有知识的风险。

  • 过拟合问题: 由于训练样本的数量有限,模型可能会过拟合这些样本,并导致生成的内容缺乏多样性。

  • 复合微调: 如何将多个新概念融入模型,以便可以自由组合它们,比如在图像中合成“月门”前的宠物狗。

本文提出了一种微调扩散模型的方法,自定义扩散的文本到图像的扩散模型。此方法在计算和存储效率上都进行了优化。为了克服上述挑战,我们确定了模型权重的一个小子集,即从文本到交叉注意层中潜在特征的键和值映射。微调这些就足以用新概念更新模型。为了防止模型遗忘,我们使用一小组具有相似字幕的真实的图像作为目标图像。我们还在微调过程中引入了增强,这导致了更快的收敛和更好的结果。为了注入多个概念,我们的方法支持同时训练两者,或者分别训练它们,然后合并。

二、Related Work

深度生成模型:

主流的生成模型包括GAN(生成对抗网络),VAE(变分自编码器),自回归模型,基于流量的模型和扩散模型。这些模型可以以不同类型的条件作为输入,如类别标签,图像或文本提示,以增强生成结果的可控性。

文本条件合成:

之前的研究仅局限于有限的类别。最近的模型在超大规模数据上训练,显示出了显著的泛化能力,但在对特定实例(如个人玩具或稀有类别)的生成上仍有限。

图像编辑和模型微调:

用户常常希望编辑特定的单个图像,而不是随机生成新图像。与预训练模型的表示编辑相关的挑战在于:如何通过逐图像或逐编辑优化来实现。

迁移学习:

预训练模型可以通过迁移学习适应新的数据分布,有研究专注于将模型从一个域调整到另一个域,但这常常导致原有概念的灾难性遗忘。

调整文本到图像模型的特点:

与类似的工作(如DreamBooth和Textual Inversion)相比,本研究关注在不遗忘既有概念的情况下微调模型以获取多个新概念。并且本研究只微调交叉注意层参数的一个子集,减少了微调所需时间。

我们提出了一种面对多个概念组合微调的挑战性场景的解决方案,实现了减少微调参数数量,从而加快微调过程,通过自动度量和人类偏好研究验证了所提方法的效果。

三、Method

给定一个预训练的文本到图像扩散模型,我们的目标是在模型中嵌入一个新的概念,只要给出四张图像和相应的文本描述。微调后的模型应该保留其先验知识,允许基于文本提示的新概念的新一代,这篇文章主要还是在Stable-Diffusion的基础上进行微调的,关于Stable-Diffusion这里就不过多介绍。

我们提出的模型微调方法,如下图所示,只更新模型交叉注意层中的一小部分权重。此外,我们使用一个正则化集的真实的图像,以防止过度拟合的目标概念的几个训练样本。

权重的变化率

作者通过分析目标数据集上的微调模型中每一层的参数变化,发现更新的参数主要来源于以下三类:

这些参数来自三种类型的层-(1)交叉注意(文本和图像之间),(2)自我注意(图像本身),以及(3)其余参数,包括扩散模型U-Net中的卷积块和归一化层。

正如我们所看到的,交叉注意层参数与其他参数相比具有相对较高的Δ。此外,交叉注意层仅占模型中总参数计数的5%。这表明它在微调过程中起着重要作用,我们在我们的方法中利用了这一点。

 模型微调:

交叉注意块根据条件特征修改网络的潜在特征,即,在文本到图像扩散模型的情况下的文本特征。给定文本特征c和潜在图像特征f,Q=Wqf,K=Wkc,V=Wvc。

其中Wq、Wk和Wv分别将输入映射到查询、键和值特征,d是键和查询特征的输出维度。潜在特征然后用注意力块输出更新。微调的任务是更新从给定的文本到图像分布的映射,文本特征仅输入到交叉注意块中的Wk和Wv投影矩阵。因此,我们建议在微调过程中仅更新扩散模型的Wk和Wv参数。

 

多概念组合微调

其实实现多个概念组合微调的基本原理和单个没有太大区别。为了对多个概念进行微调,我们将每个概念的训练数据集组合起来,并使用我们的方法联合训练它们。为了表示目标概念,我们使用不同的修饰符标记V_i,用不同的罕见标记初始化,并使用每层的交叉注意键和值矩阵沿着对其进行优化。

四、Experiments

数据集: 我们在十个目标数据集上进行实验,这些数据集涵盖了各种类别和不同的训练样本。它由两个场景类别、两个宠物和六个对象组成。

评价指标:

(1)Image-alignment(图像对齐),即,使用CLIP图像特征空间中的相似性,生成的图像与目标概念的视觉相似。

(2)Text-alignment,使用CLIP特征空间中的文本-图像相似性,生成的图像与给定提示的文本对齐。

(3)KID ,用于从LAION-400 M检索的类似概念的500幅真实的图像的验证集,以测量目标概念上的过拟合(例如,在一个实施例中,V dog)和忘记现有的相关概念(例如,狗)。

  (4)人类偏好研究。

与Dreambooth、Textual Inversion进行比较:

单一概念微调:

论文中提到:第一行:代表水彩画艺术风格的概念。我们的方法还可以在背景中生成山脉,DreamBooth和Textual Inversion忽略了这些山脉。第二行:改变背景场景。我们的方法和DreamBooth执行类似,比文本反转更好。第三行:添加另一个对象,例如,一张带目标桌子的橙子沙发我们的方法成功地添加了另一个对象。我们在我们的网站上展示更多的样品。

多概念微调:

论文中提到:第一行:我们的方法在遵循文本条件的同时与个人猫和椅子具有更高的视觉相似性。第二行:DreamBooth有时会忽略猫,而我们的方法会同时生成猫和木盆。第三行:我们的方法更好地保持了与目标图像的视觉相似性。第四排:目标桌子和椅子一起在花园里。

如此相比之下,相对于Dreambooth、Textual Inversion而言,论文所提出的方法是相对优异的。

 

上图是基于文本和图像对齐所作的比较,左边的图是单个概念微调,右边则是多个概念的微调。与其他方法相比,论文所提的方法位于更沿着右上角(方差较小)。考虑到图像对齐与文本对齐之间的权衡,我们的方法与baselines相当或更好。 

五、Discussion

这篇论文的主要创新点在于它仅仅通过改变交叉注意力层的一小部分参数(K、V)以实现个性化微调Stable-Diffuison。相对于Dreambooth微调整个模型的做法而言,无疑是大大减小了训练时间以及微调后的权重模型(3GB——75MB),并且实现了多个概念的个性化微调。

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

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

相关文章

Java方法及方法重载的详解

目录 一、方法的概念及使用 1.1 方法的概念 1.2 方法的定义 1.3 方法调用的执行过程 1.4 实参和形参的关系 1.5 没有返回值的方法 二、方法的重载 2.1 方法重载存在的原因 2.2 方法重载的概念 一、方法的概念及使用 1.1 方法的概念 方法就是一个代码片段. 类似于 C …

6.4.1认识Amor SWF to Video Converter2

6.4.1认识Amor SWF to Video Converter2 安装完Amor SWF to Video Converter2 (本书使用Amor SWF to Video Converter2.4.9版本)后,单击【开始】|【程序】|【Amor SWF to Video Converter】|【Amor SWF to Video Converter】,启动Amor SWF to Video Con…

软件测试阶段简介_单元测试、集成测试、配置项测试、系统测试

文章目录 前言一、软件测试“V”模型二、单元测试三、集成测试四、配置项测试五、系统测试总结 前言 一般来说,按照软件的研制阶段划分,软件测试可分为单元测试、集成测试、配置项测试、系统测试等。本文将对上述各测试阶段进行逐一介绍。 一、软件测试…

K8S Informer机制原理解读 | Reflector

Reflector Informer可以对Kubernetes API Server的资源执行监控(Watch)操作,资源类型可以是Kubernetes内置资源,也可以是CRD自定义资源,其中最核心的功能是Reflector。Reflector用于监控指定资源的Kubernetes资源&…

CSS 实现卡片以及鼠标移入特效

CSS 实现卡片以及鼠标移入特效 文章目录 CSS 实现卡片以及鼠标移入特效0、效果预览默认鼠标移入后 1、创建卡片组件2、添加样式3、完整代码 0、效果预览 默认 鼠标移入后 在本篇博客中,我们将探讨如何使用 CSS 来实现卡片组件,并添加鼠标移入特效&#…

中顺洁柔宣布:年底前发出1.3亿年终奖金

1月15日,中顺洁柔在广东中山顺利举行了2023年的年度会议。会议上,该企业宣布2023年公司销售和生产条线基层员工收入增幅10%,并将发出1.3亿元的年终奖金。在年华交替之际,这一举措成为了行业瞩目的焦点。 年会上,中顺洁…

防爆气象站需要如何维护

TH-FBCQX2 在工业生产中,防爆气象站是保障安全生产的重要设备之一。由于其特殊的使用环境和功能,防爆气象站的维护保养工作显得尤为重要。 一、日常维护保养 清洁:防爆气象站的外部和内部组件需要定期清洁,以去除灰尘、油渍和杂质…

分类预测 | Matlab实现ISSA-SVM基于多策略混合改进的麻雀搜索算法优化支持向量机的数据分类预测

分类预测 | Matlab实现ISSA-SVM基于多策略混合改进的麻雀搜索算法优化支持向量机的数据分类预测 目录 分类预测 | Matlab实现ISSA-SVM基于多策略混合改进的麻雀搜索算法优化支持向量机的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 基于多策略混合改进的麻…

Kafka Console Client 的 Consumer Group

以往使用 kafka-console-consumer.sh 消费 Kafka 消息时并没有太在意过 Consumer Group,在命令行中也不会使用 --group 参数,本文针对 Kafka Console Client 命令行中的 Consumer Group 进行一次统一说明。 1. 如不设置 --group 参数会自动生成一个 Con…

Flink编程——风险欺诈检测

Flink 风险欺诈检测 文章目录 Flink 风险欺诈检测背景准备条件FraudDetectionJob.javaFraudDetector.java 代码分析执行环境创建数据源对事件分区 & 欺诈检测输出结果运行作业欺诈检测器 欺诈检测器 v1:状态欺诈检测器 v2:状态 时间完整的程序期望的…

vue:菜单栏联动内容页面tab

一、需求 需要实现效果:左侧菜单栏与右侧内容部分联动,当点击左侧的菜单,右侧会展示对应的tab,没有点击时,不展示(如刚进入页面没有点击菜单,则没有tab);点击后没有关闭…

Java 设计者模式以及与Spring关系(一)单例和建造者模式

简介: 本文是个系列一次会出两个设计者模式作用,如果有关联就三个,除此外还会讲解在spring中作用。 23设计者模式以及重点模式 我们都知道设计者模式有3类23种设计模式,标红是特别重要的设计者模式建议都会,而且熟读于心。标蓝是…

计算机毕业设计 基于SpringBoot的红色革命文物征集管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

C#,因数分解(质因子分解)Pollard‘s Rho算法的源代码

因数分解(也称为质因子分解):将一个大整数分解它的质因子之乘积的算法。 Pollard Rho算法的基本思路:先判断当前数是否是素数(质数),如果是,则直接返回。如果不是,继续找…

ubuntu源码安装MySQL

mysql下载路径 创建新数组 mysql sudo groupadd mysql# 创建用户 mysql ,指定属组为 mysql,禁止其登录 # --no-create-home选项,创建用户时不会自动创建主目录 sudo adduser --system --no-create-home --ingroup mysql --shell /sbin/nologin mysql创…

#Pytorch 使用DDP训练第一轮,验证后第二轮卡住

问题:在使用DDP分布式训练的时候,在第一轮训练后验证结果,在第二轮开始时就卡住了。因为设置了dist.barrier(),所以只有第一个GPU跑了验证,在第二轮时只有第一个GPU的模型在,其他卡的模型都被阻塞住了。 解…

NOIP2011提高组day1 - T3:Mayan游戏(玛雅游戏)

题目链接 [NOIP2011 提高组] Mayan 游戏 题目描述 Mayan puzzle 是最近流行起来的一个游戏。游戏界面是一个 7 7 7 行 5 \times5 5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块…

bug笔记:解决 HTTP Error 500.30 - ASP.NET Core app failed to start

总结下后端部署windos iis环境net6版本,500.30问题报错的一种解决方案: 一、问题描述 二、解决方案 检查下是否安装了net6对应的环境,是否已经安装 然后在事件管理器>Windows日志>应用程序,里面查看详细异常记录 在iis下面…

机器学习平台建设(六)

四、OpenPAI 前文介绍了机器学习平台的功能以及建设机器学习平台要考虑的因素。本节会介绍OpenPAI,即微软的开源机器学习平台。它可用于企业私有部署,也可部署在云平台中。它解决了建模训练时的算力和资源管理的问题。OpenPAI的开发很活跃,问…

工业设备管理系统:助力企业实现数字化转型

随着工业4.0和智能制造的快速发展,数字化转型已成为企业提升竞争力、适应市场变化的必然选择。工业设备管理系统作为数字化转型的关键组成部分,能够为企业提供实时监控、数据分析、预警和远程控制等功能,助力企业实现数字化转型的目标。 一、…