将图像反演到隐空间之后,下一步是在隐空间中进行操控以实现各种编辑效果。这篇覆盖从早期编辑方法到隐空间方向探索再到文本驱动编辑的主要工作。
基于 W+ 空间的编辑
Image2StyleGAN(ICCV 2019)
Image2StyleGAN 是第一个系统性地在 空间做图像编辑的工作。它提出将 StyleGAN 合成网络的每一层分配独立的 ,形成 空间。
在该空间上可以执行三类操作:
风格混合:将两张图的 向量按层级截断拼接,前 层来自图像 A(控制姿态和粗结构),后 层来自图像 B(控制颜色和纹理),从而生成融合了两张图各自特征的新图像。
表情迁移:在 空间中沿”中性→微笑”方向移动隐码,保持其他层级不变,实现单属性编辑。
激活值扩散:通过修改生成器中间层的特征图 (非 ),将一张图的局部特征迁移到另一张图的对应位置。
Image2StyleGAN++(CVPR 2020)
在 Image2StyleGAN 基础上引入 空间(每层的随机噪声图),为编辑加入了精细纹理控制。
新增的能力:
- 图像填充/补全:只优化被遮盖区域的隐码,保持未遮盖区域不变。通过在 和 空间上联合优化实现。
- 局部编辑:仅修改目标区域的 向量和噪声图,保留非目标区域的生成结果。编辑只影响指定区域的特征。
- 局部风格迁移:将源图的局部纹理特征(通过 空间和 空间)迁移到目标图的对应区域。
- 语义扩散:在 空间中做插值,从编辑区域向非编辑区域平滑过渡。
In-domain GAN Inversion(ECCV 2020)
前面的方法可能导致反演结果落在流形之外(过度拟合噪声),破坏了编辑能力。In-domain 方法在优化 时增加域内约束项,强制隐码落在流形的”良好”区域——优化损失中加一项 将 拉向 Mapping Network 的输出分布。
HairMapper(CVPR 2022)
通过精确的分割掩码将发型编辑限定在头发区域内。流程为:反演到 → 用分割网络提取头发掩码 → 仅调整掩码内区域的 向量 → 重建。掩码的引入使得编辑可以精确控制边界,不会影响额头、耳朵等相邻区域。
隐空间方向探索
对图像属性的编辑(如旋转、微笑、变老)本质上是隐空间中沿某个语义方向移动。如何自动发现这些方向?
GANSpace(NeurIPS 2020)
在 空间的样本上做 PCA,发现前几个主成分对应了可解释的语义方向。PCA 分解出的第 个成分 对应数据分布中方差最大的第 个变化方向——这些方向在 StyleGAN 的隐空间中恰好对齐了语义属性。
实现方式:采样大量 → 计算 PCA → 找出前若干主成分。编辑时沿 方向移动, 控制编辑强度。
SeFa(CVPR 2021)
GANSpace 需要采样大量隐码做 PCA,计算量大。SeFa 发现对生成器第一层全连接层的权重矩阵 做特征分解即可得到语义方向。
这些特征向量与 GANSpace 用 PCA 发现的语义方向高度一致。SeFa 不需要任何数据采样,封闭求解,计算量为零。
文本驱动的编辑:StyleCLIP
StyleCLIP(ICCV 2021)将 CLIP 的图文对比学习能力引入隐空间编辑,使用户可以用自然语言描述编辑意图(如”make him smile”或”add beard”)。
CLIP 简述
CLIP(Contrastive Language-Image Pre-training, OpenAI)在 4 亿图文对上训练了一个双塔模型:图像编码器将图像映射到嵌入空间,文本编码器将文本映射到同一空间。通过对比学习,配对的图像-文本在空间中靠近,不配对的远离。这种零样本能力使得 CLIP 可以作为图像编辑的语义指导。
Latent Mapper
StyleCLIP 的 Latent Mapper 方案:训练一个轻量级映射网络,将输入文本的 CLIP 嵌入转换为 空间的偏移量 。推理时输入一张图 → 反演到 → 输入文本 → CLIP 文本编码器 → Latent Mapper 预测 → → 生成器输出编辑后的图像。
三种方案对比
StyleCLIP 论文提出了三种文本驱动编辑方案:
| 方案 | 速度 | 编辑精度 | 是否需要训练 |
|---|---|---|---|
| Latent Mapper | 快 | 中 | 需特定文本方向训练 |
| Global Direction | 极快 | 低 | 不需要(预先计算方向) |
| Optimization | 慢 | 高 | 不需要(逐张优化) |
:::tip TODO
在此处插入一张完整的 GAN 图像编辑 pipeline 示意图(反演→隐空间→编辑→重建)
:::