FaceChain是一个可以用来打造个人数字形象的深度学习模型工具。用户仅需要提供最低一张照片即可获得独属于自己的个人形象数字替身。FaceChain支持在gradio的界面中使用模型训练和推理能力、支持资深开发者使用python脚本进行训练推理,也支持在sd webui中安装插件使用;FaceChain的模型由ModelScope开源模型社区提供支持。

论文:https://arxiv.org/abs/2308.14256

代码:https://github.com/modelscope/facechain

阿里Facechain:3张照片就能生成个人写真,开源版本“妙鸭相机”来了!_DALL·E 2

论文阅读

阿里Facechain:3张照片就能生成个人写真,开源版本“妙鸭相机”来了!_DALL·E 2_02

一、引言

        近期图像生成技术取得了突飞猛进的发展。这得益于StableDiffusion技术,它使用深度学习算法来生成具有高质量、稳定性的图像和视频。与传统的图像生成技术不同,Stable Diffusion能够在生成图像和视频时保持图像和视频的稳定性,避免出现闪烁和抖动等现象。这种技术通常用于设计、虚拟现实、视频游戏等领域。虽然Stable Diffusion是一种部分条件可控的技术。它的生成过程可以由用户根据特定的prompt进行控制,这种可控性使得Stable Diffusion能够更加灵活地应用于不同的场景。但在指定ID人像生成方面,它往往不尽如人意,无法生成用户指定ID的人像图生成,这很大程度上限制了相应的学术跟应用的发展。

二、方法

框架图如下图所示:

阿里Facechain:3张照片就能生成个人写真,开源版本“妙鸭相机”来了!_DALL·E 2_03

        个人写真模型的能力来源于Stable Diffusion模型的文生图功能,输入一段文本或一系列提示词,输出对应的图像。我们考虑影响个人写真生成效果的主要因素:写真风格信息,以及用户人物信息。为此,我们分别使用线下训练的风格LoRA模型和线上训练的人脸LoRA模型以学习上述信息。LoRA是一种具有较少可训练参数的微调模型,在Stable Diffusion中,可以通过对少量输入图像进行文生图训练的方式将输入图像的信息注入到LoRA模型中。因此,个人写真模型的能力分为训练与推断两个阶段,训练阶段生成用于微调Stable Diffusion模型的图像与文本标签数据,得到人脸LoRA模型;推断阶段基于人脸LoRA模型和风格LoRA模型生成个人写真图像。

训练阶段

输入:用户上传的包含清晰人脸区域的图像

输出:人脸LoRA模型

描述:首先,我们分别使用基于朝向判断的图像旋转模型,以及基于人脸检测和关键点模型的人脸精细化旋转方法处理用户上传图像,得到包含正向人脸的图像;接下来,我们使用人体解析模型和人像美肤模型,以获得高质量的人脸训练图像;随后,我们使用人脸属性模型和文本标注模型,结合标签后处理方法,产生训练图像的精细化标签;最后,我们使用上述图像和标签数据微调Stable Diffusion模型得到人脸LoRA模型。

推断阶段

输入:训练阶段用户上传图像,预设的用于生成个人写真的输入提示词

输出:个人写真图像

描述:首先,我们将人脸LoRA模型和风格LoRA模型的权重融合到Stable Diffusion模型中;接下来,我们使用Stable Diffusion模型的文生图功能,基于预设的输入提示词初步生成个人写真图像;随后,我们使用人脸融合模型进一步改善上述写真图像的人脸细节,其中用于融合的模板人脸通过人脸质量评估模型在训练图像中挑选;最后,我们使用人脸识别模型计算生成的写真图像与模板人脸的相似度,以此对写真图像进行排序,并输出排名靠前的个人写真图像作为最终输出结果。

模型列表

附(流程图中模型链接)

[1] 人脸检测+关键点模型DamoFD:魔搭社区

[2] 图像旋转模型:创空间内置模型

[3] 人体解析模型M2FP:魔搭社区

[4] 人像美肤模型ABPN:魔搭社区

[5] 人脸属性模型FairFace:魔搭社区

[6] 文本标注模型Deepbooru:GitHub - KichangKim/DeepDanbooru: AI based multi-label girl image classification system, implemented by using TensorFlow.

[7] 模板脸筛选模型FQA:魔搭社区

[8] 人脸融合模型:魔搭社区

[9] 人脸识别模型RTS:魔搭社区

[10] 人脸说话模型:魔搭社区

三、结果

以下是部分结果展示:

阿里Facechain:3张照片就能生成个人写真,开源版本“妙鸭相机”来了!_stable diffusion_04

阿里Facechain:3张照片就能生成个人写真,开源版本“妙鸭相机”来了!_DALL·E 2_05

四、环境准备

兼容性验证

FaceChain是一个组合模型,基于PyTorch机器学习框架,以下是已经验证过的主要环境依赖:

  • python环境: py3.8, py3.10
  • pytorch版本: torch2.0.0, torch2.0.1
  • CUDA版本: 11.7
  • CUDNN版本: 8+
  • 操作系统版本: Ubuntu 20.04, CentOS 7.9
  • GPU型号: Nvidia-A10 24G

五、资源要求

  • GPU: 显存占用约19G
  • 磁盘: 推荐预留50GB以上的存储空间

六、安装指南

支持以下方式,可参考:https://github.com/modelscope/facechain/blob/main/README_ZH.md

  • ModelScope提供的notebook环境
  • docker镜像
  • conda虚拟环境
  • Colab运行
  • stable-diffusion-webui中运行