
1. 项目概述当“局部重绘”遇上“精准控制”在 Stable Diffusion 的创作流程里“局部重绘”一直是个让人又爱又恨的功能。爱的是它能让我们轻松修改图片的某个局部比如给人物换个发型、给背景加个元素恨的是它常常“不听指挥”重绘的区域要么和原图风格不搭要么结构错乱要么干脆把不该改的地方也涂改了。传统的 Inpaint 功能很大程度上依赖于模型对“蒙版区域”内容的“猜测”这种猜测充满了不确定性。ControlNet 的出现为图像生成带来了前所未有的控制力。而 ControlNet 插件中的InpaintOnly LaMa组合则是专门为解决“局部重绘”的精准控制问题而生的利器。简单来说它把 ControlNet 强大的结构引导能力与 LaMa 这个专为图像修复设计的先进算法结合起来实现了“指哪打哪修哪像哪”的效果。你不再需要和模型“斗智斗勇”猜测它会怎么填充你的蒙版你可以明确地告诉它“请严格按照我提供的线条/姿态/深度信息在这个被遮住的区域里生成符合整体画面逻辑的新内容。”这个组合的核心价值在于“解耦”与“耦合”。它解耦了“内容生成”和“结构控制”让你能分别优化这两件事同时又通过 ControlNet 的机制将生成的内容与指定的结构强耦合起来。无论是修复老照片的破损区域、为设计稿替换元素还是在复杂场景中进行无痕编辑InpaintOnly LaMa 都提供了一套稳定、可控的工业化解决方案。接下来我将深入拆解这套组合拳的工作原理、实操设置中的关键“旋钮”以及如何避开那些新手最容易栽进去的坑。2. InpaintOnly LaMa 的工作原理拆解为什么它比传统方法更聪明要理解这套组合为什么有效我们需要分别看清两个核心组件InpaintOnly 模式与LaMa 算法各自扮演的角色以及它们是如何协同工作的。2.1 ControlNet 的 InpaintOnly 模式专注的“结构指挥官”普通的 ControlNet 单元在处理图像时会同时考虑整张输入图像和文本提示词去影响整个输出画面的结构和内容。但 InpaintOnly 模式不同它被设计为“只关注蒙版区域内的结构控制”。其工作流程可以概括为输入隔离当你上传原图并绘制蒙版后InpaintOnly 模式会首先将蒙版区域从原图中提取出来作为一个独立的“问题区域”图像。预处理聚焦你选择的预处理器如 Canny 边缘检测、OpenPose 姿态识别、Depth 深度估算只会作用于这个“问题区域”或其周边局部生成一个专门针对修复区域的结构引导图如边缘线、深度图。这保证了控制信号的高度针对性。控制权重局部化在生成过程中ControlNet 施加的控制力主要作用于蒙版区域。这意味着模型会努力让新生成的内容去匹配你提供的、针对该区域的特定结构线索而对于蒙版外的图像部分ControlNet 的影响被显著降低从而最大程度地保持原图其他部分不变。这就好比你要修补一面墙上的破洞。InpaintOnly 模式不会指挥你去重建整面墙的风格它只给你一张这个破洞区域的“建筑结构图纸”告诉你新补的砖块应该按照什么纹路和走向来砌以确保和周围的墙面严丝合缝。2.2 LaMa 算法专为修复而生的“内容画家”LaMa 并非 Stable Diffusion 的基础模型而是一个专门用于图像修复Image Inpainting的深度学习架构。它的全称是 “Large Mask Inpainting”其核心创新在于使用了“快速傅里叶卷积”和“感知损失”使其特别擅长处理大面积、复杂结构的缺失区域修复。与传统方法相比LaMa 的优势在于对大掩码友好即使蒙版区域很大、形状不规则LaMa 也能生成连贯、合理的结构。理解全局上下文它能很好地利用蒙版区域周围的图像信息推断出缺失部分应该是什么样子保持整体语义的一致性。例如它能根据断掉的栏杆推断出栏杆应有的连续形态。细节丰富生成的纹理和细节往往更加自然与周边区域的过渡更平滑。在 Stable Diffusion WebUI 的 ControlNet 插件中当你选择“InpaintOnly”模式时通常会自动关联或推荐使用 LaMa 预处理器或模型因为两者的设计目标高度一致——实现高质量、可控的局部内容生成。2.3 协同工作流112 的效应当两者结合整个工作流就清晰了问题定义你提供一张原图和一个蒙版指定要重绘的区域。结构分析LaMa 预处理或其它适配的预处理器分析蒙版区域及其周边生成该区域应有的结构先验图比如如果修复一个缺失的耳朵它会生成耳朵轮廓的边缘图。条件生成在 Stable Diffusion 的生成过程中InpaintOnly 模式的 ControlNet 单元接收这份“结构图纸”并以此作为强条件引导扩散模型在蒙版区域内“绘制”新内容。同时你的文本提示词如“a realistic human ear”提供语义指导。融合输出新生成的内容被严格限制在结构引导的框架内并与原图的非蒙版区域无缝融合最终输出一张局部被精准修改、整体毫无违和感的图像。关键在于ControlNet (InpaintOnly) 负责“形”而 Diffusion 模型在文本提示词和 LaMa 先验的帮助下负责“神”。这种分工使得可控性和生成质量都得到了保障。3. 环境配置与插件安装搭建你的精准修复工作台要使用这个功能你需要一个已经部署好的 Stable Diffusion WebUI例如 AUTOMATIC1111 的版本。以下步骤确保你的环境准备就绪3.1 ControlNet 插件安装与更新首先确保你的 ControlNet 插件是最新版本。老版本可能不支持InpaintOnly模式或 LaMa 预处理器。进入你的 WebUI 安装目录找到extensions文件夹。检查是否存在sd-webui-controlnet文件夹。如果没有你需要通过 WebUI 的“Extensions”选项卡在线安装。更新至关重要在 WebUI 的 “Extensions” - “Installed” 页面找到 ControlNet点击 “Check for updates”然后应用更新。我强烈建议定期更新因为 ControlNet 生态迭代很快新模型和功能如 InpaintOnlyLaMa 的优化会不断加入。3.2 模型文件下载与放置ControlNet 的功能依赖于具体的模型文件。对于 Inpaint 任务常用的模型是control_v11p_sd15_inpaint.pth。你需要下载它下载地址通常可以从 Hugging Face 上 ControlNet 的作者仓库找到。请务必从官方或可信渠道下载。放置路径将下载好的.pth文件放入extensions/sd-webui-controlnet/models目录下。关于 LaMa值得注意的是在 ControlNet 上下文中“LaMa” 更多时候指的是一个预处理器Preprocessor用于生成更好的修复引导图而不是一个独立的 ControlNet 模型。这个预处理器通常随插件更新而内置无需单独下载模型。但在一些讨论中也可能指代专门训练的 LaMa 风格 ControlNet 模型请根据你的插件界面实际选项来判断。3.3 界面识别与基础设置安装更新后重启 WebUI。在文生图txt2img或图生图img2img页面你应该能看到 ControlNet 折叠单元。展开 ControlNet 单元上传你的原始图像。在 “Control Type” 下拉菜单中寻找并选择InpaintOnly或类似的选项不同版本翻译可能略有不同如“仅重绘”。勾选 “Enable” 以启用该单元。在 “Preprocessor” 预处理器下拉菜单中寻找与inpaint或LaMa相关的选项例如inpaint_only或inpaint_global_harmonious等。inpaint_onlylama有时会作为一个联合预处理器出现。在 “Model” 模型下拉菜单中选择你刚才放置的control_v11p_sd15_inpaint模型。完成以上步骤你的精准修复工作台就搭建好了。接下来我们将进入核心的实操环节。4. 核心参数深度解析如何调教出最佳效果ControlNet 的参数设置是效果好坏的关键。这里我们重点分析与 InpaintOnly LaMa 最相关的几个核心“旋钮”。4.1 控制权重与控制步数影响力的“油门”和“时机”Control Weight这是最重要的参数之一决定了 ControlNet 的结构引导对生成过程的影响力度。默认值通常是 1.0。过低0.5控制力太弱生成内容可能忽略结构引导变得天马行空失去修复的准确性。过高1.5控制力过强可能会使生成内容过于僵化死死贴合结构图但缺乏细节和自然变化甚至可能引入 artifacts。对于精细修复建议从 0.8 开始尝试微调范围在 0.7 ~ 1.2 之间。Starting Control Step Ending Control Step这两个参数决定了 ControlNet 在生成过程的哪个阶段介入和退出。Starting Control Step控制网络开始产生影响的步数。扩散过程早期是决定整体构图和结构的阶段。通常建议设置得较早如 0.0 或 0.1以便从一开始就引导结构。Ending Control Step控制网络停止影响的步数。扩散过程中后期主要细化纹理和细节。对于希望结构严格服从但细节可以自由发挥的情况可以设置一个小于 1.0 的结束步数如 0.8。如果希望全程控制则设为 1.0。个人经验一个常用的有效策略是“早期强控制后期弱干预”。例如设置 Control Weight1.0 Starting0.0, Ending0.6。这样在生成前期牢牢锁定结构后期让基础模型自由发挥细节往往能取得更自然的效果。4.2 预处理器与模型选择找到最佳“翻译官”预处理器选择这是将你的输入图像“翻译”成控制信号的关键。inpaint_only通用选择适用于大多数情况。inpaint_onlylama如果可用这是为 LaMa 算法优化的版本在处理大面积或不规则蒙版时通常表现更佳能产生更连贯的结构先验。inpaint_global_harmonious强调生成内容与全局画面的和谐统一适合修复需要与背景高度融合的场景。实操建议如果不确定优先尝试inpaint_onlylama。如果效果不理想可以切换回inpaint_only并对比预览点击“Preview”按钮生成的控制图看哪个更符合你的修复意图。模型匹配务必确保选择的 ControlNet 模型与预处理器和任务匹配。control_v11p_sd15_inpaint.pth是专门为 Inpaint 任务训练的与上述预处理器搭配最佳。使用错误的模型如用姿态模型做修复会导致不可预测的结果。4.3 蒙版处理与分辨率细节决定成败蒙版模糊与蒙版模式蒙版模糊在 WebUI 的图生图 Inpaint 区域有一个“蒙版模糊”参数。它决定了蒙版边缘的羽化程度。适当增加模糊如 4-12像素可以让生成内容与原图的过渡更加平滑避免生硬的边界。这是实现“无痕修复”的一个小秘诀。蒙版模式重绘蒙版内容这是最常用的模式只生成蒙版区域内的新像素。重绘非蒙版内容此模式会保持蒙版内区域不变而重绘蒙版外的区域。在某些特殊构图场景下有用但本文讨论的修复场景通常用不到。分辨率一致性一个极易忽略的坑是分辨率不匹配。ControlNet 单元输入图像的分辨率、文生图/图生图页面的生成分辨率以及 ControlNet 预处理器的输出分辨率三者应尽可能保持一致或成比例。如果差异过大控制信号会错位。最佳实践首先将你的原图裁剪或缩放到一个合适的尺寸如 512x512, 768x768。然后在生成设置中使用相同的分辨率。在 ControlNet 单元中可以勾选“Pixel Perfect”选项如果版本支持它会自动尝试计算一个匹配的预处理分辨率。5. 实战工作流与案例拆解从理论到出图让我们通过一个具体案例走通整个操作流程。假设我们要给一张半身人像照片中的人物“戴上一副眼镜”。5.1 案例准备定义问题与素材原图选择一张人物面部清晰、眼部区域无遮挡的正面或微侧面照片。蒙版绘制使用 WebUI 内置的画笔工具在人物眼睛及其周围区域即你希望眼镜出现的位置仔细绘制蒙版。蒙版范围可以稍大于眼镜的实际面积给模型一些发挥空间。记得保存这张带蒙版的图片。提示词构思正向提示词photorealistic, a person wearing elegant translucent glasses, realistic glass refraction, subtle reflection on lenses, detailed frame, (perfect eyesight:1.2), seamless integration with face一个戴着优雅半透明眼镜的人真实的玻璃折射镜片上的细微反光细致的镜框完美的视力与脸部无缝融合负向提示词deformed, blurry, bad anatomy, fused with skin, weird frame, (no glasses:1.5)畸形模糊结构错误与皮肤融合奇怪的镜框无眼镜关键点提示词要具体描述你想要的物体眼镜及其属性材质、细节并强调与环境的融合“seamless integration”。负向提示词明确排除不想要的情况如眼镜与皮肤长在一起。5.2 ControlNet 参数设置详解在“图生图”页面上传原图和蒙版。设置图生图参数采样方法如 DPM 2M Karras、步数20-30、生成分辨率与原图一致或等比例。展开 ControlNet 单元上传原图不是蒙版图。参数设置如下Enable: ✔Control Type:InpaintOnlyPreprocessor:inpaint_onlylama(或inpaint_only)Model:control_v11p_sd15_inpaintControl Weight:1.0初始值可后续调整Starting Control Step:0.0Ending Control Step:0.7Preprocessor Resolution: 如果非“Pixel Perfect”建议设置为与生成分辨率相同的值。重要步骤点击“Preview”按钮。你会看到一张处理后的图像它显示了 ControlNet 将要使用的“控制图”。对于 InpaintOnly这张图通常是蒙版区域被某种边缘或特征填充后的样子。检查它是否合理反映了“眼镜区域”应有的结构。如果预览图全黑或全白说明预处理可能有问题需要检查蒙版或更换预处理器。5.3 生成、迭代与精修点击“生成”。第一张图可能不完美但眼镜的大致形状和位置应该已经出现在正确区域。迭代优化如果眼镜形状不对提高Control Weight(如到1.2)或降低Ending Control Step(如到0.5)加强控制。如果眼镜看起来太假、太生硬降低Control Weight(如到0.8)或提高Ending Control Step(如到0.9)给模型更多自由发挥细节的空间。同时可以在提示词中增加关于材质和光感的描述。如果眼镜和皮肤边界不自然调整图生图页面的“蒙版模糊”参数增大并确保负向提示词包含了fused with skin。如果颜色/光照不匹配这是局部重绘的常见难题。可以尝试使用“重绘幅度”参数。首次生成时使用较高的重绘幅度如0.75来创造内容随后使用较低的重绘幅度如0.3-0.5并在提示词中强调“保持原肤色和光照”来进行微调和融合。多结果筛选使用批量生成生成4-8张图从中挑选结构最正确、融合最自然的一张作为基础再进行上述微调。这个案例展示了如何通过结构控制InpaintOnly和语义引导提示词的配合实现高度定向的局部修改。同样的工作流可以应用于修复破损照片、移除不需要的物体、更换服装纹理、添加配饰等无数场景。6. 高级技巧与疑难排坑成为修复专家掌握了基础流程后一些高级技巧和问题排查方法能让你事半功倍。6.1 复杂场景处理多重控制与区域提示对于非常复杂的修复任务单一的 InpaintOnly 控制可能不够。多重 ControlNet 叠加这是高级玩法。你可以启用多个 ControlNet 单元。单元1使用InpaintOnly LaMa控制修复区域的主体结构。单元2使用Reference控制类型输入原图并设置较低的权重如0.3-0.5。这有助于生成内容在风格、色调上更好地匹配原图解决颜色不协调的问题。单元3如果修复区域涉及特定姿态或深度可以额外添加OpenPose或Depth控制但权重应设得非常低如0.2作为辅助参考。区域提示词一些高级插件或 ComfyUI 工作流支持为图片的不同区域分配不同的提示词。你可以为蒙版区域编写专门的、详细的提示词而为背景区域使用更泛化的提示词实现更精准的内容引导。6.2 常见问题与解决方案排查表问题现象可能原因解决方案生成内容完全无视蒙版在别处出现1. ControlNet 未启用或模型未加载。2. 预处理器选择错误未生成有效控制图。3. Control Weight 设置为0或过低。1. 检查“Enable”已勾选模型名称正确显示。2. 点击“Preview”查看控制图是否正常。尝试更换预处理器如切回inpaint_only。3. 逐步提高 Control Weight 至 0.8 以上观察。修复区域边缘生硬有明显接缝1. 蒙版模糊度太低。2. 重绘幅度过高导致新旧内容差异太大。3. 生成分辨率与原图差异大。1. 增加“蒙版模糊”参数8-16。2. 降低重绘幅度0.4-0.6进行二次生成。3. 确保生成分辨率与原图或控制图分辨率匹配。修复区域结构扭曲不符合预期1. 控制图Preview本身质量差未能提取正确结构。2. Control Weight 过高限制了模型创造力。3. 提示词对修复物体的描述不够具体或存在冲突。1. 尝试不同的预处理器或手动绘制一张简笔画作为控制图上传使用“Canny”等类型。2. 适当降低 Control Weight 或提高 Ending Control Step。3. 优化提示词明确物体形状、大小和空间关系。修复区域颜色、光照与周围不协调1. 这是局部重绘的固有难点模型缺乏全局颜色一致性理解。2. 未使用 Reference 控制或其他色彩辅助手段。1. 使用低重绘幅度0.3进行多次微调生成。2. 启用第二个 ControlNet 单元使用Reference模式权重约0.4。3. 后期使用 Photoshop 等工具进行简单的颜色匹配和调色。生成速度异常缓慢1. 同时启用了多个高分辨率 ControlNet 单元。2. 预处理分辨率设置过高。1. 非必要的 ControlNet 单元及时关闭。2. 降低“Preprocessor Resolution”或启用“Low VRAM”模式。6.3 性能优化与工作流整合显存管理同时使用多个 ControlNet 模型或高分辨率图像会消耗大量显存。如果遇到显存不足OOM错误可以在 ControlNet 设置中勾选“Low VRAM”选项。降低生成分辨率或预处理分辨率。分批处理一次只启用一个高负载的 ControlNet 单元。与外部工具联动Stable Diffusion 不是万能的。对于极其复杂的修复最佳工作流往往是“AI初修 人工精修”。你可以用 InpaintOnly LaMa 生成一个大致正确的结果。将结果导入 Photoshop、Affinity Photo 或开源工具 GIMP使用克隆图章、修复画笔等工具对细微的纹理、颜色过渡进行手动调整。AI 负责解决“有无”和“结构”问题人工负责解决“完美”问题。经过这些步骤和技巧的打磨你就能将 InpaintOnly LaMa 从一个好用的功能变成你数字创作和图像修复工具箱中一件可靠、精准的利器。它降低了高质量局部编辑的门槛但真正发挥其威力依然离不开对参数的理解、对问题的拆解以及大量的实践和耐心调试。