把 RePaint 那套 inpainting 的原理捋明白了,记一下

手上有张图缺了一块想补回来,顺着这个需求翻到了 RePaint,看完觉得思路挺巧,自己捋一遍留个底。

它要解决的就是这件事:图缺了一块,补上去的部分不光要像样,还得跟剩下的区域自然接上,不能一眼就看出是后贴的。

巧的地方在于它不为修复任务单独训模型,拿现成的 DDPM 去噪模型直接用。每一步里,已知区域用原图加噪之后的结果去约束,未知区域交给模型自由生成,再把两边缝到一块往下走。

还有一手是重采样:同一段来回走几次而不是一遍过,补出来的东西上下文一致性会好很多。

代价这块我没实测,跑过的老哥说说显存和速度大概什么水平。

1 个赞

重采样次数得拉高才看不出接缝,调太少跟一遍过差不多

码住

显存我跑过,比常规采样吃得多,因为要反复回退