淘宝人生2的AIGC技术应用——虚拟人写真算法技术方案

简介: 淘宝人生2的AIGC技术应用——虚拟人写真算法技术方案




近几个月,随着基于Stable Diffusion的相关技术发展,基于参考图的角色定制化技术[1,2, 3, 4, 7]受到相关行业以及学者的广泛关注。其中,人像定制化是指:给定任务角色(参考图),通过提示词控制生成多样新的图像,并且图像中的人物身份信息和参考图保持一致。人像定制化生成技术可以分为1)基于角色LoRA训练以及2)基于注入图像特征两种方案。其中,基于LoRA训练的技术通过收集定制化人物的多张图像(数量越多,效果越好),将该角色的身份信息隐式的表达在添加了LoRA的Stable Diffusion中(或称为训练数字分身),对于每一个人物,在线训练的时长3~5min不等,例如《妙鸭相机》。而基于注入图像特征的方案规避了“数字分身”的训练过程,受到学者的广泛关注,一些学者利用Stable Diffusion能够生成某些名人多种图像这一特性,开发了少样本的训练方案[8],另一些研究集中于从输入图像中学习到一些特征,注入到Stable Diffusion中。这类方案往往需要较大的数据集,效果相对更加出色。我们基于预训练的人物肖像特征提取器,设计了一种保持人物身份信息的技术方案,效果如图1所示。


图1 淘宝人生《写真馆》线上结果

引言


作为一款装扮类产品,第二人生(淘宝人生2)为手机淘宝引流方式打开了新的大门。其中,结合AI的创新玩法是提升用户活跃度的重要手段。第二人生凭借形象的高度可定制化,提供了多种个性化玩法。随着AIGC技术在图像生成方向的发展,一些技术[1,2, 3, 4]在人像定制化生成上取得不错的进展。因此,我们基于Diffusion技术,构建了一套适用于3D数字人渲染图的AI写真算法方案。


图2 AI照相馆

现有的开源技术中,FaceChain提出了一个基于LoRA训练的人像定制化方案,但是在线训练人像LoRA消耗大量计算资源以及时间,在AI写真项目上可用性较低;此外,ip-adapter通过引入解耦化的注意力机制,将人物信息注入,但是这种方法限制了生成图像的局部多样性。我们提出了一种新的解决方案,其优点在于:

  1. 低时间成本。我们不采用在线训练LoRA的方式,每次出图速度约20s,较基于训练LoRA的方案(预计2~5分钟)快7倍左右。
  2. 多样性。我们设计一种新的基于ip-adapter生图方案,在不影响背景多样性的情况下生成具有一致身份信息的定制化照片(局部多样性),同时,我们可以结合多种风格LoRA,通过调节提示词模版,支持多样的风格(内容多样性)。


技术方案


我们使用如图3的技术方案,整个算法的输入分为“输入图像”以及“输入风格”,其中,“输入图像”来自于3D数字人模型的正面渲染截图(该形象由用户定制);此外,为了使图像生成模型具有内容多样性,我们提供了多种风格,每种风格对应各自的LoRA模型以及提示词模版,模型的“输入风格”由用户选择。

图3 AI照相馆算法pipeline


 图像预处理


由于3D模型渲染结果的正视图截图质量参差不齐(例如,有些用户在捏脸的过程中引入“雀斑”,“贴花”),首先我们需要对输入人像做质量提升。我们首先使用人脸美肤模型对人脸进行美肤处理,这一步主要消除人脸上的雀斑。


图4 美肤算法结果


此外,我们使用人脸增强模型进一步增强人脸,这一步是为了:

  1. 淡化面部一些不和谐的贴花;
  2. 在保持人像身份属性的条件下,将数字人像分布尽可能拉齐到真实人像分布。


图5 人脸增强算法结果


为了使得生成模型能够高效地利用输入图像的有用信息(如身份信息,妆容等),我们对人脸以及头发区域进行分割,同时裁剪出人脸区域,作为图像生成模型的输入(如图3)。接下来,裁剪出来的图像将通过人脸特征提取器提取人脸特征,通过cross attention机制,与提示词的clip特征共同输入到图像生成模型中。


 图像生成模型


图像生成模型中,使用参考图控制图像生成结果的身份信息可分为LoRA[1]训练的方式以及通过模型注入[6]的方式。其中,通过LoRA训练的方式需要输入同一ID不同pose的图像,并且在线训练该ID的LoRA(或者称为数字分身)。由于训练LoRA耗时非常久,因此我们采用通过信息注入的方式控制图像合成。

图6 ip-adapter算法框架


前期实验中,我们采用类似ip-adapter中提出的的图像注入方案(如图6),将图像编码成嵌入向量,通过crossatt的注入到U-net中,但是我们发现,如果将图像编码和文本编码相加,则会影响文本tokens对图像生成结果的控制,使得图像的局部多样性变低;如果将图像编码和文本编码按照维度拼接,由于attention中固有的特性(对前面的token更敏感),输入图像对生成结果的控制能力亦会变低。


图7 ip-adapter方案算法结果


例如(图7),若我们想生成一张具有红色头发风格的图像,但是受到输入人像的影响,生成结果中头发颜色没有按照提示词的描述进行生成,反而和输入人像发色一致,且背景成为单色(和输入人像背景一致),缺失局部多样性。为此,我们提出了一种新的参考图注入技术。


设我们使用的去噪步数为 ,由于Stable Diffusion的特性,其前面的步数主要生成图像的主体形态(layout),后边的步数慢慢提升高频细节。我们首先生成仅仅由提示词控制中间隐变量。具体而言(如图8),假设去噪过程为 ,在 的过程中,不注入参考图信息;在 的过程中,我们注入图像信息,并由DDIM直接进行一步噪声预测。该结果为最终生成图像的layout,我们对这个结果进行分割,得到人脸的启发区域——即生成图像的人脸大部分落在该区域中。

图8 启发区域生成算法


接下来,我们利用人脸区域掩码,基于blend diffusion,将具有局部多样性的背景区域引入到生图结果中。


图9 基于blend diffusion去噪过程


具体而言(如图9),当前时间步下的隐变量 会分别作为注入ip-adapter信息以及不注入ip-adapter信息的U-net的输入,然后两者经过融合,得到下一个时间步的隐变量,整个过程可由下边的公式表示:

其中, 越大,生成的图像的身份信息越和输入图像保持一致,但是,过大的 会引起边缘的不一致性,实验中我们设置成


下图是结果对比。可以发现ip-adapter中,输入的参考图会影响非人脸区域的多样性,例如,基于ip-adapter的头发区域近乎一致,而且背景缺失多样性(例如天空,基于ip-adapter的生成结果中天空颜色和参考图的背景近乎一致),而我们的方案能够保持非目标区域的多样性。


图10 与ip-adapter的对比结果


为了能使用户有新奇的体验,我们建立了一个涵盖约50种的风格模板库和LoRA模型库,在特殊时间节点(如圣诞节,元旦)线上发布对应的风格,切合热点以拉升用户活跃度。每种风格LoRA配合相应的提示词,使得我们的生成结果具有多样新和新奇性。


 模型后处理


Stable Diffusion的basemodel出图率不能达到100%,出图仍存在“抽卡”的情况,例如,生成的图像和输入的图像人物身份信息不一致、面部出现“坏点”、肢体出现严重扭曲等。


图11 Stable Diffusion生图过程遇到的badcase


为此,我们从每次生成的 张图像中选择质量最高 张图像作为最终的生成结果。具体来说(如图3),首先,图像生成模型生成 张候选图,对于每张候选图,我们使用人脸融合算法进一步保证身份一致性,并将候选图根据相似度排序,保留融合结果中前 张图像。对于保留的图像,我们使用图像超分模型增加图像尺寸,并使用面部增强模型进一步提升最终返回结果的人脸区域质量。


算法效果及线上反馈

基于上述算法,在3D数字人像上,我们能够生成定制化的精美照片,如下图所示:

图12 算法定性效果


我们调查了用户反馈,其结果表明了对我们算法结果的认可。


用户反馈:

引用


[1] https://github.com/modelscope/facechain

[2] https://github.com/aigc-apps/EasyPhoto

[3] https://github.com/TencentARC/PhotoMaker

[4] https://github.com/mit-han-lab/fastcomposer

[5] hhttps://civitai.com/

[6] https://ip-adapter.github.io/

[7] https://github.com/InstantID/InstantID

[8] https://arxiv.org/abs/2306.00926


团队介绍


我们是淘天集团-FC技术部-智能策略团队,主要负责手机天猫搜索、推荐、AI创新等业务研发,以及淘宝人生的AI互动玩法的研发,致力于运用搜推算法、计算机视觉、AIGC等前沿技术,为用户带来更好的购物体验和内容创作。欢迎搜索推荐相关以及AIGC相关的算法同学加入我们,简历可投递至shiyupeng.syp@taobao.com。

目录
相关文章
|
5天前
|
存储 自然语言处理 算法
位运算入门及简单算法题的应用
位运算入门及简单算法题的应用
12 1
|
1天前
|
存储 算法 安全
MD5哈希算法:原理、应用与安全性深入解析
MD5哈希算法:原理、应用与安全性深入解析
|
1天前
|
算法 安全 Java
AES加解密算法:原理、应用与安全性解析
AES加解密算法:原理、应用与安全性解析
|
3天前
|
算法 程序员 数据处理
【数据结构与算法】使用单链表实现队列:原理、步骤与应用
【数据结构与算法】使用单链表实现队列:原理、步骤与应用
|
3天前
|
存储 算法 编译器
【数据结构与算法】使用数组实现栈:原理、步骤与应用
【数据结构与算法】使用数组实现栈:原理、步骤与应用
|
4天前
|
存储 算法
【数据结构和算法】---二叉树(2)--堆的实现和应用
【数据结构和算法】---二叉树(2)--堆的实现和应用
6 0
|
7天前
|
算法 索引
DFS算法及应用(二)
回溯:回溯就是DFS的一种,在搜索探索过程中寻找问题的解,当发现不满足求解条件时,就回溯返回,尝试其他路径。
|
9天前
|
人工智能 自然语言处理 算法
【AIGC】GPT-4o技术分析-浅谈
【AIGC】GPT-4o技术分析-浅谈
60 6
|
8天前
|
人工智能 程序员 API
通义万相AIGC技术的测试体验
通义万相AIGC技术的测试体验
23 2
|
9天前
|
机器学习/深度学习 人工智能 算法
AIGC技术:引领智能化新时代浪潮
AIGC技术:引领智能化新时代浪潮
35 1

热门文章

最新文章