零基础玩转Inpaint-Anything:用SAM+LaMa打造专属图像修复工具
还在为图片中的瑕疵烦恼?想给老照片去除路人却不会PS?本文带你30分钟搭建AI图像修复系统,无需专业技能,只需点击鼠标即可实现:
✅ 一键移除照片中多余物体
✅ 文字描述生成新内容填充画面
✅ 视频/3D场景智能修复
读完本文你将获得:
- 从0到1部署Inpaint-Anything全功能环境
- 掌握SAM+LaMa模型组合的核心原理
- 定制化开发专属图像修复功能
项目架构速览
Inpaint-Anything通过模块化设计将图像分割与修复能力完美结合,核心框架如下:
核心模块组成:
- Segment Anything (SAM):Meta开源的图像分割模型,点击即可精准提取任意物体
- LaMa:高效图像修复模型,完美填充分割后的区域
- Stable Diffusion:文本引导的图像生成,支持创意内容填充
- 工具脚本集:一键式启动脚本,涵盖移除/填充/替换等功能
环境搭建指南
1. 准备基础环境
# 克隆项目代码库
git clone https://gitcode.com/gh_mirrors/in/Inpaint-Anything
cd Inpaint-Anything
# 安装核心依赖
python -m pip install torch torchvision torchaudio
python -m pip install -e segment_anything
python -m pip install -r lama/requirements.txt
⚠️ Windows用户需使用lama_requirements_windows.txt替代Linux依赖文件
2. 模型权重配置
将以下模型文件下载后放入./pretrained_models目录:
- SAM模型:sam_vit_h_4b8939.pth
- LaMa模型:big-lama
- (可选)移动端轻量化模型:mobile_sam.pt
核心功能实战
一键移除物体(Remove Anything)
只需点击目标物体,系统将自动完成分割与修复:
执行命令:
python remove_anything.py \
--input_img example/remove-anything/dog.jpg \
--point_coords 200 450 \ # 点击坐标
--point_labels 1 \ # 1表示前景物体
--output_dir ./results
关键参数说明:
--dilate_kernel_size 15:调整边缘膨胀程度,优化分割效果--coords_type click:启用图形界面点击选择(需显示器支持)
文本引导填充(Fill Anything)
输入文字描述即可生成指定内容填充画面:
使用示例:
python fill_anything.py \
--input_img example/fill-anything/sample1.png \
--point_coords 750 500 \
--text_prompt "a teddy bear on a bench" \ # 文本描述
--dilate_kernel_size 50
查看更多填充效果:fill-anything示例集
视频/3D场景修复
项目已支持动态内容修复,例如从视频中移除运动物体:
启动视频修复:
bash script/remove_anything_video.sh
自定义开发指南
1. 模型替换与优化
修改sam_segment.py可更换分割模型,例如集成MobileSAM实现移动端部署:
# sam_segment.py 关键代码片段
sam_model_type = "vit_t" # 切换为轻量级模型
sam_ckpt = "./weights/mobile_sam.pt" # 指定移动端模型权重
2. 修复算法调优
调整LaMa模型配置文件lama/configs/prediction/default.yaml优化修复效果:
# 增加上下文感知能力
model:
arch: big_lama
encoder:
type: vgg19
pretrained: true
decoder:
type: fpn
features: 256
3. 新增功能模块
参考replace_anything.py实现自定义功能,核心步骤:
- 扩展SAM分割逻辑
- 添加新的修复策略
- 编写对应的工具脚本
应用场景展示
| 应用场景 | 原始图像 | 处理效果 |
|---|---|---|
| 旅游照片优化 | ![]() | ![]() |
| 商品图片编辑 | ![]() | ![]() |
| 老照片修复 | ![]() | ![]() |
总结与扩展
Inpaint-Anything通过SAM+LaMa的黄金组合,实现了"点击即分割,分割即修复"的流畅体验。项目提供的本地Web UI更适合非技术用户快速上手。
进阶探索方向:
立即动手尝试,用AI魔法解锁图像编辑新可能!如有开发疑问,欢迎查阅项目完整文档或提交Issue。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考















