✍🏻 本文作者:云芑、因尘、岁星、也鹿
1. 背景
随着AI生成内容(AIGC)技术如Diffusion的飞速进展,现如今,大家已能够轻易地使用Stable Diffusion(SD)[1]等文生图的模型或工具,将心中所想仅凭语言描述(prompt)即转化为具体图像。基于此,我们不禁思考:是否有可能进一步发展该技术,允许用户通过描述来为商品定制特定背景,从而协助商家快速且轻松地打造理想的商品图像?例如,为一个包生成一个室内桌面摆放的背景,或是为某款连衣裙创造出站在海边的、气质甜美的模特形象等。
正是出于这样的设想,我们基于SD和一些图像控制模型(如controlNet[2])成功实现了这一功能,并推出了AI创意生产工具——万相实验室(https://agi.taobao.com/),生成效果如下图所示,页面上轻松点选,短短几分钟,同一个商品便可以轻松拥有千变万化的背景场景,服装模特也可以调整各种肤色发型。

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

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

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

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控制的干扰。

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