社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  aigc

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

大淘宝技术 • 1 年前 • 220 次点击  





近几个月,随着基于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。


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/167876
 
220 次点击