淘宝人生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天前
|
机器学习/深度学习 人工智能 自然语言处理
炸裂!PAI-DSW 和 Free Prompt Editing 图像编辑算法,成就了超神的个人 AIGC 绘图小助理!
【6月更文挑战第11天】PAI-DSW 和 Free Prompt Editing 算法引领图像编辑革命,创造出个人AIGC绘图小助理。PAI-DSW擅长深度图像处理,通过复杂模型和深度学习精准编辑;Free Prompt Editing则允许用户以文本描述编辑图像,拓展编辑创意。结合两者,小助理能根据用户需求生成惊艳图像。简单Python代码示例展示了其魅力,打破传统编辑局限,为专业人士和普通用户提供创新工具,开启图像创作新篇章。未来,它将继续进化,带来更多精彩作品和体验。
|
1天前
|
机器学习/深度学习 算法 C语言
详细介绍递归算法在 C 语言中的应用,包括递归的基本概念、特点、实现方法以及实际应用案例
【6月更文挑战第15天】递归算法在C语言中是强大力量的体现,通过函数调用自身解决复杂问题。递归涉及基本概念如自调用、终止条件及栈空间管理。在C中实现递归需定义递归函数,分解问题并设定停止条件。阶乘和斐波那契数列是经典应用示例,展示了递归的优雅与效率。然而,递归可能导致栈溢出,需注意优化。学习递归深化了对“分而治之”策略的理解。**
11 7
|
1天前
|
机器学习/深度学习 存储 算法
【机器学习】深入探索机器学习:线性回归算法的原理与应用
【机器学习】深入探索机器学习:线性回归算法的原理与应用
|
2天前
|
SQL 存储 算法
【MySQL技术内幕】6.4-锁的算法
【MySQL技术内幕】6.4-锁的算法
17 1
|
2天前
|
存储 算法 关系型数据库
【MySQL技术内幕】5.7- InnoDB存储引擎中的哈希算法
【MySQL技术内幕】5.7- InnoDB存储引擎中的哈希算法
11 1
|
4天前
|
机器学习/深度学习 算法 前端开发
决策树与随机森林算法在分类问题中的应用
本文探讨了决策树和随机森林两种监督学习算法,它们在分类任务中表现出强大的解释性和预测能力。决策树通过特征测试进行分类,构建涉及特征选择、树生成和剪枝。随机森林是集成学习方法,通过构建多棵决策树并汇总预测结果,防止过拟合。文中提供了Python代码示例,展示如何使用sklearn构建和应用这些模型,并讨论了参数调优和模型评估方法,如交叉验证和混淆矩阵。最后,强调了在实际问题中灵活选择和调整模型参数的重要性。
18 4
|
5天前
|
算法 C语言 Ruby
分形逃逸时间算法中的 Normalized Iteration Count(NIC)技术 让颜色更柔和
Normalized Iteration Count (NIC) 技术是一种提升逃逸时间算法中分形图像质量的方法,它产生更平滑的颜色过渡。数学公式表示为:`mu = n + 1 - log(log(|Z(n)|)) / log(p)`,其中 `Z(n)` 是迭代次数,`|Z(n)|` 是复数模长,`p` 通常取2。示例代码提供了 Ruby, Maxima 和 C 语言的实现。
|
6天前
|
存储 算法 数据可视化
Dijkstra算法在《庆余年》中的应用:范闲的皇宫之旅
Dijkstra算法在《庆余年》中的应用:范闲的皇宫之旅
|
1天前
|
算法 JavaScript 决策智能
基于禁忌搜索算法的TSP路径规划matlab仿真
**摘要:** 使用禁忌搜索算法解决旅行商问题(TSP),在MATLAB2022a中实现路径规划,显示优化曲线与路线图。TSP寻找最短城市访问路径,算法通过避免局部最优,利用禁忌列表不断调整顺序。关键步骤包括初始路径选择、邻域搜索、解评估、选择及禁忌列表更新。过程示意图展示搜索效果。
|
1天前
|
机器学习/深度学习 算法
基于BP神经网络和小波变换特征提取的烟草香型分类算法matlab仿真,分为浓香型,清香型和中间香型
```markdown 探索烟草香型分类:使用Matlab2022a中的BP神经网络结合小波变换。小波分析揭示香气成分的局部特征,降低维度,PCA等用于特征选择。BP网络随后处理这些特征,以区分浓香、清香和中间香型。 ```