Editable Image Elements for Controllable Synthesis¶
会议: ECCV 2024
arXiv: 2404.16029
代码: 有
领域: 图像生成 / 图像编辑
关键词: 图像编辑, 扩散模型, 可编辑表示, 超像素分解, 空间控制
一句话总结¶
提出"可编辑图像元素"表示,将输入图像分解为一组语义对齐的 patch embeddings(类似超像素),每个 patch 关联位置和尺寸信息,用户可直接编辑这些属性(移动、缩放、删除),再由基于 Stable Diffusion 的解码器合成真实感图像。
研究背景与动机¶
问题引入¶
扩散模型在文本引导的图像合成方面取得了显著进展,但编辑用户提供的图像仍然具有挑战性。扩散模型的高维噪声输入空间天然不适合图像反演或空间编辑。现有方法存在一个根本性矛盾:忠实重建原图 vs 可编辑的表示。
现有方法的困境¶
Noise inversion 方法(Null-text Inversion 等):将图像反演到噪声空间,但忠实重建与可编辑性之间存在固有矛盾
ControlNet 类方法:以边缘图等条件引导扩散模型,但无法保留条件信号中缺失的图像属性
Concept tuning 方法(DreamBooth 等):生成概念的新实例而非修改原图
Self-Guidance:通过缓存注意力图进行空间编辑,但编辑结果往往不够真实
核心问题在于:这些方法中的表示(噪声图或边缘图)不适合精确的空间控制。
核心洞察¶
本文提出一种新的图像表示方式:将图像分解为一组"图像元素",每个元素是语义上有意义的 patch,关联外观编码、位置和尺寸。这种表示既能忠实重建原图,又天然支持空间编辑操作——移动、缩放、删除一个 patch 就对应物体的移动、缩放和移除。
方法详解¶
整体框架¶
整个流程分为三个阶段: 1. 图像元素提取:基于 SAM 特征的 SLIC 聚类,将图像分解为 \(N=256\) 个语义对齐的超像素 patch 2. 内容编码器训练:用自编码器框架训练 patch encoder,将每个 patch 的外观编码为与位置解耦的 embedding 3. 扩散解码器训练:在 Stable Diffusion 基础上添加图像元素交叉注意力层,训练从编辑后的图像元素解码为真实图像
关键设计¶
1. 图像元素提取(Image Elements)¶
功能:将图像 \(\mathbf{x} \in \mathbb{R}^{H \times W \times 3}\) 分解为 \(N=256\) 个不相交的连续 patch 集合 \(\mathbf{A} = \{\mathbf{a}_1, ..., \mathbf{a}_N\}\)。
核心思路:修改 SLIC 算法,在 SAM 特征空间中操作。以 \(16 \times 16\) 均匀间隔的查询点起始,结合 SAM 的语义亲和力图 \(\mathbf{s}(m,n)\) 和欧氏空间距离 \(\mathbf{d}(m,n)\),对每个像素 \(m\) 分配到查询元素 \(n\):
其中 \(\beta=64\) 平衡特征相似度和空间距离。该公式等价于在 SAM 高质量语义亲和力空间中运行一次 SLIC 迭代。
设计动机:常规网格 latent code 不适合空间编辑(删除某个位置的 code 后无法留空白),而语义对齐的超像素天然具有可编辑性。与直接使用 SAM 分割不同,SLIC 约束保证了 patch 尺寸均匀(平均 1024 像素),避免了分割结果大小差异过大导致的编码/解码困难。
2. 内容编码器(Content Encoder)¶
功能:将每个 patch 的外观编码为与空间位置解耦的 embedding。
核心思路:采用与 Stable Diffusion KL-autoencoder 相同架构的卷积编码器(4 层下采样),所有 patch 统一 resize 到相同尺寸后输入编码器,确保尺寸信息被解耦。编码器通过联合训练轻量 Transformer 解码器 \(\mathcal{D}_{\text{light}}\)(8 层自注意力 + 4 层交叉注意力)来优化:
其中 \(\mathbf{S} = \{(\mathcal{E}(\mathbf{a}_n), \mathbf{p}_n)\}\) 为编码后的图像元素集合,\(\mathbf{p}_n = (x_n, y_n, w_n, h_n)\) 为 patch 的位置和尺寸属性。
设计动机:分阶段训练证明是必要的——联合训练内容编码器和扩散解码器在重建和编辑质量上均不如分阶段训练(MSE 0.0138 vs 0.0069,用户偏好仅 34.2%)。编码器训练后冻结,保证解码器训练的稳定性。
3. 扩散解码器(Diffusion Decoder)¶
功能:基于编辑后的图像元素生成真实感图像。
核心思路:在 Stable Diffusion v1.5 的 UNet 中,在每个已有的文本交叉注意力层后插入新的交叉注意力层 \(\theta_{\mathcal{S}}\),以图像元素为 key/value。文本和图像元素两个交叉注意力的输出等权相加到自注意力特征上。训练目标:
推理时使用 classifier-free guidance,对文本和图像元素使用相同的引导权重 \(w=3.0\),DDIM 采样 50 步。
设计动机:轻量解码器仅用 MSE 训练会产生模糊重建,且编辑后的元素会引入训练中未见的分布偏差。Stable Diffusion 的强图像先验能填补编辑元素未指定的信息。
损失函数 / 训练策略¶
Image Element Dropout 训练策略:
直接训练的解码器在重建时表现良好,但编辑时图像真实感急剧下降(元素缺失、重叠、间隙等情况在训练时未见)。解决方案是在训练中随机 dropout 图像元素:
- 使用 Semantic SAM 获取物体 mask 数据库,随机将 mask 覆盖区域的图像元素 dropout
- Random Partition 技巧:使用来自另一张图片的随机分割结果作为 dropout mask,避免物体边缘与图像元素边界的相关性。不使用 random partition 时用户偏好仅 27.3%
训练分两阶段: 1. 内容编码器 + 轻量解码器:MSE loss,30 epochs 2. 扩散解码器:冻结内容编码器,标准扩散损失,~180k iterations
实验关键数据¶
主实验(用户研究)¶
2AFC 用户研究(900+ 判断,评估编辑质量和图像真实感):
| 方法对比 | 本文偏好率 | 对手偏好率 | 说明 |
|---|---|---|---|
| Ours vs Self-Guidance | ~75% | ~25% | Self-Guidance 在 SDXL 上编辑不稳定 |
| Ours vs Paint-by-Example | ~80% | ~20% | 两阶段操作导致质量下降 |
| Ours vs InstructPix2Pix | ~70% | ~30% | InstructPix2Pix 难以精确空间控制 |
支持的编辑操作:物体缩放、重排列、拖拽、去遮挡、移除、变体、图像组合
消融实验¶
设计选择消融(重建质量 + 用户编辑偏好):
| 配置 | MSE↓ | PSNR↑ | SSIM↑ | LPIPS↓ | FID↓ | 编辑偏好 |
|---|---|---|---|---|---|---|
| 默认(分阶段+冻结+随机分割) | 0.0069 | 22.98 | 0.6354 | 0.3376 | 10.82 | 基准 |
| 联合训练(不分阶段) | 0.0138 | 19.74 | 0.5208 | 0.3697 | 11.91 | 34.2% |
| 分阶段但不冻结编码器 | 0.0097 | 21.35 | 0.5962 | 0.3238 | 10.48 | 37.1% |
| 分阶段+冻结,无 random partition | 0.0066 | 23.15 | 0.6389 | 0.3262 | 9.75 | 27.3% |
关键发现¶
- 分阶段训练是关键:联合训练 vs 分阶段训练的 PSNR 差 3.24 dB,编辑偏好也只有 34.2%
- 冻结内容编码器很重要:不冻结时编码器会与扩散解码器共同退化,编辑偏好仅 37.1%
- Random Partition 对编辑质量至关重要:不使用时模型倾向于按元素边界修复,导致不自然的图像边界,偏好率只有 27.3%
- 方法在物体缩放场景中尤为突出——能自动完成去遮挡(如将车缩小后自动补全缺失的角落)
亮点与洞察¶
- 表示设计的创新性很高:将图像表示为一组语义对齐的可编辑元素,自然地将"忠实重建"和"可编辑性"两个通常矛盾的目标统一起来
- 位置-外观解耦设计优雅:patch 编码独立于位置,位置用可编辑的连续坐标表示,使得移动/缩放/删除只需修改属性值
- Random Partition 训练策略:巧妙的洞察——条件修复的概率应独立于图像元素分割方式,因此用随机分割代替实际分割进行 dropout 训练
- 连接了超像素分割和扩散模型编辑两个领域
局限与展望¶
- 重建质量非完美(PSNR 22.98):编辑高分辨率用户图片仍有挑战
- 外观 embedding 不可编辑:当前方法支持空间编辑但不支持风格编辑
- 图像元素数量固定为 256,对于简单/复杂场景可能不够灵活
- 基于 Stable Diffusion v1.5,升级到更新的基础模型(如 SDXL)可能带来显著提升
- 可探索将图像元素作为更紧凑可控的 latent space 用于图像生成(训练 prior model 直接生成图像元素)
相关工作与启发¶
- BlobGAN:类似地暴露可操控的物体把手,但不能用于编辑输入图像
- Swapping Autoencoder / Diffusion Autoencoder:在 latent 空间编辑,但存在重建精度与可编辑性的 trade-off
- SAM / SLIC:本文将两者巧妙结合,在 SAM 特征空间做 SLIC 聚类获得均匀的语义超像素
- ControlNet:图像级条件引导,但不适合精确的空间操控
- 可以延伸到视频编辑、3D 场景编辑等场景
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ — 可编辑图像元素的概念非常新颖,巧妙地统一了重建和编辑
- 实验充分度: ⭐⭐⭐⭐ — 用户研究设计合理,消融全面,但缺少大规模定量评估
- 写作质量: ⭐⭐⭐⭐ — 清晰的问题定义和方法阐述,图示直观
- 价值: ⭐⭐⭐⭐ — 为图像编辑提供了新范式,特别是空间编辑方面的潜力巨大
相关论文¶
- [ECCV 2024] ∞-Brush: Controllable Large Image Synthesis with Diffusion Models in Infinite Dimensions
- [ECCV 2024] Learning Semantic Latent Directions for Accurate and Controllable Human Motion Prediction
- [ECCV 2024] MotionLCM: Real-time Controllable Motion Generation via Latent Consistency Model
- [ECCV 2024] FouriScale: A Frequency Perspective on Training-Free High-Resolution Image Synthesis
- [ECCV 2024] Rejection Sampling IMLE: Designing Priors for Better Few-Shot Image Synthesis