一句话定位

RePaint 是一种完全无需训练(training-free)的扩散图像 inpainting 方法:直接拿一个无条件预训练 DDPM 当生成先验,只在反向去噪推理时把已知区域的加噪版本替换进去做条件注入;核心创新是 resampling(来回跳采样 / harmonization) 调度——在扩散时间上前后反复跳跃,让已知区与生成区充分协调。在 CelebA-HQ / ImageNet / Places2 的 6 种掩码、3 个数据集共 44 组对比中,用户研究里 42/44 组以 95% 置信度胜过 AR 与 GAN SOTA;极端掩码(Super-Resolve 2×、隔行)上 LPIPS 大幅领先(如 CelebA Super-Res LPIPS 0.029 vs LaMa 0.177)。

背景与定位

自由形式 inpainting(用任意二值掩码指定缺失区,生成新内容并与图像其余部分和谐)的难点在于掩码泛化:此前主流方法(GAN 系 diffusion-models-beat-gans 之前的 DeepFillv2 / AOT / LaMa,AR 系 DSI / ICT)都要在某种掩码分布上训练,遇到训练时没见过的掩码类型(如隔行、超分式 stride-2、只留中心 64×64)就严重退化、出棋盘伪影或只做纹理外推而缺乏语义。

RePaint 反其道而行:不为 inpainting 任务训练任何东西,只复用一个 off-the-shelf 的无条件 DDPM(ddpm,并基于 improved-ddpm 学方差 + Dhariwal & Nichol 的 guided-diffusion / ADM diffusion-models-beat-gans 的预训练权重)。这样有两个好处:(1) 推理期可泛化到任意掩码形状;(2) 借助强大的 DDPM 图像合成先验,生成更具语义的内容(而非简单纹理延伸)。

技术脉络上它属于”用扩散先验做条件生成”一支,并明确区分了几条相邻线:

  • ilvr(ILVR)用条件图的低频信息引导,但 inpainting 里掩码区高低频都缺失,无法照搬;
  • sdedit(SDEdit)从中间扩散时刻初始化并重复反向过程做 harmonization——但它需要一张引导图起步,inpainting 没有这张图;RePaint 论文把 SDEdit 的”重采样”改造成对照基线,证明自己的 resampling 在 Super-Res 掩码上 LPIPS 降低 53%+;
  • 同期工作 GLIDE glide(classifier-free guidance 训条件模型)、Palette(image-to-image 条件 DDPM)都要训条件模型,RePaint 强调自己只在反向过程中条件化、零训练

这个 resampling/harmonization trick 后来被大量编辑工作沿用,是 RePaint 最具影响力的遗产。

模型架构

RePaint 本身不引入新网络——它是一个推理调度算法,架构完全来自所用的预训练 DDPM:

  • backbonediffusion-models-beat-gans 的 guided-diffusion U-Net(ADM)。模型在像素空间直接建模 256×256 图像(非 latent 扩散,不涉及 VAE / VQ tokenizer)。
  • 预测目标:U-Net 输入 (x_t, t),输出 6 通道张量,含 x_{t-1} 的均值与方差信息(沿用 improved-DDPM 的学习方差设计,方差范围再做区间调整)。均值由估计的 x_0 与 x_t 加权得到。
  • 无 text encoder:纯无条件模型;ImageNet 模型可做类别条件生成(论文 5.5 展示对 “Granny Smith” 等类的 Expand 掩码补全),但 inpainting 主流程不依赖任何文本/类别条件。
  • 条件注入方式(核心):每个反向步把图像拆成已知/未知两部分,已知区用前向公式直接加噪到当前噪声水平 x_{t-1}^known,未知区用 DDPM 反向步采样 x_{t-1}^unknown,再用掩码 m 拼接:
    • x_{t-1} = m ⊙ x_{t-1}^known + (1−m) ⊙ x_{t-1}
    • 关键在于:已知区的加噪 x_{t-1}^known 与未知区的生成共享同一噪声水平,所以二者可以无缝 join,且不修改、不微调网络本身。
  • 分辨率:论文主结果全部 256×256(CelebA-HQ / ImageNet / Places2)。
  • 参数量:未单独报告(即 ADM 256×256 模型规模)。

数据

RePaint 不训练 inpainting 模型,所以”数据”主要指它复用的预训练 DDPM 所用数据集,以及评测数据:

  • ImageNet:直接用 guided-diffusion 官方提供的 256×256 预训练模型(OpenAI diffusion-models-beat-gans),未自行训练。
  • CelebA-HQ:作者自训一个无条件 DDPM,沿用 ImageNet 同套超参,256×256 crop,250,000 iter,约 5 天。
  • Places2:自训无条件模型,300k iter、batch size 4、4×V100,约 6 天(论文附录 D)。
  • 数据来源/清洗/配比/re-captioning/合成数据:不适用 / 未涉及(无条件像素扩散,无图文对、无标注流程)。
  • 已知偏置:ImageNet 模型偏向把缺失区补成狗(ImageNet 狗类图像占比高),论文与 README 都明确标注为 failure case 与数据偏置。

评测数据:CelebA-HQ / ImageNet / Places2 各取 100 张 256×256 测试图(消融用 32 张 CelebA validation),掩码沿用 LaMa benchmark 的 Wide / Narrow 设置,并新增 Super-Resolve 2×、Alternating Lines、Half、Expand 共 6 种。

训练方法

整体方法 = 零训练 + 推理期 resampling 调度,这是本文的全部”方法”重心:

1. 已知区条件化(Section 4.1)——见上”条件注入”。直接朴素地按掩码拼接,但论文观察到:已知区的采样没有考虑已生成的未知区内容,每步都引入不和谐;而越往后扩散方差 β_t 越小、可修正余地越少,导致边界不和谐无法收敛——纹理对了但语义错了(如狗图缺口被补成毛发纹理但结构不对)。

2. Resampling / Harmonization(Section 4.2,核心创新)——为让已知与生成充分协调:把已经去噪一步得到的 x_{t-1} 再前向加噪回 x_t(x_t ~ N(√(1−β_t)·x_{t-1}, β_t I)),然后重新去噪。这一”退一步再进一步”让网络有机会把已知区信息扩散进未知区。

  • jump length j:一次跳跃覆盖的扩散时间步数(j=1 为最朴素的单步来回;最终用 j=10)。
  • resample 次数 r(论文也记作 n / U):每段重复来回的次数(最终用 r=10)。
  • 直觉:去噪一步 → 把已知区按当前噪声水平加噪 → join → 再加噪回 x_t → 再去噪……反复 r 次后才真正推进到下一个更低噪声水平。
  • 论文给出完整 Algorithm 1 与附录 B 的时间调度伪代码(j=10, r=10 时,时间序列形如 [249,248,249,248,247,248,…],前后反复跳)。

3. 训练目标:被复用的 DDPM 用标准 L_simple = E[‖ε − ε_θ(x_t,t)‖²] + improved-DDPM 的学习方差 VLB 项训练(ddpm / improved-ddpm);RePaint 不引入新损失、不对生成区加任何引导 loss,因此生成多样、可”自由幻想”任何语义对齐训练集的内容。

关键消融结论(方法层)

  • resampling vs 单纯放慢扩散:在相同算力预算下,把步数从 250 拉到 1000(slow-down, r=1)几乎不改善 LPIPS(0.168→0.161);而把预算用于 resampling(T=250, r=4)显著降到 0.134——证明收益来自和谐化而非单纯更多算力(Table 2 / Fig 7)。
  • jump 长度:j=10 优于 j=1;j=1 时图像更模糊(Table 3)。
  • resample 次数:r 越大越好,约 n≈10 处收益饱和(Fig 3)。
  • vs SDEdit 重采样:在 Super-Resolution 掩码上 LPIPS 降低 53%+(Table 4)。

Infra(训练 / 推理工程)

  • 训练算力(仅自训的两个无条件模型):CelebA-HQ 256×256,3 batch × 4×V100,250k iter ≈ 5 天;Places2 256×256,batch 4 × 4×V100,300k iter ≈ 6 天。ImageNet 模型直接用 OpenAI 现成权重,零训练成本。致谢 Nvidia GPU grant + Huawei Technologies Oy (Finland) 项目 + ETH Zürich Fund。
  • 最终推理配置:T=250 timesteps,r=10 次 resampling,jump size j=10。
  • 推理代价(核心局限):resampling 把反向过程的转移次数大幅放大(T=250 + j=10,r=10 的调度,单图约 4000 次状态转移,见附录 Fig 10 横轴),加上每张图独立优化(per-image DDPM),比 GAN/AR 慢得多,不适合实时。论文 §6 把加速寄望于 DDPM 效率改进(引用 [23,24])的后续工作。
  • 实现:代码基于 OpenAI guided-diffusion,依赖 torch 1.7.1+cu110;提供 ImageNet / CelebA-HQ / Places2 三套模型与 thin/thick/隔行/超分/expand/half 掩码的现成 config。加速旋钮:降 t_T、降 jump_n_sample、用 start_resampling 仅在后期才 resample。
  • 量化/缓存/部署形态:未涉及

评测 benchmark(把效果讲清楚)

评测口径:用户研究投票(每图 5 人、每问题问两遍、自一致性<75% 的被试丢弃,1000 票/对比,报 95% 置信区间)+ LPIPS(AlexNet 特征距离,越低越好)。下列数字均来自论文 Table 1 / Table 4 / Table 5。投票 % 指”相对 RePaint(Reference)被偏好的比例”,越低说明 RePaint 越被偏好。

CelebA-HQ(Table 1,节选 LPIPS↓)

MaskAOTDSIICTDeepFillv2LaMaRePaint
Wide0.1040.0670.0630.0660.0450.059
Narrow0.0470.0380.0360.0490.0280.028
Super-Res 2×0.7140.1280.4830.1190.1770.029
Alt. Lines0.6670.0490.3530.0490.0830.009
Half0.2870.2110.1660.2090.1380.165
Expand0.6040.4870.4320.4670.3420.435

ImageNet(Table 1,LPIPS↓):Wide DSI 0.117 / ICT 0.107 / LaMa 0.105 / RePaint 0.134;Super-Res LaMa 0.272 / RePaint 0.183;Alt. Lines LaMa 0.121 / RePaint 0.089;Half LaMa 0.254 / RePaint 0.304;Expand LaMa 0.534 / RePaint 0.629。 Places2(Table 5,LPIPS↓):Super-Res LaMa 0.369 / RePaint 0.099;Alt. Lines LaMa 0.138 / RePaint 0.051

结论模式

  • 薄掩码(Super-Res 2×、隔行):RePaint 几乎全面碾压,用户研究在这两类掩码上拿到 73.1%–99.3% 偏好(论文 §5.3),其它方法彻底失败或出棋盘伪影。Wide/Narrow 标准掩码:论文称 RePaint 在 CelebA-HQ 与 ImageNet 上 Wide/Narrow 均以 95% 显著性胜出(投票偏好约 57%–66%,见 Table 1 各 baseline 的 Votes 列)。
  • 厚掩码(Half / Expand):LaMa 在 LPIPS 上反而更低。论文明确解释这是指标失真——RePaint 会生成语义合理但与 GT 差异很大的内容,LPIPS(逐图与 GT 比)对这种多样化生成不公平;用户研究里 Half/Expand 上 RePaint 仍多数被偏好。
  • 总体:用户研究 6 掩码 × 3 数据集 = 44 组对比中,42 组以 95% 置信胜出,仅 2 组不确定(CelebA “Half” vs ICT;Places2 “Wide” vs LaMa 52.4% 几乎打平)。

多样性 / 扩散性消融(附录 Table 6,DS = diversity score 越高越多样):RePaint 在多数掩码上 DS 高于 DSI/ICT(如 SR 2× DS 19.84 vs DSI 12.38 / ICT 8.70),且 LPIPS 更低——同时更准更多样。

未报告:FID(论文指出可靠 inpainting FID 需 >1000 张图,当时 DDPM 推理太慢不可行)、GenEval/CLIPScore/HPS 等文本对齐指标(无文本条件,不适用)。

创新点与影响

核心贡献

  1. Training-free 扩散 inpainting:首次系统性证明只用无条件预训练 DDPM,无需任何 inpainting/掩码专属训练,就能做高质量自由形式补全,并对任意掩码泛化;
  2. Resampling / harmonization 调度:在扩散时间上”前后跳跃”反复 re-noise→denoise 来协调已知与生成区——这是被后续编辑工作(如各类 diffusion inpainting pipeline、stable-diffusion-img2img-inpaint 风格的方法、blended diffusion 系 blended-latent-diffusion)广泛借鉴的”重采样 trick”;
  3. 配套提出相同算力下 resampling 优于放慢扩散、jump/resample 数量的可复现消融,给出明确推荐 (T=250, j=10, r=10);
  4. 公开 CelebA-HQ / Places2 自训模型与完整 config、掩码、LaMa-style benchmark 扩展(6 掩码)。

影响:把”用预训练扩散先验 + 推理期条件化”这一范式做实,成为 latent 空间编辑、blended diffusion、SD inpaint 等后续工作的概念与工程参照;resampling/harmonization 思想渗透进大量 training-free 编辑方法。

已知局限(论文 §6 / README):

  • :per-image 优化 + resampling 放大转移次数,远慢于 GAN/AR,不能实时;
  • 极端掩码下生成可能严重偏离 GT,使 LPIPS 等逐图指标失效,可靠 FID 又因推理慢而难算;
  • 继承训练集偏置:ImageNet 模型倾向补成狗;可能反映性别/年龄/种族偏置(也可正向用于人脸匿名化)。

原始链接

一手源存档(sources/)