IOPaint 图像修复实战指南:5分钟上手去除物体与水印
【免费下载链接】IOPaintImage inpainting tool powered by SOTA AI Model. Remove any unwanted object, defect, people from your pictures or erase and replace(powered by stable diffusion) any thing on your pictures.项目地址: https://gitcode.com/GitHub_Trending/io/IOPaint
IOPaint 是一款免费开源的 AI 图像修复工具。它用 LaMa、Stable Diffusion 等模型,帮你移除照片里的物体、人物、水印,还能重画画面内容。
一堆产品图被图库水印盖满,逐张修图让人头疼。如果刷一下水印区域就能自动补全,那就是它要做的事。
5分钟上手:一条命令去掉照片里的物体
你只需要两条命令:
pip3 install iopaint iopaint start --model=lama --device=cpu --port=8080第一条安装程序,第二条启动服务,模型用内置的 LaMa,在 CPU 上运行。
你做了什么、项目给了什么反馈:第一条命令装完,第二条命令会打印环境信息,然后自动下载 LaMa 模型。模型默认存到用户目录的 .cache 下,可用--model-dir换位置。下载完成后服务就绪,浏览器打开 http://localhost:8080 就是编辑页面。
在页面里上传一张照片,刷出要删掉的区域,点生成,背景会被自然补上。
💡 提示:想用 GPU 加速,先装 CUDA 版 PyTorch,再用
--device=cuda启动。具体版本以 README.md 安装部分为准。
装、启动、刷笔、看效果,从零到第一张修复图只要五分钟。
核心功能拆解:擦除和替换怎么选
IOPaint 把图像编辑分成两类:擦除和替换。
擦除:LaMa 处理水印、物体和文字
它能做什么:刷掉指定区域,用周围背景补全。水印、路人、小物件都是它的强项。
怎么操作:网页端默认就是--model=lama。图片上如果是固定位置的水印,可以存一张遮罩反复使用。漫画图还有专门训练的 anime-lama 模型。
效果如何:小面积擦除成功率高,背景纹理基本连续。上面两张就是 lama 模型的实拍输出。
替换与外扩:Stable Diffusion 重画内容
它能做什么:不只是补背景,而是按文字描述生成新内容。可以把画面里的旧物件换成新样式,也可以向外扩展画面边界(外扩)。
怎么操作:把--model换成任意 Stable Diffusion 模型 ID,官方内置推荐 PowerPaint。模型首次使用会自动下载,但显存有要求。
两类模型分工不同,建议你这样选:
| 对比项 | 擦除模型(LaMa) | 扩散模型(SD/PowerPaint) |
|---|---|---|
| 作用 | 删内容、补背景 | 按提示词重画新内容 |
| 速度 | 快,秒级出图 | 慢,需要显存 |
| 硬件 | CPU 可跑 | 强烈建议 GPU |
| 典型场景 | 水印、小物体、文字 | 物体替换、外扩补边 |
插件:像装 App 一样加功能
项目还内置了一批插件:交互式分割(点击选物体)、GFPGAN 人脸修复、RealESRGAN 超分辨率、RemoveBG 抠背景。它们默认关闭,启动时加参数才启用:
iopaint start --enable-interactive-seg --interactive-seg-device=cuda开了交互式分割后,你在页面上点一下物体,它就自动圈出边界,生成精准遮罩,再交给 LaMa 擦除。
擦除管"删掉",替换管"换掉",插件管"收尾"。
设计思路:为什么新模型能像 USB 一样插进来
项目把所有模型代码放在 iopaint/model/ 目录,每个模型一个文件。比如 iopaint/model/lama.py,整个 LaMa 接入就百来行。
关键在 iopaint/model/base.py 里的抽象基类。所有模型只需实现两个方法:一个加载模型,一个执行推理。大图裁剪、边缘填充这些通用逻辑,基类统一处理。
这像 USB 标准:系统定义接口,符合规范的设备插上就能用。中间的 iopaint/model_manager.py 就是那个接口,它按名字找模型,没下载就自动下载。
插件同理。iopaint/plugins/base_plugin.py 定义了 gen_image 和 gen_mask 两个方法。每个插件独立存在,启动时加--enable-xxx才生效,不拖累核心。
前端是 React 加 Vite,代码在 web_app/ 目录;后端是 FastAPI 服务,两边靠 HTTP 接口通信。
模型是"标准化引擎",接口是"USB 插槽",新模型不用改现有代码。
进阶与边界:批量处理怎么配,它会在哪里翻车
命令行批量处理怎么配
处理大量图片,用iopaint run:
iopaint run --model=lama --device=cpu \ --image=/path/to/image_folder \ --mask=/path/to/mask_folder \ --output=output_dir--image放原图文件夹,--mask放遮罩文件夹或单张遮罩,--output是输出目录。处理逻辑在 iopaint/batch_processing.py。
💡 提示:批量有个容易踩的坑。遮罩和原图的文件名(不含扩展名)必须一致,不一致的图会被跳过。遮罩尺寸与原图不符时,程序会自动缩放,并按 127 阈值二值化。
假设 100 张产品图的水印都在固定位置,你只需准备一张遮罩。--mask指向这个单文件时,整个文件夹都会用它处理,进度条实时显示。
性能调优与部署
显存不够时,启动加--low-mem切分注意力计算。内存再紧张就加--cpu-offload,把模型权重挪到内存。出图发黑发绿时加--no-half,改用全精度。大图有两种处理策略:CROP 只裁剪遮罩所在区域,RESIZE 先缩小处理完再放大回去。
部署方面,仓库自带 docker/GPUDockerfile 和 docker/CPUDockerfile,构建镜像后跑容器即可。
它不擅长什么
开始前先认清边界:
- 擦除模型只会"补",不理解内容,大面积擦除容易糊。
- 扩散模型在 CPU 上很慢,大批量不推荐。
- 文字重画需要额外下载 AnyText 模型,不在默认包里。
- 效果高度依赖遮罩精度,刷错了效果就打折。
- 不支持视频,逐帧处理得自己想办法。
批量给了它生产力,认清边界才不会踩坑。
收束与行动:5步开始你的AI修复之旅
- 第1步:
pip3 install iopaint安装并启动,打开网页界面。 - 第2步:先用 LaMa 擦除,刷一个水印看效果。
- 第3步:换扩散模型,试一次替换或外扩。
- 第4步:固定批量流程,用
iopaint run加遮罩批量出图。 - 第5步:想改代码或加功能,克隆源码阅读:
git clone https://gitcode.com/GitHub_Trending/io/IOPaint
工具免费,数据留在你自己的机器上。先从删掉那个碍眼的水印开始吧。
【免费下载链接】IOPaintImage inpainting tool powered by SOTA AI Model. Remove any unwanted object, defect, people from your pictures or erase and replace(powered by stable diffusion) any thing on your pictures.项目地址: https://gitcode.com/GitHub_Trending/io/IOPaint
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考