零基础玩转Inpaint-Anything:用SAM+LaMa打造专属图像修复工具

零基础玩转Inpaint-Anything:用SAM+LaMa打造专属图像修复工具

【免费下载链接】Inpaint-Anything Inpaint anything using Segment Anything and inpainting models. 【免费下载链接】Inpaint-Anything 项目地址: https://gitcode.com/gh_mirrors/in/Inpaint-Anything

还在为图片中的瑕疵烦恼?想给老照片去除路人却不会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目录:

核心功能实战

一键移除物体(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实现自定义功能,核心步骤:

  1. 扩展SAM分割逻辑
  2. 添加新的修复策略
  3. 编写对应的工具脚本

应用场景展示

应用场景原始图像处理效果
旅游照片优化原图像修复后
商品图片编辑原图像修复后
老照片修复原图像修复后

总结与扩展

Inpaint-Anything通过SAM+LaMa的黄金组合,实现了"点击即分割,分割即修复"的流畅体验。项目提供的本地Web UI更适合非技术用户快速上手。

进阶探索方向

立即动手尝试,用AI魔法解锁图像编辑新可能!如有开发疑问,欢迎查阅项目完整文档或提交Issue。

【免费下载链接】Inpaint-Anything Inpaint anything using Segment Anything and inpainting models. 【免费下载链接】Inpaint-Anything 项目地址: https://gitcode.com/gh_mirrors/in/Inpaint-Anything

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值