淘宝人生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。

目录
相关文章
|
11天前
|
存储 监控 算法
员工上网行为监控中的Go语言算法:布隆过滤器的应用
在信息化高速发展的时代,企业上网行为监管至关重要。布隆过滤器作为一种高效、节省空间的概率性数据结构,适用于大规模URL查询与匹配,是实现精准上网行为管理的理想选择。本文探讨了布隆过滤器的原理及其优缺点,并展示了如何使用Go语言实现该算法,以提升企业网络管理效率和安全性。尽管存在误报等局限性,但合理配置下,布隆过滤器为企业提供了经济有效的解决方案。
52 8
员工上网行为监控中的Go语言算法:布隆过滤器的应用
|
6天前
|
人工智能 自然语言处理 安全
新浪微博AIGC业务应用探索-AIGC应用平台助力业务提效实践
本次分享围绕AIGC技术在新浪微博的应用展开,涵盖四个部分。首先分析AIGC为微博带来的机遇与挑战,特别是在内容安全和模型幻觉等问题上的应对策略;其次介绍通过工程架构快速实现AIGC技术落地的方法,包括统一部署模型和服务编排;接着展示AIGC在微博的具体应用场景,如评论互动、视频总结和智能客服等;最后展望未来,探讨大模型的发展趋势及其在多模态和特定业务场景中的应用前景。
|
3月前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
64 3
|
2月前
|
人工智能 自然语言处理 数据可视化
什么是AIGC?如何使用AIGC技术辅助办公?
2分钟了解AIGC技术及其如何提高日常办公效率!
115 4
什么是AIGC?如何使用AIGC技术辅助办公?
|
11天前
|
存储 缓存 算法
探索企业文件管理软件:Python中的哈希表算法应用
企业文件管理软件依赖哈希表实现高效的数据管理和安全保障。哈希表通过键值映射,提供平均O(1)时间复杂度的快速访问,适用于海量文件处理。在Python中,字典类型基于哈希表实现,可用于管理文件元数据、缓存机制、版本控制及快速搜索等功能,极大提升工作效率和数据安全性。
46 0
|
2月前
|
机器学习/深度学习 人工智能 算法
探索人工智能中的强化学习:原理、算法与应用
探索人工智能中的强化学习:原理、算法与应用
|
2月前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
52 1
|
2月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
65 1
|
2月前
|
缓存 算法 网络协议
OSPF的路由计算算法:原理与应用
OSPF的路由计算算法:原理与应用
65 4
|
2月前
|
机器学习/深度学习 监控 算法
基于反光衣和检测算法的应用探索
本文探讨了利用机器学习和计算机视觉技术进行反光衣检测的方法,涵盖图像预处理、目标检测与分类、特征提取等关键技术。通过YOLOv5等模型的训练与优化,展示了实现高效反光衣识别的完整流程,旨在提升智能检测系统的性能,应用于交通安全、工地监控等领域。