IOPaint:3 条命令就能跑起来的免费 AI 图像修复与去水印工具
【免费下载链接】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 图像修复工具:把照片里不想要的水印、路人、文字涂黑,它就能把那块区域补成自然的内容,还能基于 Stable Diffusion 做物体替换和外扩画面。下面这篇经验帖讲三件事:怎么最快把它跑起来、模型怎么挑、以及新手最容易踩的几个坑。
三条命令完成 IOPaint 安装与启动
IOPaint 支持 CPU、GPU 和 Apple Silicon,最简单的路径是直接走 pip。模型权重会在首次启动时自动下载,所以第一次启动会卡一会儿,下载目录可以用--model-dir参数自定义,之后每次启动就快了。
pip3 install iopaint iopaint start --model=lama --device=cpu --port=8080命令跑完,浏览器打开 http://localhost:8080 就是一个编辑界面。左边上传图片,用画笔涂黑要处理的区域——这层黑白标记就是遮罩(mask),它告诉模型"只改这里,别的地方不许动"。点执行,右边出结果。整个流程没有注册、没有上传到第三方服务器,图片就在你自己的机器上。
LaMa 默认模型:涂个遮罩就能出效果
默认的 LaMa 属于"擦除型"模型,它不生成新内容,只负责把挖掉的洞填平,所以快,CPU 上也能用。上手就是三步:上传图片,把水印、路人、文字刷进遮罩,执行。
上面这种铺满画面的水印,LaMa 通常一次就能清干净,纹理衔接也不留明显接缝。同样的操作可以移物体——把吊灯、电线杆、logo 刷进遮罩再执行:
处理漫画和二次元图时,可以换成专门微调过的 AnimeLaMa 变体,线稿和网点背景不容易被画花:
LaMa、SD/SDXL、ControlNet 模型怎么选
仓库里内置了二十多个模型,实现都在 iopaint/model/ 目录下。按用途粗分两类,选型基本就跟着这个分类走:
- 擦除类(LaMa、AnimeLaMa、MAT、ZITS 等):只删不补新东西,秒级出图,CPU 够用。你的任务如果只是"去掉某个东西",到这里就够了,没必要往下走。
- 扩散类(SD1.5、SDXL、PowerPaint、BrushNet、AnyText 等):基于 Stable Diffusion,既能补洞也能凭空生成内容——换一件家具、重写一段文字、或者外扩(outpainting,把画面延伸出原图边框)。
两类之间主要差在成本。扩散模型要写提示词,推理慢一两个数量级,还得有 GPU;SDXL 比 SD1.5 分辨率更高、细节更好,但模型更大,显存要求也更高。ControlNet 则是在生成时用原图的构图或线条去约束模型,结果不会"跑偏",改图改得很克制的场景值得开。
一句话决策:只删就用 LaMa 或 AnimeLaMa;要换、要改、要扩就用扩散模型,显存够再上 SDXL。
进阶能力:批量处理与交互式分割
命令行批量处理
图一多,网页上一张张点就慢了。iopaint run支持文件夹级别的批量修复:--image指向输入图片目录,--mask指向遮罩目录,按文件名自动配对;如果--mask是单个文件,则所有图片共用这张遮罩——比如一整批商品图去同一个位置的水印。
iopaint run --model=lama --device=cpu \ --image=/path/to/image_folder \ --mask=/path/to/mask_folder \ --output=output_dir交互式分割
有些目标画笔很难涂准,发丝边缘、斜跨画面的线缆就是。开启基于 Segment Anything 的交互式分割插件后,在图上点一下就能自动抠出目标轮廓,直接拿来当遮罩:
iopaint start --enable-interactive-seg --interactive-seg-device=cuda插件目录下还有人脸修复(GFPGAN)和超分辨率(RealESRGAN)等,见 iopaint/plugins/,都是加个启动参数就能启用,适合低清人像修完遮罩后再补一手。
常见坑与避坑清单
- 首次启动慢是正常的:启动时自动下载模型权重,别以为卡死了。下载完有本地缓存,
--model-dir可改存放位置。 - GPU 要装对应版本的 PyTorch:只传
--device=cuda不够,要先装 cu118 版的 torch,否则会报错或退回 CPU 慢慢跑。 - 遮罩宁大勿小:比目标边缘多刷一圈,融合效果更好;遮罩漏刷会留残影,这是效果差的最常见原因。
- 扩散类模型吃显存:SDXL、PowerPaint 在低显存机器上会很吃力,显存紧张就退回 SD1.5,或者干脆只用 LaMa。
容器化部署
需要在服务器长期跑,可以用仓库自带的 GPU 版 Dockerfile 构建,命令很直接:
docker build -t iopaint -f docker/GPUDockerfile . docker run --gpus all -p 8080:8080 iopaint下一步建议:先用--model=lama挑一两张自己手边的带水印图练手,熟悉遮罩的涂法;哪张图效果不满意,再换--model=sdxl加提示词对比一次,你对"删"和"改"两条路线的边界感会建立得非常快。
【免费下载链接】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),仅供参考