ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

一文读懂FaceChain技术拆解:从逐人训练到FACT身份适配,AI写真如何保留可编辑性

一文读懂FaceChain技术拆解:从逐人训练到FACT身份适配,AI写真如何保留可编辑性

写在前面

欢迎大家关注Rocky的知乎:Rocky Ding
《三年面试五年模拟》AIGC/LLM/AI Agent算法工程师/开发工程师求职面试秘籍独家资源:【三年面试五年模拟】WeThinkIn/AIGC-Interview-Book,欢迎大家Star~

Rocky最新撰写的10万字AI Agent(AI智能体)深入浅出全维度解析文章:深入浅出完整解析AI Agent(AI智能体)的核心基础知识

AIGC/LLM/AI Agent算法岗/开发岗求职面试内推学习社群(涵盖AIGC、LLM大模型、AI Agent、传统深度学习、自动驾驶、机器学习、计算机视觉、自然语言处理、强化学习、大数据挖掘、具身智能、元宇宙、AGI等AI行业最新面试干货经验与核心知识)欢迎大家加入:https://t.zsxq.com/33pJ0


大家好,我是Rocky。

核心导读:一张脸进入生成模型以后,哪些东西应该保持

用户上传一张照片,希望生成穿西装、在雪地、不同表情或不同画风的写真。最难的地方是:脸必须像本人,姿态、服装、背景与光照又需要变化。参考图里同时包含身份、表情、年龄观感、发型和拍摄条件,模型如果把这些信息一起复制,可编辑性就会下降;如果约束太弱,换了场景也容易换了人。

FaceChain把这个问题组织成一条能够使用的写真工作流。早期版本主要通过人物定制训练,再结合风格、姿态和后处理输出照片;当前主目录已经转向FaceChain-FACT,以离线训练好的人脸适配器支持新用户的一张照片输入。两代方案共享产品目标,但在线成本和身份注入机制不同。

Rocky认为,FaceChain的研究价值在于将“身份保持”拆成可训练、可组合、可交付的几个环节。真正需要评价的,是身份相似、编辑自由和最终交付率能否同时成立。单张漂亮样例只能说明能力存在,无法回答它在普通用户输入上的稳定程度。

图1展示无限风格写真与固定模板写真两类入口。前者允许较大的构图变化,后者更多继承既有模板。两者对输入保持的要求不同,不能用同一组漂亮结果代替任务定义。

本文依据官方仓库提交7bc7119c54deab7de6b29f0d14bd6f51d7d98a1c的说明和代码展开,聚焦当前FACT路径。本文没有执行训练、GPU推理或独立人脸评测。

版本先厘清:免逐人训练与免模型训练是两回事

FaceChain官方说明明确,原始版本移至v3.0.0,主目录更新为FACT。FACT全称为Face Adapter with Decoupled Training,重点是通过训练设计减少身份条件对其他生成因素的耦合。

维度早期人物定制路线当前FaceChain-FACT路线
新身份进入系统使用该人物图像进行定制训练用预训练人脸编码器与适配器提取条件
在线用户等待包含逐人训练或适配等待核心身份路径不要求逐人微调
训练在哪里发生每个人物有对应适配过程通用适配能力在离线阶段训练
风格变化可与风格模型或LoRA组合仍可与风格LoRA组合
主要风险过拟合输入照片、训练成本与管理成本泛化、身份细节丢失、条件耦合

“免训练写真”说的是新用户上线时不必再为其身份训练权重。官方介绍仍明确涉及百万级写真数据上的离线训练。仓库中的自定义风格LoRA训练,则属于另一个维度:训练一种视觉风格,和为某位用户训练身份,不能混为一谈。

官方介绍使用“一张照片、约10秒”的表述,但这不是对所有硬件、分辨率和流程的延迟保证。当前查阅的自由风格推理路径默认512×512、50步,还包含预处理与可选后处理。首次模型下载、冷启动、热启动单图与整组图片耗时,必须分开测量。

FACT的核心:将身份干预从整张画面中收拢出来

图2是当前README介绍FACT时使用的框架图。输入清洗、人脸裁剪对齐、身份特征提取和文本条件分别进入后续网络,训练时还加入随机丢弃与同身份样本重组。它说明FACT不仅改变了一层注意力,也改变了什么信息应该被条件分支学习。

第一次解耦:人脸条件不要接管整张图像

普通身份适配训练如果只用整图去噪目标,模型可能把参考照片的衣服、背景与布局一起编码进去。这样身份相似度可能提升,文本对其他区域的控制却下降。FACT采用串行适配步骤,并通过区域增量正则减少非人脸区域受到的额外干预。

代码中的FaceAttnProcessor2_0先将视觉token与人脸token拼接,经过门控自注意力,取回视觉位置的结果;再经过门控前馈层,随后进入文本交叉注意力。它不是简单复用一个平行图像交叉注意力分支,把两个输出加起来。

下面是便于理解的代码等价关系,省略形状变换和外围残差,并非额外提出的新训练公式:

x ′ = x + s tanh ⁡ ( a a t t n ) SA ⁡ ( LN ⁡ ( [ x , P ( f ) ] ) ) v i s u a l , x ′ ′ = x ′ + s tanh ⁡ ( a d e n s e ) FF ⁡ ( LN ⁡ ( x ′ ) ) . \begin{aligned} x' &= x+s\tanh(a_{\mathrm{attn}})\,\operatorname{SA}(\operatorname{LN}([x,P(f)]))_{\mathrm{visual}},\\ x'' &= x'+s\tanh(a_{\mathrm{dense}})\,\operatorname{FF}(\operatorname{LN}(x')). \end{aligned}x′x′′​=x+stanh(aattn​)SA(LN([x,P(f)]))visual​,=x′+stanh(adense​)FF(LN(x′)).​

f ff是人脸条件token,P PP映射到相应隐藏维度,s ss对应可调适配强度。代码将两个门控参数初始化为零,有助于从较小的初始干预开始学习。之后文本交叉注意力使用更新后的视觉特征,因此身份与文本仍会在网络中相互作用;“解耦”是设计目标和训练约束,不是彼此绝对独立的证明。

FAIR:约束身份分支在非人脸区域的额外变化

图3保留README中的FAIR表达式。其写法为:

L F A I R ( x ) = ∥ GSA ⁡ ( x ) ⊙ ( 1 − M x ) ∥ ∥ x ⊙ ( 1 − M x ) ∥ . \mathcal{L}_{\mathrm{FAIR}}(x)=\frac{\|\operatorname{GSA}(x)\odot(1-M_x)\|}{\|x\odot(1-M_x)\|}.LFAIR​(x)=∥x⊙(1−Mx​)∥∥GSA(x)⊙(1−Mx​)∥​.

M x M_xMx​对应人脸区域掩码,1 − M x 1-M_x1−Mx​选取非人脸区域。按照官方解释,正则希望人脸适配的特征增量集中在人脸位置,降低背景等区域被改动的程度。理解公式时要注意,GSA ⁡ ( x ) \operatorname{GSA}(x)GSA(x)的具体增量定义必须与训练实现一致,不能把带残差的完整特征和新增分量混用。

这里保留图示公式,没有自行补出范数类型、分母稳定项或损失权重。README与推理代码不足以确认这些训练细节。完整复现还应核对FACT论文和训练实现,不能凭一张公式图宣布已经复现FAIR。

第二次解耦:同一身份可以有不同表情和姿态

FACT使用TransFace人脸特征,并通过注意力查询模块映射到扩散网络。当前Face_Extracter_v1取人脸Transformer的局部表示,使用带16个查询的resampler输出人脸token,维度为768。这是查阅代码路径的具体配置,并不是所有FaceChain历史模块的统一尺寸。

人脸识别全局向量通常强调身份判别,局部token能够保留更多细节,同时也可能携带表情和视角信息。官方训练策略对同一身份的不同写真进行随机重组和丢弃,使条件人脸与去噪目标不总是同一张照片。模型需要从变化中寻找相对稳定的身份因素,降低照搬参考表情或姿态的倾向。

这也解释了为什么身份适配与图像复刻不能使用完全相同的评价标准。用户想保持的是身份,而非每一处像素。严格复制参考照片可能拿到某些相似度收益,却让编辑任务失去意义。

顺着代码走一遍:一张照片怎样变成最终写真

FaceChain的输出由多个模型共同塑造。只把最后一张图的效果归给FACT,会混淆基础能力和产品加工。

在当前自由风格GenPortrait路径中,输入首先被限制最大尺寸,并执行美肤处理。系统还调用属性模型,把年龄和性别类别映射为提示词;部分年龄类别有额外提示,另一些类别则采用不同规则。也就是说,用户输入的文字并非进入生成模型的全部文字,代码会补充与人像风格相关的描述。

随后,人脸预处理组合分割、头部掩码、人脸检测和五点对齐,得到112×112输入。检测辅助函数使用最高置信度结果;如果用户照片包含多个人物,不能直接假设选中的是用户期望的那张脸。没有检测结果或分割失败的情况,也应在服务层给出明确反馈。

人脸token与文本token在传递时可以拼成一组条件,但注意力处理器会将它们拆开,分别进入人脸适配步骤与文本交叉注意力。ControlNet使用的处理器则去掉尾部人脸token,保留其原有文本条件路径。看见代码中的拼接操作,并不意味着所有条件共用同一个注意力归一化过程。

自由风格流程选择相应基础模型与适配权重,合入风格LoRA,执行扩散生成,再恢复LoRA权重。当前实现还在CPU和GPU之间移动pipeline。这样可以理解部分资源取舍,但实际延迟和显存峰值需要运行测量。

最终图像可以进入人脸融合后处理。face_swap_fn根据开关调用人脸融合模型,随后输出结果。因此评估身份保持时,必须分别报告FACT直接输出和开启融合后的输出。后处理改善相似度的同时,也可能改变光照、肤色、边界和表情,不能默认这些变化总是有益。

仓库中还存在按人脸相似度筛选与排序的函数,但本次查阅的最终调用路径没有调用它。函数存在与默认执行是两回事。如果另一版本使用筛选,需要同时报告生成候选数、保留数与筛选标准,否则最终图片会掩盖真实成功率。

LoRA与ControlNet兼容:接口可接入,还要看条件是否冲突

风格LoRA控制视觉表现,姿态ControlNet提供空间结构,人脸适配器提供身份条件。它们的职责不同,但最终都作用于同一个生成过程。强风格可能改变面部比例,姿态模板可能要求参考图没有覆盖的角度,人脸融合也可能削弱表情变化。

在查阅的自由风格路径中,存在use_depth_control、depth_control_weight等名称,但实际加载的是OpenPose ControlNet,传给pipeline的是姿态图与姿态权重。这些参数名并不能证明当前路径同时运行了深度控制网络。阅读组合项目时,应跟踪实际加载的模型、调用参数和输出,而不能只根据界面名称理解能力。

同样,当前FACT自由风格实现使用SD1.5系相关pipeline和对应基础模型;仓库历史记录支持过SDXL,不等于本次查阅的所有默认函数都变成了SDXL实现。版本、模块和底模要一起记录。

比较稳妥的调试顺序是先验证身份分支,再增加风格,最后增加姿态模板。每增加一种条件,都检查身份、文本执行、构图和非人脸区域变化。这样才能定位是身份编码不足、风格过强,还是空间条件与脸部角度发生冲突。

图4展示同一参考身份在多种风格中的结果,能够说明组合能力覆盖了许多视觉表现。但它没有提供全部尝试、失败比例、随机种子或后处理开关,不能据此推断普通用户输入的稳定性,也不能当成对所有竞争方法的定量胜出证据。

评测怎样做:同时衡量身份、编辑与返工

FaceChain面向的是写真交付。身份识别分数有价值,但它不是产品质量的完整替代。例如两张照片都能被识别为同一人,却可能出现年龄观感变化、表情僵硬或肤质塑料感;反过来,强风格艺术图也可能降低识别器分数,但仍被用户认为神似。

评测维度应记录的证据容易遗漏的问题
身份保持固定识别模型、同人不同照片、用户盲评美肤和融合影响分数,单张参考可能偏置
编辑能力表情、视角、服装、背景、风格任务的完成率仅复制参考图也可能获得高相似度
图像质量面部边缘、手部、发丝、光照、局部放大缩略图隐藏瑕疵
稳定性随机种子、候选数、检测失败和返工次数只报告筛选后的最佳图片
系统成本冷启动、热启动、整组耗时、显存和内存把单步推理时间当作端到端延迟

有效的对照应固定底模、提示、分辨率、采样步数和候选预算,并分开关闭与开启人脸融合。对于身份条件的泛化,还需要覆盖侧脸、遮挡、眼镜、低照度和不同年龄段输入。此处是建议的评测设计,本文没有把它写成已经完成的实测结果。

工程边界:组合模型的成本落在整条链路上

官方环境说明列出Python 3.8/3.10、PyTorch 2.0系列、CUDA 11.7和A10 24G等已验证配置,同时报告约19G显存与建议50GB以上磁盘。这些是项目说明中的特定环境经验,不是所有版本和依赖组合的保证。旧依赖能安装,也不代表当前驱动、模型下载和WebUI插件就能无缝兼容。

README另提到使用jemalloc将约30G内存降至20G以下。jemalloc是进程内存分配器,这条说明不能被改写为GPU显存从30G降至20G。主机内存、GPU显存和模型磁盘占用应分别测量。

组合流程还意味着许可证与数据处理要逐项检查:仓库代码的许可、基础模型、风格LoRA、人脸识别和融合模型各自有范围。用户照片、身份向量与生成图的保存策略也是服务设计的一部分。项目能够在本地运行,不自动构成某项商业用途已获得全部授权。

从维护角度看,固定代码提交、模型revision和预处理参数,比记住一条安装命令更重要。一次依赖更新如果改变了人脸检测或注意力处理器,最终视觉结果也可能改变。上线前需要自己的回归图集与失败处理流程。

Rocky的判断:写真功能会变普通,身份控制能力仍有长期价值

FaceChain早期把训练、生成与后处理组织成可用工具,降低了人物写真进入应用的门槛;FACT进一步将新用户的身份注入变成通用模型上的条件处理,减轻逐人管理权重的负担。这两步都有其阶段价值。

随着基础模型身份保持能力增强,单纯“上传照片换几套风格”的入口会面临竞争。能够延续的价值更可能来自稳定的身份控制、可解释的编辑权限、可复用风格资产,以及对失败样例和用户反馈的持续处理。这个判断是对工程演进的推论,不是论文给出的市场结论。

对算法研究者,值得继续研究的是身份与表情、年龄观感、妆容和视角的可控分离,以及正则是否会限制合理编辑;对产品团队,更实际的问题是用户需要挑多少张、修多少次,才能得到一组愿意使用的照片。

FaceChain提示我们,人像生成的终点并不是最高的一项相似度分数。身份能保持,修改能服从要求,结果能稳定交付,这三件事一起成立,才形成可持续的写真能力。

推荐阅读

1. 深入浅出完整解析AI Agent(AI智能体)的核心基础知识

2025年可以说是AI Agent全面落地应用的元年,因此Rocky在持续撰写对AI Agent的全维度解析文章:

深入浅出完整解析AI Agent(AI智能体)的核心基础知识

2. 深入浅出完整解析扩散模型DDPM、DDIM、Score-Based、SDE、LDM、Classifier/Classifier-Free Guidance、Rectified Flow核心基础知识

Rocky对扩散模型的本质原理与和核心基础知识进行了全面系统的深入浅出分析讲解,同时不断跟进补充扩散模型的最新技术发展,希望能给大家带来帮助:

深入浅出完整解析扩散模型DDPM、DDIM、Score-Based、SDE、LDM、Classifier/Classifier-Free Guidance、Rectified Flow核心基础知识

3. 入浅出完整解析FLUX.2、Seedream(即梦)、Z-image、GLM-Image核心基础知识

Rocky对AIGC时代“中场时刻”之后的主流AIGC创作大模型的核心基础知识进行了全面系统的深入浅出分析讲解,力求让大家通俗易懂理解AIGC时代的技术浪潮的本质价值:

入浅出完整解析FLUX.2、Seedream(即梦)、Z-image、GLM-Image核心基础知识

4. 深入浅出完整解析FLUX.1 Kontext和FLUX.1 Krea核心基础知识

Rocky对FLUX.1 Kontext和FLUX.1 Krea的核心基础知识作了全面系统的梳理与解析:

深入浅出完整解析FLUX.1 Kontext和FLUX.1 Krea核心基础知识

5. 深入浅出完整解析DeepSeek系列核心基础知识

Rocky对DeepSeek系列模型的核心基础知识作了全面系统的梳理与解析:

深入浅出完整解析DeepSeek系列核心基础知识

6. 深入浅出完整解析Stable Diffusion 3(SD 3)和FLUX.1系列核心基础知识

Rocky对Stable Diffusion 3和FLUX.1的核心基础知识作了全面系统的梳理与解析:

深入浅出完整解析Stable Diffusion 3(SD 3)和FLUX.1系列核心基础知识

7. 深入浅出完整解析Stable Diffusion XL(SDXL)核心基础知识

Rocky对Stable Diffusion XL的核心基础知识作了全面系统的梳理与解析:

深入浅出完整解析Stable Diffusion XL(SDXL)核心基础知识

8. 深入浅出完整解析Stable Diffusion(SD)核心基础知识

Rocky对Stable Diffusion 1.x-2.x系列模型的核心基础知识做了全面系统的梳理与解析:

深入浅出完整解析Stable Diffusion(SD)核心基础知识

9. 深入浅出完整解析Stable Diffusion中U-Net的前世今生与核心知识

Rocky对Stable Diffusion中最为关键的U-Net结构进行了深入浅出的全面解析,包括其在传统深度学习中的价值和在AIGC中的价值:

深入浅出完整解析Stable Diffusion中U-Net的前世今生与核心知识

10. 深入浅出完整解析LoRA(Low-Rank Adaptation)模型核心基础知识

对于AIGC时代中的“ResNet”——LoRA模型,Rocky进行了深入浅出的全面讲解:

深入浅出完整解析LoRA(Low-Rank Adaptation)模型核心基础知识

11. 深入浅出完整解析ControlNet核心基础知识

AIGC图像创作开源社区已经形成以Stable Difffusion/FLUX为核心,ConrtolNet和LoRA作为首要AI辅助工具的变化万千的AIGC图像创作工作流。

ControlNet正是让AI图像创作社区无比繁荣的关键一环,它让AIGC图像创作过程更加的可控,更有助于广泛地将AIGC算法解决方案应用到各行各业中:

深入浅出完整解析ControlNet核心基础知识

12. 深入浅出完整解析Sora、Seedance、keling等AI视频大模型核心基础知识

AI绘画和AI视频是两个互相促进、相互交融的领域,2024年无疑是AI视频领域的爆发之年,Rocky对AI视频领域核心的Sora、Seedance、Keling等大模型进行了全面系统的梳理与解析:

深入浅出完整解析Sora、Seedance、keling等AI视频大模型核心基础知识

13. 深入浅出完整解析AIGC时代Transformer核心基础知识

在AIGC时代中,Transformer为AI行业带来了深刻的变革。Transformer架构正在一步一步重构所有的AI技术方向,成为AI技术架构大一统与多模态整合的关键核心基座,大有一统“AI江湖”之势。Rocky也对Transformer模型进行持续的深入浅出梳理与解析:

深入浅出完整解析AIGC时代Transformer核心基础知识

14. 深入浅出完整解析ComfyUI、Diffusers、Stable Diffusion WebUI等主流AIGC创作框架核心基础知识

AIGC创作框架正是AIGC算法工作流的运行载体,目前主流的AIGC创作框架有ComfyUI、Diffusers、Stable Diffusion WebUI等。在传统深度学习时代,PyTorch、TensorFlow以及Caffe是传统深度学习模型的基础运行框架,到了AIGC时代,Rocky相信ComfyUI就是AIGC时代的“PyTorch”、Stable Diffusion WebUI就是AIGC时代的“TensorFlow”、Diffusers就是AIGC时代的“Caffe”:

深入浅出完整解析ComfyUI、Diffusers、Stable Diffusion WebUI等主流AIGC创作框架核心基础知识

15. 深入浅出完整解析ComfyUI、Diffusers、Stable Diffusion WebUI等主流AIGC创作框架核心基础知识

在AIGC时代中,如何快速转身,入局AIGC产业?如何成为AIGC/LLM/AI Agent算法/开发工程师?如何在学校中系统性学习AIGC/LLM/AI Agent知识,斩获心仪的AIGC/LLM/AI Agent算法/开发offer?

Don‘t worry,Rocky为大家总结整理了全面的AIGC/LLM/AI Agent算法/开发工程师成长秘籍,为大家答疑解惑,希望能给大家带来帮助:

手把手教你成为AIGC/LLM/AI Agent算法/开发工程师,斩获AIGC/LLM/AI Agent算法/开发offer!

16. AIGC产业的深度思考与分析

2023年3月21日,微软创始人比尔·盖茨在其博客文章《The Age of AI has begun》中表示,自从1980年首次看到图形用户界面(graphical user interface)以来,以OpenAI为代表的科技公司发布的AIGC模型是他所见过的最具革命性的技术进步。

Rocky也认为,AIGC及其生态,会成为AI行业重大变革的主导力量。AIGC会带来一个全新的红利期,未来随着AIGC的全面落地和深度商用,会深刻改变我们的工作、生活、学习以及交流方式,各行各业都将被重新定义,过程会非常有趣。

那么,在此基础上,我们该如何更好的审视AIGC的未来?我们该如何更好地拥抱AIGC引领的革新?Rocky准备从技术、产品、商业模式、长期主义等维度持续分享一些个人的核心思考与观点,希望能帮助各位读者对AIGC有一个全面的了解:

深入浅出全面解析AIGC时代核心价值与发展趋势(2025年版)

17. AI算法工程师的独孤九剑秘籍

为了方便大家实习、校招以及社招的面试准备,同时帮助大家提升扩展技术基本面,Rocky将符合大厂和AI独角兽价值的算法高频面试知识点撰写总结成《三年面试五年模拟》之独孤九剑秘籍:

【三年面试五年模拟】AIGC时代的算法工程师的求职面试秘籍(持续更新中)

18. 深入浅出完整解析AIGC时代中GAN(Generative Adversarial Network)系列模型核心基础知识

GAN系列模型作为传统深度学习时代的最热门生成式Al模型,在AIGC时代继续繁荣,作为Stable Diffusion/FLUX系列大模型的“得力助手”,广泛活跃于AlGC图像创作的产品与工作流中:

深入浅出完整解析AIGC时代中GAN(Generative Adversarial Network)系列模型核心基础知识

返回列表