不实际试穿,就能尝试各种衣饰,假造试衣技术让「QQ秀」升级成了真人版,为时尚行业打开了新世界的大门。
然而,现有的假造试衣方法在逼真性和细节上的一致性方面还存在挑战。虽然扩散模型在创造高品质和真实感图象方面表现出众,但在假造试衣等特定场景中,它们在维持负责力和一致性方面还有待提高。
Outfit Anyone 利用了一种创新的双流前提扩散模型,有效地解决了这些问题,能够精确地处理服装的变形效果,完成更加逼真的试穿体验。Outfit Anyone 最大的特点是其极强的适应性和广泛的应用范围,不仅能调整以适应不同的姿势和体形,无论是动画形象还是真人,都可以一键换装。现已开放试玩。
GitHub: https://github.com/HumanAIGC/OutfitAnyone
Project: https://humanaigc.github.io/outfit-anyone/
Demo 体验 (V0.9):
Modelscope: https://modelscope.cn/studios/DAMOXR/OutfitAnyone/summary
Huggingface Demo: https://humanaigc.github.io/outfit-anyone/
主要方法:前提扩散搜集
假造试衣任务本质是一个前提生成的任务,也就是鉴于给定一张衣饰图片作为前提输出,负责生成衣饰在人身上的试衣图片。当前的 diffusion model 在生成的可控性方面做了很多工作,比如鉴于 tuning-based 的方法,如 lora, dreambooth 等,可以完成通过针对某一个或几个概念的样本图片举行针对性训练,学习对应的某个 concept, 在生成的过程中可以完成对应 concept 或者物体的生成。然而这种方式以来 finetuning,计算和时间成本高,且难以扩展到多个物体的同时生成。
另外一类负责生成的方法是以 controlnet 为代表,其主要原理是通过 zero-conv 训练一个插件的搜集,可以完成利用 mask,canny edge, depth 等多种旌旗灯号负责最终生成图片的 layout。这种方式的最大的弊端在于负责旌旗灯号与目标图象在空间上是 align 的,但衣饰与负责旌旗灯号和目标图象在空间分布上有较大的差异,导致无法直接使用,从而限制了其应用的拓展范围。
因此,作家提出了一种新的支撑试衣功能的前提生成搜集,完成衣饰的形变,光照的变化,衣饰新视角变化情况下的生成,同时能够保持衣饰的纹理,版型,细节的一致性。
相比 lora,dreambooth 等方法的好处是,不再需求针对每个物体举行 finetuning,具有很强的泛化性,从而可以完成 zero-shot 一键试衣。
此外,为了提高试衣结果的真实性,作家提出了 refiner 搜集,对衣饰的细节举行提高,从而能够提高衣饰的材质、色彩,使其更接近真实的试衣效果。Outfit Anyone 也支撑各种复杂的衣饰,多样的姿势,以及适配多种体型,使其能够满足用户多样化的试衣需求。
框架计划
近些年,虽然模型仍层出不穷,但模型计划逐渐走向同质化。主要可以分为 3 个部分:
(1)输出旌旗灯号(图象 / 视频 / 文本 /timestep)转化为 embedding 参入到后续搜集计算中;
(2)基础计算单元:以 Convolution Block 和 Transformer Block 构成;
(3)信息交互单元则根据 embedding 之间的不同,可以通过 spatially-aligned operation 和 non-spatially aligned operation 的多种方式完成交融。
在框架计划上,研究团队遵循简洁有效的原则,按以上的基础思路,首先确定了需求何种输出旌旗灯号,并根据旌旗灯号的差异化采用不同的特性交互方式。
在试衣场景中,需求 3 个负责旌旗灯号:
模特负责:模型提取模特 id,姿态等负责旌旗灯号,完成模特的负责。
衣饰负责:衣饰的平铺图、衣饰的上半身图、饰品(帽子、包、鞋子等)。
图象全局负责:文本描述。
Outfit Anyone 采用了以下的负责旌旗灯号植入形式:
模特负责:利用 spatially aligned operation ,本身作为模特图抽取特性内容,与目标图象在空间对齐。
衣饰负责:本身与模特图空间不能对齐,需求举行形变操作,再通过非线性的操作举行特性交融。
背景、质量等负责:利用 attention 机制完成语义层次特性与图象特性的交融。
目前,鉴于 Diffusion Model 的生成模型强调生成内容在语义层面的对齐性,所以常采用以 CLIP 为代表的图象语义抽取模型举行特性提取,但这对于试衣模型需求保留所输出衣饰的纹理细节矛盾。因此,现有鉴于 CLIP 特性的试衣模型难以准确完整的还原衣饰本身的特性,采用对衣饰纹理细节可还原 / 生成的搜集为佳。
而针对于模特相关的负责旌旗灯号,在训练时,本身是输出模特图的一种抽象旌旗灯号,可作为输出模特图的一个特性通道,在同一搜集中,通过 Channel 维度举行信息整合,并不需求遵循 ControlNet 的计划,额外增加搜集举行处理,从而一定程度简化模型结构。
鉴于以上思考,作家计划了 Outfit Anyone 的模型框架,将多种不同的输出旌旗灯号,输出进两个搜集流中,通过交融的方式完成可控生成。
数据
作家扩充了现有的公开衣饰数据集,构建了一个大规模的假造试衣衣饰数据集。整个数据涵盖了各种类目,包含大量高质量图片。此外,为了完成高质量的衣饰还原,作家充分地整理和提取了衣饰相关的材质属性等信息。
效果展示
1. 仅需平铺图输出,且支撑单件 + 上下装成套的试衣
站在衣饰商家的角度,需求以平铺图作为输出,避免需求上半身图的额外要求。但这也在衣饰上半身后的自然度方面对算法提出了更高的要求。
Outfit Anyone 支撑平铺图的输出,并且可同时支撑单件或者上下搭配。模型根据模特姿势身材的不同,相应生成褶皱、光照等细节不同的衣饰上半身效果,从而完成百变的换装体验。
2. 非常规衣饰试衣
在时尚浪潮的前沿,除了常规版型的衣饰,还有更多有创意的新奇衣饰。Outfit Anyone 对这类衣饰也能提供很好的支撑。
3. 细节一致性提高,可以保证衣饰细节的一致性
为了使 Outfit Anyone 所生成的试衣图片达到摄影级别的质量,作家进一步鉴于试衣模型结构开发了 refiner。可以在保留衣饰基本 ID 的基础上,显著提高衣饰的材料质感,模特的皮肤真实度。