AI绘画填充修复:画面补全与局部重绘的实用技巧

AI绘画填充修复:画面补全与局部重绘的实用技巧
AI绘画填充修复画面补全与局部重绘的实用技巧

简单说:Inpainting(填充修复)是AI绘画最有用的功能之一——你不需要因为一只手画坏了就重跑整张图,只需要圈出坏掉的手指、告诉AI"这里应该是什么",它就能在保留画面其他部分不变的情况下只修改那一小块。

我刚用AI绘画那会儿,一张图如果手画坏了、脸崩了、或者背景多了个奇怪的东西,我的做法是——删了重跑。后来学会了inpainting,感觉像发现了新大陆。一张整体构图满分但手有三根手指的图,用inpainting圈出那只手,写"perfectly formed human hand with five fingers",跑三到五轮,手就修好了。效率比重跑整张图高了不知道多少倍。这篇把我的inpainting经验全倒出来。AI绘画入门讲了基础操作,本文专攻inpainting这个单一技巧。

Inpainting的底层逻辑:局部重扩散

Inpainting不是简单的"抠图再贴一张",而是在遮罩区域内重新做一次小范围的扩散去噪过程,同时以遮罩外的画面作为"上下文约束"确保新旧区域无缝融合。技术上讲,当你用画笔涂抹一个遮罩区域(mask)后,模型会把这个区域内的像素重新加噪(加噪程度由Denoising Strength控制),然后以遮罩外的原始画面作为条件,对遮罩内进行定向去噪。最终遮罩内的新内容和遮罩外保持风格、光影、色调的连贯性。这个过程的关键参数是Denoising Strength——设太低(0.3以下),改动不够,旧内容基本保留;设太高(0.8以上),改动太猛,遮罩内外风格可能脱节。我日常修手的值在0.55-0.65区间,换背景在0.7-0.8区间。想理解更深层的扩散机制可以看AI绘画生成原理,把原理搞清楚后调参就有谱了。

修手修脸:最高频的Inpainting场景

手和脸是最需要inpainting的两个区域——因为它们是画面中观众注意力最集中的地方,任何一点瑕疵都会被放大。修手流程:先用套索或画笔工具精确圈出变形的手指区域(遮罩边界稍微比手的轮廓大几个像素),Prompt写"realistic human hand, five anatomically correct fingers, natural relaxed pose, matching the lighting and skin tone of the original image"。Denoising Strength设0.6左右。如果一次不行就多跑几次,每次微调遮罩位置。修脸流程类似,但遮罩要更精细——圈出崩掉的五官局部(比如一只眼睛歪了),Prompt写"natural looking eye, symmetric to the other eye, consistent lighting"。修脸时有一个很重要的细节:遮罩不要覆盖整张脸,只圈有问题的局部——整张脸重绘容易丢失人物的身份特征,变成一个"像但不一样"的新面孔。关于角色面部一致性的更多技巧,AI角色设计教程里有专门章节。

移除杂物与替换物体:从背景中删除不想要的元素

AI画的图经常在背景里随机生成一些莫名其妙的东西——多出来的路人、奇怪的树枝、不该存在的建筑物——inpainting是处理这些的最佳工具。移除杂物的操作和别人想的不太一样:不是写"remove the object",而是描述"这个区域应该是什么"——比如背景里多了一个路人,遮罩圈住路人,Prompt写"empty street background, matching the surrounding cobblestone texture and ambient lighting"。你告诉AI"这里应该是什么",而不是"把什么删掉"。AI听不懂"删除"指令,但它能理解"这里应该是一堵空白的砖墙"。替换物体同理——想把画面里的苹果换成橙子,遮罩圈住苹果,Prompt写"a ripe orange, same size and lighting as the surrounding fruit arrangement"。描述目标内容而非描述删除操作——这是inpainting思维的核心转变。AI社区的实战分享可以参考Stable Diffusion Art的Inpainting教程,有大量遮罩技巧的图解说明。

换装与换背景:Inpainting的高级应用

用inpainting给角色换衣服或换背景,比重新生成整张图更高效——因为你只需要修改局部,角色本体的姿态和面部得以保留。换衣服:遮罩圈住服装区域(尽量贴近服装轮廓),Prompt写目标服装的描述——"elegant black evening gown with silk texture, off-shoulder design, matching the character's pose"。关键是要保持光照一致性——加"matching the existing lighting direction and skin tone"。换背景要分两步:第一步用大遮罩覆盖原背景(留出人物边缘),Prompt写目标场景;第二步如果人物边缘出现白边或融合不自然,用小遮罩微调边界过渡区。换背景时Denoising Strength可以设高一些(0.75-0.85),因为背景和主体之间的风格一致性要求相对宽松。更多高级编辑技巧可以看AI绘画软件功能对比里各工具的inpainting能力横评。

Inpainting翻车的四种典型情况与解决

翻车一:修复区域有明显边界——像打了个补丁。原因多半是遮罩边缘太生硬。解决:用软边笔刷画遮罩(feathered brush),让遮罩边缘有几个像素的过渡带。翻车二:修复内容与周围风格不搭——比如修出来的手是写实风但整张图是动漫风。解决:Prompt里加全图风格描述——"in the same anime cel-shaded style as the rest of the image"。翻车三:修复后内容反复变化——每次跑出来的都不一样。解决:固定Seed值,用同一个Seed跑多次inpainting,这样修改区域内的一致性会提升。翻车四:Denoising Strength设太高把遮罩周围也"污染"了。解决:降低到0.5-0.6,宁愿多跑几次小幅修改,不要一次性改太多。RePaint论文提出了更高级的去噪策略,对理解inpainting的参数调优很有帮助。

常见问题

Inpainting和Outpainting有什么区别?

Inpainting是"向内填充"——在画面内部圈出一块区域替换或修复。Outpainting是"向外扩展"——在画面外部补充新的内容扩大画幅。两者底层原理相同(局部重扩散),但操作方向和用途完全不同。Outpainting的详细教程见AI拓展绘画教程

一张图可以反复inpainting多次吗?

可以,但每次inpainting会累积微小的画质损失——因为每次重扩散都会引入新的随机噪声。建议同一张图的inpainting次数控制在5次以内,超过的话考虑重跑原图再修。如果必须多次修复,每次保存一个中间版本作为回退点。

为什么有的区域inpainting后反而更差了?

通常因为遮罩范围太小——AI没有足够的上下文信息来推断应该填充什么内容。遮罩面积至少应该覆盖目标区域的1.5倍,给AI留出一定的过渡空间。另一个原因是目标Prompt和周围环境不匹配——修完的内容像"外来物种"。

有哪些工具支持inpainting功能?

Stable Diffusion WebUI原生支持、Midjourney的Vary Region功能、Photoshop的Generative Fill(基于Firefly)、DALL·E的inpainting API。各工具的遮罩精度和融合算法有差异,Stable Diffusion的inpainting可控性最强(参数最多),Photoshop的Generative Fill最傻瓜化(对普通用户最友好)。

觉得有用的话分享给朋友吧。