虚拟试衣人像合成新SOTA!IMAGDressing-v1:ControlNet和IP-Adapter的最佳拍档

文章链接:https://arxiv.org/pdf/2407.12705
github链接:https://imagdressing.github.io/
Demo试用:https://sf.dictdoc.site/

亮点直击

  • 为商家引入了一项新的虚拟试衣(VD)任务,并设计了一个综合亲和力测量指数(CAMI)用于评估生成图像与参考服装之间的一致性。

  • 提出了IMAGDressing-v1,其中包括一个用于提取细粒度服装特征的服装UNet和一个带有混合注意力模块的去噪UNet,以平衡服装特征与文本提示控制。

  • IMAGDressing-v1可以与其他扩展插件(如ControlNet和IP-Adapter)结合,以增强生成图像的多样性和可控性。

  • 收集并发布了一个大规模的互动服装配对(IGPair)数据集,包含超过30万对服装和穿戴图像,供社区探索和研究。

目前已经通过使用潜在扩散模型的局部服装修补实现了逼真的虚拟试衣(VTON),显著提升了消费者的在线购物体验。然而,现有的VTON技术忽略了商家全面展示服装的需求,包括对服装、面孔、姿势和场景的灵活控制。

为了解决这一问题,本文定义了一个虚拟试衣(VD)任务,专注于生成具有固定服装和可选条件的可自由编辑的人像。同时,设计了一个综合亲和力指标(CAMI),用于评估生成图像与参考服装之间的一致性。并提出了IMAGDressing-v1,它结合了一个捕捉CLIP语义特征和VAE纹理特征的服装UNet。同时提出了一种混合注意力模块,包括一个冻结的自注意力和一个可训练的交叉注意力,将服装UNet中的服装特征整合到一个冻结的去噪UNet中,确保用户可以通过文本控制不同的场景。IMAGDressing-v1可以与其他扩展插件(如ControlNet和IP-Adapter)结合,以增强生成图像的多样性和可控性。此外,为了解决数据缺乏的问题,发布了互动服装配对(IGPair)数据集,包含超过300,000对服装和穿戴图像,并建立了一个标准的数据组装流程。大量实验表明,IMAGDressing-v1在各种受控条件下实现了最先进的人像合成性能。

与MagicClothing对比

与IP-Adapter结合

与IP-Adapter 和 ControlNet-Pose结合

支持不同场景的文本提示

支持在特定区域更换(实验特性)

Demo展示:

方法

IMAGDressing-v1

如下图3所示,提出的IMAGDressing-v1主要由一个可训练的服装UNet组成,其架构与Stable Diffusion V1.5(SD v1.5)相同。不同之处在于服装UNet能够同时捕捉来自CLIP的服装语义特征和来自VAE的纹理特征,因为VAE可以近乎无损地重建图像。下部是一个冻结的去噪UNet,类似于SD v1.5,用于在特定条件下对潜在图像进行去噪。与SD v1.5不同,研究者们用混合注意力模块替换了所有自注意力模块,以更容易地整合来自服装UNet的服装特征,并利用现有的文本生成图像功能通过文本提示进行场景控制。此外,IMAGDressing-v1包括一个用于编码服装特征的图像编码器和投影层,以及一个用于编码文本特征的文本编码器。

服装UNet

提取细粒度的服装特征对于保持VD任务中的服装细节一致性至关重要。为此,提出的服装UNet同时提取语义信息和纹理特征作为服装特性。给定服装图像,首先使用冻结的VAE编码器将其转换为潜在空间表示。同时,使用冻结的CLIP图像编码器和可训练的投影层从X中提取token嵌入,其中利用Q-Former作为映射层。随后,服装UNet中的服装特征在交叉注意力机制中充分交互,类似于原始T2I模型中文本和图像之间的交互。最后,服装UNet与去噪UNet平行对齐,通过混合注意力将细粒度特征注入去噪UNet中。需要注意的是,服装UNet仅用于编码参考图像。因此,参考图像不会添加噪声,并且在扩散过程中只执行一次前向传递。

混合注意力

对于VD任务,一个理想的去噪UNet应该具备两个关键能力:(1) 保持原有的编辑和生成能力,(2) 整合额外的服装特征。前者可以通过冻结去噪UNet的模块来实现,而后者则通过提出的混合注意力模块来完成。因此,IMAGDressing-v1中的去噪UNet架构类似于原始文本生成图像SD v1.5模型,主要区别在于本文用混合注意力模块替换了去噪UNet中的所有自注意力模块。如上面图3所示,混合注意力模块由一个冻结的自注意力模块和一个可学习的交叉注意力模块组成。这里,混合注意力模块的自注意力权重使用来自SD v1.5的自注意力权重初始化。假设和分别表示查询特征和服装UNet在相应位置输出的服装特征,混合注意力的输出可以定义如下。

其中, 是用于调节服装条件强度的超参数。,, , 和 。这里,和 是可训练线性投影层的权重矩阵。研究者们为自注意力和交叉注意力共享一个查询矩阵Q。在混合注意力模块中,自注意力是冻结的,而交叉注意力是可训练的。换句话说,在公式5中,只有4W′_k和W′_v$ 是可学习的。这种方法能够保留原始T2I模型的生成能力,例如场景生成。

训练和推理

在训练阶段,保持去噪UNet中基本模块的参数不变,只优化剩余的模块。令 表示文本条件,则损失函数LLDM如下所示:

在推理阶段,也根据公式7使用无分类器指导。

Q: 如何支持自定义生成?如前面图3所示,去噪UNet中的基本模块权重是冻结的,这使得服装UNet实际上成为一个适配器模块,与其他社区适配器兼容,以实现自定义面部和姿势生成。例如,要生成穿着给定服装和一致姿势的人的图像,IMAGDressing-v1可以与ControlNet-Openpose结合。要生成穿着指定服装的特定个人,IMAGDressing-v1可以与IP-Adapter集成。此外,如果需要同时指定姿势和面部,IMAGDressing-v1可以与ControlNet-Openpose和IP-Adapter结合使用。此外,对于虚拟试衣(VTON)任务,IMAGDressing-v1也可以与ControlNet-Inpaint结合使用。

实验

实施细节

实验中,通过继承Stable Diffusion v1.5中UNet的预训练权重来初始化服装UNet的权重,并微调其权重。本文的模型在IGPair数据集的配对图像上以512×640的分辨率进行训练。采用固定学习率为5e-5的AdamW优化器。模型在10个NVIDIA RTX3090 GPU上以批次大小为5进行训练,共200,000步。在推理阶段,图像使用UniPC采样器进行50步采样,并将指导尺度w设置为7.0。

主要比较

将IMAGDressing-v1与四种最新的(SOTA)方法进行比较:Blip-Diffusion,Versatile Diffusion,Versatile Diffusion,以及MagicClothing。

定量结果

如下表2所示,由于Blip-Diffusion、Versatile Diffusion和IP-Adapter并非专门设计的VD模型,它们难以提取细粒度的服装特征并生成精确匹配文本、姿势和服装属性的角色图像。这导致其在多个指标上表现不佳。此外,这些模型与多个插件不兼容,因此无法计算CAMI-S指标。与MagicClothing相比,IMAGDressing-v1通过其图像编码器分支捕捉更多细节服装特征,并采用混合注意力机制。这种机制在保留原有文本编辑和生成能力的同时,整合了额外的服装特征。因此,IMAGDressing-v1在所有评估指标上表现优于其他SOTA方法。

定性结果

下图4展示了IMAGDressing-v1与SOTA方法的定性结果对比,包括非特定条件和特定条件生成的结果。在图4(a)中,在非特定条件下,BLIP-Diffusion 和Versatile Diffusion未能忠实地再现服装纹理。虽然IP-Adapter保持了服装的整体外观,但无法很好地保留细节,更重要的是,未能准确遵循文本提示。MagicClothing与文本条件高度一致;然而,它在保留服装整体外观和细节(如印刷文字或颜色)方面表现不佳。相比之下,IMAGDressing-v1不仅遵循文本提示,还保留了细粒度的服装细节,在VD任务中表现出色。本文的方法支持自定义文本提示场景,如图4(a)的最后三行所示。此外,图4(b)展示了在特定条件下的定性结果。观察到,IMAGDressing-v1在涉及给定姿势、面部或两者的场景中显著优于MagicClothing。IMAGDressing-v1生成的结果表现出更优越的纹理细节和更逼真的外观。这表明IMAGDressing-v1与社区适配器的兼容性增强,提升了生成图像的多样性和可控性。

消融研究

各组件的有效性。下表3展示了一项消融研究,以验证所提出的图像编码器分支(IEB)和混合注意力(HA)模块的有效性。这里,A0(基础)表示没有IEB和HA的设置。观察到使用IEB的A1在所有指标上都有所提升,表明IEB有效地捕捉到了语义服装特征。此外,A2超越了A1,表明IEB和HA的结合进一步提升了定量结果。

此外,下图5提供了定性比较。A0未能在具有复杂纹理的图像中充分捕捉服装特征(第二行)。尽管IEB(A1)部分解决了这个问题,但将IEB直接注入去噪UNet会导致与主模型特征冲突,导致服装细节模糊(第三行)。因此,HA模块(A2)通过调整服装UNet中服装细节的强度来提高图像保真度(第四行),这与本文的定量结果一致。

超参数 。下图6展示了超参数对使用固定随机种子生成样本的影响。随着增加到1.0,生成角色中的服装变得更像输入的服装。较小的确保生成的结果更接近文本提示,而较大的λ使结果偏向输入的服装。这表明有效地平衡了原有编辑和生成能力与额外的服装特征。因此,在实验中经验性地将设置为1.0。

潜在应用

下图7展示了IMAGDressing-v1在虚拟试衣(VTON)中的潜在应用。通过将IMAGDressing-v1与ControlNet-Inpaint结合并遮罩服装区域,实现了VTON。结果表明,IMAGDressing-v1可以实现高保真的VTON,展示了显著的潜力。

结论

尽管最近使用潜在扩散模型在VTON方面取得了显著进展,增强了在线购物体验,但它们仍然无法让商家全面展示服装,并灵活控制面部、姿势和场景。为了弥补这一差距,本文引入了虚拟试衣(VD)任务,旨在生成在可选条件下穿着固定服装的可编辑人像。本文提出的IMAGDressing-v1采用了服装UNet和混合注意力模块,整合服装特征,通过文本实现场景控制。它支持像ControlNet和IP-Adapter这样的插件,以提供更大的多样性和可控性。此外,研究者们发布了包含超过300,000对服装和穿着图像的IGPair数据集,提供了一个强大的数据组装流程。广泛的实验验证表明,IMAGDressing-v1在受控人像合成方面达到了业界领先的性能水平。

参考文献

[1] MAGDressing-v1: Customizable Virtual Dressing

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

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

相关文章

最新缺失msvcp140.dll的多种解决方法,有效解决电脑dll问题

msvcp140.dll 是一个关键的动态链接库(DLL)文件,属于 Microsoft Visual C 2015 Redistributable 的一部分。它为使用 Microsoft Visual C 编译的应用程序提供了运行时支持,确保这些应用程序能够正常运行。以下是对 msvcp140.dll 的…

《0基础》学习Python——第十九讲__爬虫\<2>

一、用get请求爬取一般网页 首先由上节课我们可以找到URL、请求方式、User-Agent以及content-type 即:在所在浏览器页面按下F12键,之后点击网路-刷新,找到第一条双击打开标头即可查看上述所有内容,将上述URL、User-Agent所对应的…

java Builder模式构建对象

Builder 模式是一种创建对象的设计模式,它通过使用多个简单的对象一步一步构建复杂对象。这种模式可以帮助构建复杂的对象,并提供更好的代码可读性和灵活性。Builder 模式特别适用于那些构造函数参数过多或参数默认值较多的类。 下面是一个使用 Builder…

ABAP打印WORD的解决方案

客户要求按照固定格式输出到WORD模板中,目前OLE和DOI研究了均不太适合用于这种需求。 cl_docx_document类可以将WORD转化为XML文件,利用替换字符串方法将文档内容进行填充同 时不破坏WORD现有格式。 首先需要将WORD的单元格用各种预定义的字符进行填充…

【重走编程路】设计模式概述(十二) -- 访问者模式、中介者模式、解释器模式

文章目录 前言21. 访问者模式(Visitor)定义问题解决方案应用场景优缺点 22. 中介者模式(Mediator)定义要解决的问题解决方案应用场景优缺点 23. 解释器模式(Interpreter)定义解决方案应用场景优缺点 前言 …

数据仓库事实表

数据仓库中的三种常见事实表类型:事务事实表、周期快照事实表和累积快照事实表 事务事实表: 事务事实表是记录事务级别数据的事实表。它记录了每个事务发生的具体度量指标,如销售金额、数量等。事务事实表的优势在于能够提供详细的事务级别…

四个节点即可实现的ComfyUI批量抠图工作流

原文链接:ComfyUI面部修复完全指南 (chinaz.com) 下图就是批量抠图的工作流 虽然工作流很简单,但是我们前提还是需要安装好我们的节点 首先安装我们的抠图节点 安装 BiRefNet 所需依赖:timm,如已安装无需运行 requirements.txt…

苹果电脑crossover怎么下载 苹果电脑下载crossover对电脑有影响吗 MacBook下载crossover软件

CodeWeavers 发布了 CrossOver 24 版本更新,不仅兼容更多应用和游戏,得益于 Wine 9.0 带来的 7000 多项改进,CrossOver 还可以在 64 位系统上运行Windows应用的软件,使得用户可以在Mac系统中轻松安装使用仅支持Windows系统运营环境…

java设计模式:03-04-装饰器模式

装饰器模式(Decorator Pattern) 装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰器模式通过创建一个装饰类来包装原有的类,…

视觉探秘:sklearn中聚类标签的可视化之道

视觉探秘:sklearn中聚类标签的可视化之道 在数据科学领域,聚类分析是一种无监督学习方法,用于将数据集中的样本划分为若干个组或“簇”,使得同一组内的样本相似度高,而不同组之间的样本相似度低。Scikit-Learn&#x…

如何在Java、Python、PHP中使用短信推广API?

短信推广API是一种用于营销和推广目的的应用程序接口。该API允许开发者通过短信通道向目标受众发送推广信息,包括促销活动、产品介绍、特价优惠等。短信推广API通常支持群发功能、链接跟踪、定时发送等特性,以满足企业对于推广活动的灵活需求&#xff0c…

VScode如何进行调试

参考资料: VS Code入门教程2020 #24 介绍launch.json launch.json配置文件 {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid830387"version": "0.2.0&qu…

Python中的私有属性和方法

在Python编程中,封装是一种重要的面向对象特性,用于限制对类内部数据和方法的访问,确保对象的内部状态只能通过特定的方法进行修改。这种封装机制通过使用私有属性和方法来实现。本文将详细介绍Python中的私有属性和方法及其实现方式。 什么…

搜维尔科技:【研究】动作捕捉加速游戏开发行业的发展

动作捕捉加速游戏开发行业的发展 Sunjata 的故事始于 2004 年,它将席卷乌干达视频游戏行业,然后席卷全世界。但首先,Klan Of The Kings 的小团队需要工具来实现他们的愿景。 漫画家兼非洲民间传说爱好者罗纳德卡伊马 (Ronald Kayima) 在将…

idea navigate mysql生成实体类

参考:https://blog.51cto.com/u_16175427/7251120 使用idea导航MySQL生成实体类 1、在IDEA的顶部菜单中选择View -> Tool Windows -> Database 2、找到表,右键表Scripted Extensions -> Generate POJO...

定个小目标之刷LeetCode热题(45)

32. 最长有效括号 给你一个只包含 ( 和 ) 的字符串,找出最长有效(格式正确且连续)括号 子串的长度。 示例 1: 输入:s "(()" 输出:2 解释:最长有效括号子串是 "()"有事…

6. dolphinscheduler-3.0.0伪集群部署

环境说明: 主机名:cmc01为例 操作系统:centos7 安装部署软件版本部署方式centos7zookeeperzookeeper-3.4.10伪分布式hadoophadoop-3.1.3伪分布式hivehive-3.1.3-bin伪分布式clickhouse21.11.10.1-2单节点多实例dolphinscheduler3.0.0单节…

ELK kibana查询与过滤

ELK kibana查询与过滤 1、通过布尔操作符 AND 、 OR 和 NOT 来指定更多的搜索条件(注意:这AND、OR、NOT必须大写)。例如,搜索message包含服务层关键词并且日志级别为INFO的条目,您可以输入 message:“服务层” AND level:“INFO”。 2、要搜…

Qt 实战(7)元对象系统 | 7.4、属性系统:深度解析与应用

文章目录 一、属性系统:深度解析与应用1、定义属性2、属性系统的作用3、属性系统工作原理(1)Q_PROPERTY宏(2)moc 的作用(3)属性在元对象中的注册 4、获取与设置属性4.1、QObject::property()与Q…

electron定义的变量,vue调用

在 Electron 中,主进程和渲染进程之间是通过 Inter-Process Communication (IPC) 机制进行通信的。这意味着在主进程中定义的变量不能直接在 Vue(渲染进程)中访问,因为它们运行在不同的隔离环境中。 要在 Vue 中访问主进程中定义…