图像修复

图像修复(Inpainting)是AI图像编辑的核心技术,让你能精确修改图像的特定区域而不影响其他部分。从移除不需要的物体到添加新元素,从修改细节到风格转换,掌握Inpainting让你的创作更加自由。

预计阅读时间:45分钟·难度:中级·更新:2024年12月

什么是图像修复

Inpainting是指在保持图像其他部分不变的情况下,重新生成选定区域内容的AI技术。它让图像编辑从"重新生成整张图"变成了"精确修改局部",大大提升了创作效率。

应用场景

🗑️ 移除物体

删除不需要的人物、物体、水印等

✏️ 修改细节

更改服装颜色、表情、发型等

➕ 添加元素

在空白区域添加新的物体或人物

🔧 修复瑕疵

修复损坏、模糊或有问题的区域

Inpainting vs 传统修图

❌ 传统修图局限
  • • 需要专业技巧
  • • 依赖现有素材
  • • 复杂场景难以处理
  • • 耗时较长
✅ AI Inpainting优势
  • • 自然语言描述即可
  • • AI自动生成内容
  • • 自动匹配周围环境
  • • 快速高效

技术原理

理解Inpainting的技术原理有助于更好地使用它。

扩散模型的Inpainting机制

  1. 1. 遮罩定义:用户通过绘画或选择定义需要重新生成的区域(白色区域)
  2. 2. 噪声添加:对遮罩区域添加噪声,非遮罩区域保持不变
  3. 3. 扩散去噪:使用文本提示引导,对遮罩区域进行去噪生成
  4. 4. 混合输出:将新生成的内容与原图无缝融合

关键参数

参数作用建议值
Denoising Strength控制修改程度0.5-1.0
Mask Blur遮罩边缘模糊程度4-8像素
Mask Mode重绘遮罩内还是外通常重绘内
Padding Mode填充方式Fill/Latent

常用工具

不同平台提供的Inpainting功能各有特点。

SD WebUI Inpaint

Stable Diffusion WebUI提供功能最全面的Inpainting功能。

功能特点
  • • 支持多种遮罩绘制工具
  • • 可调节去噪强度
  • • 支持ControlNet辅助
  • • 可使用专用Inpainting模型
遮罩模式

Inpaint masked

重绘遮罩区域(常用)

Inpaint not masked

重绘非遮罩区域

Midjourney Vary Region

Midjourney的局部修改功能,简单易用。

使用方法
  1. 1. 生成图像后点击"Vary (Region)"按钮
  2. 2. 使用矩形或套索工具选择区域
  3. 3. 修改提示词描述新内容
  4. 4. 提交生成
特点
  • • 界面简单,上手容易
  • • 自动保持风格一致
  • • 支持修改提示词
  • • 仅支持MJ生成的图像

DALL-E Edit

OpenAI DALL-E的编辑功能,语义理解能力强。

功能特点
  • • 强大的语义理解
  • • 可以生成精确的内容
  • • 支持Outpainting(DALL-E 2)
  • • 与ChatGPT集成(DALL-E 3)

Photoshop AI(创成式填充)

Adobe Photoshop集成的AI功能,专业工作流首选。

优势
  • • 与专业修图工作流无缝集成
  • • 支持图层、蒙版等专业操作
  • • 商业使用版权清晰
  • • 输出质量稳定

工具选择建议

场景推荐工具原因
精确控制SD WebUI参数最丰富
快速修改Midjourney操作最简单
语义理解DALL-E理解能力最强
商业项目Photoshop AI版权最清晰

修复技巧

遮罩技巧

好的遮罩是成功的一半。

✅ 推荐做法
  • • 边缘留出适当余量
  • • 使用模糊边缘(Mask Blur)
  • • 遮罩形状尽量简单
  • • 包含完整的物体边缘
❌ 常见错误
  • • 遮罩太精确紧贴边缘
  • • 边缘过于锐利
  • • 遮罩形状过于复杂
  • • 遮罩区域过大

去噪强度设置

去噪强度(Denoising Strength)是最关键的参数。

0.3-0.5:轻度修改

保留大部分原图特征,适合细节调整

0.5-0.7:中度修改

平衡保留和修改,适合一般场景

0.7-0.9:重度修改

大部分重新生成,适合较大改动

0.9-1.0:完全重绘

完全重新生成,适合移除物体

提示词技巧

Inpainting的提示词需要特别注意。

描述具体内容

明确说明要生成什么,不要模糊

考虑周围环境

描述新内容应该与周围如何融合

使用原有提示词

保持与原图风格一致的关键词

使用负面提示词

排除不需要的特征

ControlNet增强

使用ControlNet可以获得更精确的控制。

常用ControlNet
  • Inpaint ControlNet:专用于Inpainting,效果更好
  • Depth ControlNet:保持空间深度一致
  • Canny ControlNet:保持边缘结构
  • Reference ControlNet:参考原图风格

💡 ControlNet使用技巧

  • • Inpainting时推荐使用Inpaint ControlNet
  • • 控制权重0.6-0.8通常效果最好
  • • 可以同时使用多个ControlNet
  • • 配合IP-Adapter可以保持风格

实践案例

案例1:移除背景人物

步骤:

  1. 使用套索工具选中人物,边缘留出余量
  2. 设置Mask Blur为8像素
  3. 设置去噪强度0.9-1.0
  4. 提示词描述背景内容(如"green grass field")
  5. 生成并选择最佳结果
案例2:更换服装颜色

步骤:

  1. 精确选中服装区域
  2. 设置Mask Blur为4像素
  3. 设置去噪强度0.6-0.8
  4. 提示词描述新颜色和材质
  5. 如需要,使用ControlNet保持服装形状
案例3:添加新元素

步骤:

  1. 在空白区域绘制遮罩
  2. 设置Mask Blur为6像素
  3. 设置去噪强度0.8-1.0
  4. 提示词详细描述要添加的内容
  5. 描述与周围环境的交互关系
案例4:修复面部表情

步骤:

  1. 选中面部区域(包含一些边缘余量)
  2. 使用Inpaint ControlNet
  3. 设置去噪强度0.5-0.7
  4. 提示词描述期望的表情
  5. 可使用IP-Adapter保持人物特征

常见问题

Q: 修改后边缘有明显痕迹?

A: 增加Mask Blur值,确保边缘平滑过渡。也可以适当降低去噪强度。

Q: 修改的内容与原图不协调?

A: 在提示词中包含原图的风格关键词,使用IP-Adapter或Reference ControlNet保持风格一致。

Q: 无法精确控制修改内容?

A: 使用ControlNet获得更精确的控制,调整去噪强度,使提示词更加具体。

Q: 移除物体后背景不对?

A: 确保提示词正确描述背景内容,提高去噪强度,可能需要多次尝试。

Q: 修改后人脸变形?

A: 使用Inpaint ControlNet或专门的修复模型(CodeFormer),降低去噪强度。

💡 最佳实践总结

  • • 遮罩边缘要留余量,使用适当的模糊
  • • 根据修改程度选择合适的去噪强度
  • • 提示词要具体描述期望的内容
  • • 使用ControlNet获得更好的控制
  • • 多次迭代,逐步完善效果
  • • 保存中间结果,方便对比和回退
----