字节笔记本

2026年2月23日

Inpaint Anything:基于 SAM 和 Stable Diffusion 的智能图像修复工具

本文介绍 Inpaint Anything,一个基于 Segment Anything 和 Stable Diffusion 的开源图像修复工具。该项目通过浏览器界面提供直观的图像修复功能,用户只需简单指点即可生成蒙版进行修复,大幅提升修复效率和准确性。

项目简介

Inpaint Anything 是由 Uminosachi 开发的开源项目,它将 Meta 的 Segment Anything(SAM)与 Stable Diffusion 的图像修复能力相结合,提供了一个基于 Gradio 的浏览器界面。用户可以通过简单的点击操作选择图像中的任意区域进行修复,无需手动绘制复杂的蒙版。

该项目在 GitHub 上已获得 275+ stars,采用 Apache-2.0 许可证开源。

核心特性

  • 智能蒙版生成:基于 Segment Anything 技术,通过点击即可自动生成精确的蒙版
  • 多种 SAM 模型支持:支持 SAM 2、SAM-HQ、FastSAM、MobileSAM 等多种分割模型
  • 多种修复模型:集成 Stable Diffusion、LaMA、PowerPaint 等多种修复算法
  • 浏览器界面:基于 Gradio 的直观 Web UI,无需编程即可使用
  • 外绘功能:支持通过 Padding 选项实现图像外绘(Outpainting)
  • 动漫风格优化:针对动漫风格图像的特殊优化模式
  • ControlNet 集成:支持 ControlNet 进行更精确的图像控制

技术栈

  • Python 3.10+ - 主要开发语言
  • PyTorch - 深度学习框架
  • Gradio - Web 界面框架
  • Segment Anything - 图像分割模型
  • Stable Diffusion - 图像生成与修复
  • Diffusers - Hugging Face 扩散模型库
  • OpenCV - 计算机视觉处理

安装指南

前置要求

  • Python 3.10
  • CUDA 支持的 GPU(推荐)或 CPU
  • 足够的显存(根据 SAM 模型大小,Base/Large/Huge 分别需要不同显存)

安装步骤

bash
# 1. 创建 conda 环境
conda create -n inpaint python=3.10
conda activate inpaint

# 2. 克隆仓库
git clone https://github.com/Uminosachi/inpaint-anything.git
cd inpaint-anything

# 3. 安装依赖(CUDA 环境)
pip install -r requirements.txt

# macOS 用户使用以下命令
pip install -r requirements_mac.txt

启动应用

bash
python iasam_app.py

启动后访问 http://127.0.0.1:7860/ 即可使用。

命令行选项

  • --save-seg:保存 SAM 生成的分割图像
  • --offline:离线模式运行
  • --sam-cpu:在 CPU 上运行 SAM(较慢但无需 GPU)

使用教程

1. 下载模型

首次使用时需要下载 SAM 模型:

  • 启动应用后,点击 "Download model" 按钮
  • 支持的模型包括 SAM 2、SAM-HQ、FastSAM、MobileSAM
  • 模型越大效果越好,但需要的显存也越多

2. 基本修复流程

  1. 上传图像:拖拽图像到输入区域
  2. 运行分割:点击 "Run Segment Anything" 按钮
  3. 选择区域:使用画笔工具点击想要修复的区域
  4. 创建蒙版:点击 "Create mask" 生成蒙版
  5. 执行修复:切换到 Inpainting 标签页,配置参数后运行

3. 蒙版调整

  • Expand mask region:扩展蒙版区域
  • Trim mask by sketch:从蒙版中减去手绘区域
  • Add mask by sketch:向蒙版中添加手绘区域

4. 快捷键

  • S 键:全屏模式
  • R 键:重置缩放

修复模型选项

Stable Diffusion 修复

使用 Stable Diffusion 模型进行图像修复,支持:

  • 自定义提示词(Prompt)
  • 负面提示词(Negative Prompt)
  • 迭代步数控制
  • Guidance Scale 调整

LaMA 修复

LaMA(Large Mask Inpainting)适合大面积修复:

  • 无需提示词
  • 专门优化的大蒙版修复

PowerPaint

支持多种修复模式:

  • 文本引导修复
  • 形状引导修复
  • 上下文感知修复

应用场景

  1. 物体移除:从照片中移除不需要的物体或人物
  2. 图像补全:修复老旧照片的破损区域
  3. 内容替换:替换图像中的特定元素
  4. 外绘扩展:扩展图像边界,生成新的内容
  5. 动漫修复:专门针对动漫图像的优化修复

注意事项

  • 使用隐私保护浏览器扩展(如 DuckDuckGo)可能会影响蒙版获取功能
  • 较大的 SAM 模型需要更多显存,如果显存不足请选择较小的模型
  • 首次下载模型需要网络连接,之后可以离线使用

相关项目

项目链接

分享: