百变背景:万相实验室AIGC电商图片可控生成技术

✍🏻 本文作者:云芑、因尘、岁星、也鹿

1. 背景

随着AI生成内容(AIGC)技术如Diffusion的飞速进展,现如今,大家已能够轻易地使用Stable Diffusion(SD)[1]等文生图的模型或工具,将心中所想仅凭语言描述(prompt)即转化为具体图像。基于此,我们不禁思考:是否有可能进一步发展该技术,允许用户通过描述来为商品定制特定背景,从而协助商家快速且轻松地打造理想的商品图像?例如,为一个包生成一个室内桌面摆放的背景,或是为某款连衣裙创造出站在海边的、气质甜美的模特形象等。

正是出于这样的设想,我们基于SD和一些图像控制模型(如controlNet[2])成功实现了这一功能,并推出了AI创意生产工具——万相实验室(https://agi.taobao.com/),生成效果如下图所示,页面上轻松点选,短短几分钟,同一个商品便可以轻松拥有千变万化的背景场景,服装模特也可以调整各种肤色发型。

a56916ac46505d99806b18a2177911b7.jpeg
同前景不同背景生成图

然而在这一过程中,我们在商品/元素控制、模特控制、背景控制上也遇到了一系列挑战。如商品特征不准确、控制局部元素和背景虚化间存在trade off、模特属性与描述不匹配、模特手部畸形、指定颜色的纯色背景生成困难等问题。为了达到更好的效果,我们进行了一番探索并总结出了若干有效的控制方法。在接下来的文章中,我们将围绕各个问题进行详细阐述。

b4716915989093e59cb58429c9313e80.png

2. 商品/元素控制

为了实现商品换背景这一功能,最直接的方法是采用图像修复(inpainting)技术。具体来说,我们可以结合使用SD模型与inpainting controlNet,将抠出的商品视作图像的前景部分,而将其余区域视为待处理的背景。然后通过prompt精准地指导背景的修复内容。然而,直接应用开源模型容易导致商品的过度补全问题,商品特征难以正确保持。如下图展示的例子,一瓶精华液上长出了一个多余的盖子,这显然是难以接受的。为了解决这个问题,我们提出了两种方法:一是进行实例掩模(instance mask)训练,二是在推理时引入基于掩码的Canny边缘控制网络(Masked Canny ControlNet,详见论文>>https://arxiv.org/abs/2404.14768)。

24e97907ca5956465661d77973ad42c8.png

2.1 Instance Mask训练

从普通inpainting模型的训练过程中,可以分析出商品过度补全的主要原因在于,在数据构造过程中,会在图像上随机圈出一个区域生成mask(如下图所示),以该mask划分前背景来训练,图上的物体很容易被这个mask给截断,因此训出的模型倾向于对物体外观形状进行联想补全。为了减少这种现象,更好地生成商品图,我们收集了一批淘宝商品图像,通过牛皮廯过滤、美观度打分等操作过滤出较为优质的数据,再通过分割模型得到商品前景的mask(如下图所示),以这种instance mask构建数据集并训练inpainting模型。

bccc542d904ca341f32b8dd30fd86501.png
图像 | 随机区域mask | instance mask

2.2 Masked Canny ControlNet推理

在使用了Instance Mask训练后,商品过度补全的现象有明显缓解,但还是有一定概率出现,于是我们在推理时加入了Canny ControlNet来帮助控制商品形状。但由于Canny ControlNet在训练时是以全图canny为条件控制训练的,直接叠加Canny ControlNet,背景区域会因为Canny图中无梯度而在生成图中虚化严重,与prompt描述不符。为此,我们提出了一种training-free的策略,如下图所示(Text Encoder和Inpainting ControlNet省略),在Canny ControlNet与U-net结合时,我们增加了一个商品前景的mask,并对该mask进行膨胀,与ControlNet的输出进行点乘,得到的结果再输入到U-net的decoder中。这一操作利用了latent与像素空间的位置一致性和controlNet训练模式的特殊性,有效地控制了商品的边缘轮廓,且排除了canny图背景区域对prompt控制的干扰。

2009406b2cc5a36848052c79a7184bb9.png
Masked Canny ControlNet流程图

2.3 效果

使用上述两个方法后,商品过度补全的现象有明显缓解,对比如下所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值