IOPaint 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 图像修复(inpainting)工具,能按蒙版擦除照片中的水印、物体、人物,也能调用 Stable Diffusion 对局部内容做替换或重绘。它支持 CPU/GPU 运行,适合需要修图的普通用户,也适合想在本地批量跑修复流水线、或在此基础上二次开发的进阶读者。
快速跑起来:两条命令启动本地服务
安装和启动各一条命令,默认使用 LaMa 擦除模型:
pip3 install iopaint iopaint start --model=lama --device=cpu --port=8080首次启动会自动从 HuggingFace 下载模型文件,可用--model-dir=/path/to/dir指定下载目录。跑成功的标志:终端打印出 FastAPI 的 Running on 日志,浏览器访问 http://localhost:8080 能看到画笔蒙版编辑和模型切换的 Web 界面。
场景实测:三类典型修复任务的前后对比
漫画修复:去除噪点与网点纹
输入一张带噪点、网点纹的旧漫画扫描件,在--model=manga启动的服务中框选需要清理的区域。处理后网点纹消失,线条轮廓变清晰锐利,适合老旧漫画的数字化整理:
大面积水印去除
输入一张被斜向水印大面积覆盖的人物照片,用水彩笔把水印区域涂黑生成蒙版,交给默认 LaMa 模型填充。修复后水印完全消失,人物肤色与背景色过渡连续,没有明显拼贴痕迹:
背景人物消除
输入一张街拍照片,蒙版圈住背景中的路人,擦除后墙面、百叶窗等纹理由模型补全,画面主体更突出。这个任务对遮挡比例高的场景(占画面 1/4 以上)表现稳定:
能力总览:擦除模型、扩散模型与插件一览
| 类别 | 组件 | 适用场景 |
|---|---|---|
| 擦除模型 | LaMa / MAT / FCF / MiGan | 擦除水印、小物体、划痕等缺陷 |
| 擦除模型 | manga / cv2 | 漫画网点清理、传统 OpenCV 补全 |
| 扩散模型 | SD / SDXL inpainting | 复杂纹理区域的语义化重绘 |
| 扩散模型 | PowerPaint | 物体替换、画面向外扩展(outpainting) |
| 扩散模型 | AnyText / Paint-by-Example | 图中文字增改、按示例风格重绘 |
| 分割插件 | interactive-seg(SAM2)/ remove-bg / anime-seg | 自动生成蒙版、抠背景、动漫图分割 |
| 增强插件 | Real-ESRGAN / GFPGAN / RestoreFormer | 4 倍超分、人脸修复 |
各模型对应的启动参数和插件开关,完整清单在 iopaint/const.py 中可以查到。
进阶玩法
GPU 加速与显存不足时的降级参数
有 NVIDIA 显卡时先装 CUDA 版 PyTorch,再用--device=cuda启动:
pip3 install torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/cu118显存不够时按需叠加三个参数:--low-mem(开启 attention slicing 和 VAE tiling)、--cpu-offload(把扩散模型权重卸到内存)、--cpu-textencoder(文本编码器放 CPU)。三者组合后 SD 类模型可以在 6GB 左右显存的卡上运行。
批量去水印:命令行批处理
Web 界面适合单张精修,处理几十张以上图片建议用run子命令直接跑批:
iopaint run --model=lama --device=cpu \ --image=/path/to/image_folder \ --mask=/path/to/mask_folder \ --output=output_dir --concat--mask指向文件夹时要求蒙版与原图同名;指向单个文件时所有图片共用该蒙版。加--concat会把原图、蒙版和结果横向拼成一张对比图,方便抽查质量。
加载本地 SD 模型与前端二次开发
除了 HuggingFace 模型,IOPaint 支持加载本地 ckpt/safetensors 格式的 SD 模型,加载逻辑在 iopaint/model_manager.py 中实现,按该文件的get_sd_model流程可接入自己的 Checkpoint。前端基于 React + TypeScript,入口在 web_app/ 目录,执行npm install && npm run dev即可热更新调试;开发时需创建web_app/.env.local并写入VITE_BACKEND=http://127.0.0.1:8080指向后端地址。
常见报错与避坑
- 模型下载失败或断点重下:网络受限时改用
--model-dir=/path/to/models指向已手动下载的模型目录,并加--local-files-only强制离线加载,跳过 HuggingFace 探测。 - 扩散模型输出整片黑图或绿图:通常是半精度计算在该显卡上溢出,加
--no-half用 fp32 全精度重跑即可。 - CUDA out of memory:先加
--low-mem和--cpu-offload,仍不够就把--device切回cpu,或用run命令逐张处理代替一次性加载全部图片。 - 页面上找不到分割、抠图入口:这类插件默认关闭,必须在启动时显式开启,例如
iopaint start --enable-interactive-seg --interactive-seg-device=cuda,完整开关列表用iopaint start --help查看。 - Apple Silicon 用 mps 启动后部分模型不可用:LaMa、LDL 等 7 个轻量擦除模型不在 MPS 支持列表中,Mac 用户建议直接用
--device=mps启动 SD inpainting 类扩散模型。
适用边界与下一步
IOPaint 的定位是"蒙版 + 模型"的修复流水线:水印、路人、小物体擦除和局部重绘是它的强项;它不做自动检测,蒙版需要你画或用分割插件生成,也不适合对像素级精度要求极高的印刷级修复。如果你的图片分辨率很高,先用 Real-ESRGAN 插件超分再修复,效果更稳定。下一步建议:先读 iopaint/const.py 确认你要用的模型和插件开关,再按场景选择start(Web 精修)或run(批量跑批)两条路线;需要改造界面或接入自己的模型时,从 web_app/ 和 iopaint/model_manager.py 入手。
【免费下载链接】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),仅供参考