5.1 图像修复与扩展


5.1 图像修复与扩展

图像修复(inpainting)通过掩码指定缺失区,只在掩码内重新加噪去噪,从而补洞不伤背景;图像扩展(outpainting)把画向外推再续画;对象移除/替换则是对掩码的同一套手术做不同应用。本节给出三步手术与三个场景的取舍。

一张老照片撕了个角,或一张合影的路人想让他消失,这样的"小手术"如果交给普通画师,得小心翼翼不碰背景。扩散模型怎么做?答案把它拆成三步手术:先用掩码告诉模型"哪里是我的手术区",再让模型假装手术区已经糊成一团噪声,最后只在这片掩码内重建,其余像素原样保留。手术区的"重建"沿用扩散去噪的里子,而"只动掩码"则保证背景永远安安静静。

手术第一步:掩码划界

掩码(mask)是一张和原图同尺寸的图,值要么 0(保留)要么 1(要重画)。模型拿到原图、掩码和一条提示词,就自动知道哪些像素必须是原来的、哪些像素可以随便补。这么做的意义很朴素:把"不能变的"锁死,把"可以变的"交给随机种子与先验,二者互不干扰。这也是 inpainting、outpainting、对象移除三类任务共同的地基。

修复 inpainting:把洞口补得看不出

流程上,inpainting 把掩码区域的像素整个替换成噪声起步,再用去噪网络在这个"半图半噪"里逐步找回合理内容。工程要点是 denoise 强度与提示词的配合要"贴着洞来":提示词描述洞里应该有什么,比如"补一堵纹理接近的红砖墙",模型就会照着纹理和光影把洞填平,接缝处的过渡由去噪平滑掉。

难点常在边界:填得好的洞,边界过渡自然、光影一致、并没有"拼缝感"。要达成这个效果,模型通常借助"卷积层里对掩码区域与已知区都有条件的注意力",让新生成的洞内容主动参考周围纹理。这也是为什么好一点的 inpainting 工具会给你一个可调的 feathered mask(柔化边缘),让过渡更顺。

把"只对掩码动刀"这件事画成手术图解,你立刻能看出哪些像素被锁死、哪些被放开:

05-01-fig01

图 5-1:inpainting 三步手术

这三张卡片分别对应"划界、置噪、重建",核心纪律是一条——掩码以外的像素全程只读。正因为这套排他性约束,修复才可能做到"补了洞却看不出动过刀"。

三种手术怎么选

inpainting、outpainting、对象移除都来自同一把手术钳,差别只在"手术区画在哪、提示词写什么"。一张简表划清边界:

任务 手术区 提示词要什么 典型用途
inpainting 补洞 图中缺失/破损处 洞里应该有的东西 老照片修复、去水印
outpainting 扩展 画框外一圈新区域 延续原风格的内容 横幅、海报延展
移除对象 目标对象所在区域 自然背景 去掉抢镜路人

同一套机制、三种写法,记住"掩码划区 + 区外不动 + 区内重建"这一句话就能统一理解。剩下的全靠你在具体图上把掩码和提示词调到位。这里再补一个工程提醒:无论哪种手术,掩码边界的柔化都直接决定成品是否"露馅"。边缘硬得像刀切,交界处就会留一圈生硬的色差;做一两个像素的高斯柔边,交接的色差会被弥散掉,观感立刻从"p上去的"变成"本来就长这样"。

扩展 outpainting:把画向外再推一截

outpainting 是 inpainting 的镜像:不是补洞,而是把画布向外扩大,再让模型把扩出来的部分"想象"出来连成一体。它要求模型既能延续原文的风格与地平线,又不能让新内容跟旧内容明显断层。做法常是在新扩区域主动加噪重绘、旧区保持,只是这时"手术区"换成了那圈新画布。适合做横幅、海报需要向左右延展的场景。

把三类任务放一张手术台上的分工理一下:

对象移除:让人"看不见"

对象移除(如去掉一个抢镜的路人)是 inpainting 的日常化应用:把要移除的对象框进掩码,提示词写"自然背景",模型就在掩码里重画出一片"本来就很自然"的背景。难点在于要知道"那背后原来该是什么"——如果那是一堵墙,墙的纹理得接得上;如果是草地,草的方向得要自然。高能量模型常能出色地虚构出合理的"背景本体",但也可能让人物轮廓边缘留下改写痕迹,需要低 denoise、稍高的提示词粒度来收尾。

对象替换则是同个套路的升级版:掩码里不放"自然背景",而放"一只狗"之类的替换目标,模型就把那块的狗换掉了。本质都是"掩码划区 + 区外不动 + 区内重建",只是内容的不同。

参数与易错点

  • 掩码覆盖范围:既不能太宽(会捎带破坏不该动的背景),又不能太窄(重建部分会露馅),常把目标边缘外放 2 到 4 像素。
  • denoise:修复时不宜太高,否则手术区会和背景"抢戏"、风格脱节;从 0.2 到 0.5 起步。
  • 提示词:给洞口一个具体语义("红墙纹理"优于"随便什么墙"),能显著降低补残的风险。

顺着调整讲下去,一个经常被忽略但极其影响成败的变量是分辨率与比例的对齐。模型训练时见过的大多是正方形画布,如果你把一张被拉成很扁的矩形图直接拿去补洞,模型会被迫在它不熟悉的长宽比上手把手拼图,接缝和比例失调的几率成倍上升。所以一个充分打磨的 inpainting 流程会先做"画布归一":把大致比例先调整到接近正方形或模型擅长的那一档,补好洞后再裁回目标尺寸——把"模型不擅长的地形"提前绕开,比在坏地形里硬补更省心。另一个同量级的习惯是固定好步数的一贯性:不同批次的修复任务尽量用同一套 denoise 与步数区间,否则同一张图前后两次修复的口径不一致,再造出来的细节密度会肉眼可见地跳来跳去。

⚠️ 常见坑:掩码画得太紧,导致洞口边缘暴露一条"补丁缝";记得给掩码柔边几像素。
💡 关键直觉:inpainting 的强大来自"只改该改的"——掩码是排他性的手术钳,越精准,越看不出你动过刀。

本节要点回顾

  • 掩码划界:哪个像素必须保留、哪个可重画,先划清界线。
  • inpainting 三步:掩码 → 掩码区置噪 → 区内去噪重建,背景不动。
  • outpainting:把手术区移到画框外,续画并接缝自然。
  • 对象移除/替换:同一手术的不同内容版,框谁就重画谁。
  • 参数纪律:掩码柔边、denoise 从低起步、给洞口具体语义。

修修补补说完了,下一节上升一个档次——语义图像编辑,怎么让模型"改表情、换发型、把黄昏改写成朝雾",真正理解你要改的是哪个意思层面。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U