w-plus-adapter
W+适配器将StyleGAN的人脸身份信息注入Stable Diffusion,实现高保真+强可编辑的个性化图像生成(CVPR 2024)
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
W+适配器将StyleGAN的人脸身份信息注入Stable Diffusion,实现高保真+强可编辑的个性化图像生成(CVPR 2024)
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在 AI 生成艺术的世界里,有一个长期困扰研究者的两难困境:保真度与可编辑性难以兼得。输入一张真实人脸照片,让 AI 生成一张以该人物为主角的新图像——你可能会遇到两种极端:要么模型死死记住了原图的面孔却无法响应文本指令,要么模型完全听命于文本却丢失了人物的身份特征。这个问题在 CVPR 2024 论文中被正面回应了。
这个问题的根源在于两代生成模型的设计哲学差异。StyleGAN(尤其是 StyleGAN2/3)经过多年迭代,已经在人脸领域积累了极其丰富且解耦良好的潜在空间,其中 W+ 空间是最精细的潜在空间,能够独立控制头发、眼睛、嘴巴等面部属性的变化,且这些控制信号是高度线性的——你甚至可以在 W+ 空间中找到一条"微笑方向"的向量,做向量加法就能让任何人生成微笑的样子。
Stable Diffusion 则代表了另一条路线:以文本为条件引导的潜在扩散模型,通过 Cross-Attention 机制将文本语义嵌入图像生成过程,实现了强大的文本到图像控制,但代价是人物身份信息的保留能力较弱。
南洋理工大学 S-Lab 团队的李晓明等人提出了核心洞察:如果能把 StyleGAN 在 W+ 空间中精心雕琢的面部身份信息,通过一种轻量级适配器,无缝注入到 Stable Diffusion 的生成流程中,就能同时获得两者的优点。
W+ Adapter 采用了两阶段训练策略,分别针对不同场景优化:
Stage 1(人脸图像阶段):在高质量人脸数据集(如 FFHQ)上训练,学习如何将 StyleGAN 的 W+ 向量注入到 SD 的 Cross-Attention 层中。这一阶段的输入是人脸图像 + e4e(encoder4editor)提取的 W+ 向量,输出是能够精确保留原图身份的 SD 生成图像。e4e 是一种预训练的人脸反演编码器,可以将任意人脸图像编码为 StyleGAN 的 W+ 潜在向量。
Stage 2(开放场景阶段):将能力扩展到自然场景中的人物。用户输入不再局限于标准对齐的人脸图像,而是可以是任意场景中的半身或全身照片。系统会自动进行人脸检测、对齐和超分辨率处理(通过 PSFRGAN),同时从参考图像中提取身份特征。
适配器的核心创新在于 残差交叉注意力(Residual Cross-Attention) 的注入方式。与直接替换注意力输出不同,W+ Adapter 在 SD 的 Cross-Attention 层中注入额外的上下文 token,通过一个可学习的投影矩阵将 W+ 向量映射到 CLIP 的文本嵌入空间。这些额外的 token 与原始的文本 token 拼接后共同参与注意力计算。关键参数 residual_att_scale 控制身份保留与文本对齐之间的平衡——值越大,身份特征越明显,但可能偏离文本描述。
该适配器设计为 模型无关 的即插即用架构。在 Stage 2 中,可以直接替换底层的 Stable Diffusion 模型,包括官方 runwayml/stable-diffusion-v1-5、二次元风格模型 dreamlike-art/dreamlike-anime-1.0、以及结合 ControlNet 的姿态控制场景。同一套 W+ 适配器权重可以跨多个 SD 变体使用。

图1:W+ Adapter 方法概览
项目需要 Python 3.8 环境,配合 PyTorch 2.0.1 + CUDA 11.8,以及 dlib 人脸处理库。完整的 requirements.txt 包含 diffusers、transformers、accelerate 等核心依赖,以及 BASICSR(用于超分辨率)。预训练模型需要手动下载,包括主适配器权重 wplus_adapter.bin、人脸反演编码器 e4e_ffhq_encode.pt、盲超分辨率模型 psfrgan_epoch15_net_G.pth 等。项目提供了 download_weights.py 脚本从 GitHub Releases 自动下载。
Stage 2 的推理流程分为两步:Step 1 使用 ProcessWildImage.py 对输入图像进行对齐和超分辨率处理;Step 2 加载 SD 模型 + W+ 适配器,通过 Jupyter Notebook 交互式体验,核心参数 residual_att_scale 可实时调整身份保留强度。
W+ Adapter 的独特优势是继承了 StyleGAN 在 W+ 空间中的 线性语义方向 特性。通过在 W+ 空间中沿特定方向做向量平移,可以在生成图像中实现精细的语义编辑。项目提供了表情(愤怒、微笑)、口红、脸型圆润度、眼睛大小等多项编辑示例,其中动漫风格眼睛编辑效果尤其惊艳。

图2:表情编辑(愤怒)

图3:脸型圆润度编辑

图4:动漫风格眼睛编辑

图5:Stage 1 人脸反演与编辑
对底层 SD 质量的依赖:该方法通过残差交叉注意力影响 SD 的输出。如果原始 SD 对某个文本提示的生成结果本身质量较差,W+ Adapter 的介入也难以根本改善。这种情况下用户需要手动调整提示词或随机种子。
计算资源需求较高:e4e 反演需要运行完整的人脸编码网络,PSFRGAN 超分辨率同样是一个完整的前向传播。项目明确建议使用 16GB 以上显存的 GPU。
数据隐私考量:W+ 适配器注入的是高度个性化的人脸身份特征,存在被提取用于身份伪造的潜在风险。
W+ Adapter 展示了一种跨模型能力嫁接的可行范式:用轻量级适配器连接两个已经非常成熟的预训练模型。这与 LoRA、ControlNet 等方法一脉相承,但针对的是 W+ 空间与扩散模型的结合问题。该项目呼应了 2023-2024 年 AI 图像生成领域的核心趋势:个性化与身份保持成为与文本控制同等重要的需求,扩散模型正在吸收 GAN 时代的优质技术遗产。项目来自南洋理工大学 S-Lab,由 Chen Change Loy 教授指导,代码实现质量较高但缺少 Docker 支持。