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
拍完照片总想删掉点什么:闯入镜头的路人、碍眼的商品吊牌、压在图上的水印,还有扫描版漫画里的台词气泡。这些用 Photoshop 抠起来费时费力,而 IOPaint 是一个免费开源的 AI 图像修复工具——你只需要在图片上涂抹一下"不想要的地方",它就能自动把那块区域补全。它既能用 LaMa 这类擦除模型直接抹掉痕迹,也能调用 Stable Diffusion 系列(PowerPaint V2、BrushNet 等)把被覆盖的区域"重画"出来,全程本地运行,CPU 也能跑。
🚀 快速上手:几分钟跑起来
前提是装好 Python 3.8 以上。如果你用 NVIDIA 显卡,建议先装 CUDA 版 PyTorch,速度会快很多。然后执行:
# 有 NVIDIA 显卡可先装 CUDA 版 pytorch: # pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu118 pip3 install iopaint iopaint start --model=lama --device=cpu --port=8080启动后浏览器打开http://localhost:8080即可。首次使用会自动下载所选模型,用--model-dir可以指定模型存放目录。
Web 界面里的操作流程固定为三步:上传图片 → 用画笔涂白"要修掉的区域"(涂出来的白点就是修复范围)→ 选模型点生成。想要不用网页、批量处理一整文件夹的图,用命令行就行:
iopaint run --model=lama --device=cpu \ --image=/path/to/image_folder \ --mask=/path/to/mask_folder \ --output=output_dir--mask既可以传文件夹(每张掩码与原图同名),也可以传单张掩码文件让所有图复用同一块修复区域。
🎯 场景实战:常见修复任务怎么做
去除水印
选默认的lama模型,把图上的水印、台标、重复 logo 全部涂白,生成速度很快,适合大批量清理图库。下面的原图铺满了 stock 水印和站点 logo:
修复后人物、车窗、座椅纹理都补得自然,水印区域和原图色调一致:
移除路人
合照、自拍里最常遇到的就是"背景里多了个人"。用扩散类模型(如 stable-diffusion-inpainting)涂抹路人,模型会参考周围的地板、窗帘和墙面把背景重画出来:
路人位置占的画面比例不小,补出的百叶窗和地板反光都跟原图衔接得上,这就是扩散模型相比纯擦除的优势:它不是"糊一块",而是"重新画一块"。
移除多余物体
婚礼棚顶的灯笼只留几个、货架上多余的物件想删掉,同样适用。物体边缘规则、背景重复度高时,擦除类模型就能胜任:
被移除的灯笼位置用木梁和屋顶斜板补齐,没有留下涂抹痕迹。
清除漫画文字与台词气泡
扫描版漫画想做成无台词底稿,manga模型是专门为此训练的,把文字框和气泡涂白即可:
气泡覆盖的云朵、海浪线条都被合理补回,比手工仿色线快得多。
🔍 原理速览:它是怎么把图"补"上的
掩码:给 AI 的一份"待办清单"
你在界面上涂出的白色区域叫掩码(mask),相当于告诉模型"只动这里,其他地方别碰"。白色是要修的区域,黑色是保留的原图。所以涂得越准,修得越稳;边缘可以用工具栏的"扩散/收缩"微调,或者调大sd_mask_blur让边界虚化一点,过渡更柔和。
两类修复模型:填空 vs 重画
IOPaint 内置的模型分两派(列表见 iopaint/model/):
- 擦除类(lama、mat、fcf、manga、cv2 等):只做"填空",不依赖文字提示,速度快、几乎不吃显存,适合删水印、去杂物;
- 扩散类(SD/SDXL inpainting、PowerPaint V2、BrushNet、AnyText 等):会参考你的文字提示"重画"掩码区域,适合大面积缺失、需要合理想象背景的场景,速度慢但质量更高。
PowerPaint V2:告诉模型"该盯着哪块区域修"
在 iopaint/model/power_paint/v2/ 里,PowerPaint V2 在稳定的 UNet 主干旁边加了一条 BrushNet 条件网络:原图和掩码先由它读一遍,生成各尺度的提示信号,再层层"叮嘱"主干网络——修的时候重点看哪、哪里必须保持原样。它内置了 object-remove、text-guided、outpainting 等任务模式,其中fitting_degree(默认 1.0)控制生成内容贴合掩码形状的程度:想让新物体严丝合缝地待在你涂的框里就拉满,想让 AI 自由发挥就调低。
📋 参数速查:常用项怎么调
以下默认值均来自 iopaint/schema.py,按需修改即可:
| 参数 | 默认值 | 适用场景 |
|---|---|---|
--model | lama | 默认擦除模型;换powerpaint_v2、brushnet、SD 系列做重画类修复 |
sd_steps | 50 | 扩散模型去噪步数,调高更精细但更慢 |
sd_guidance_scale | 7.5 | 文字提示的"听话程度",太高画面容易过饱和 |
sd_sampler | uni_pc | 采样器,可选 ddim、lms、DPM++ 2M 等 |
sd_seed | 42 | 固定结果用固定种子,-1 为随机 |
sd_mask_blur | 11 | 掩码边缘模糊量,越大与原图融合越顺 |
hd_strategy | Crop | 擦除模型的高清策略:大图先裁修再贴回 |
hd_strategy_crop_margin | 128 | Crop 模式下的裁切边距 |
fitting_degree | 1.0 | PowerPaint V2 贴合掩码形状的程度 |
--low-mem/--cpu-offload | 关闭 | 显存吃紧时开启,省显存换速度 |
--no-half | 关闭 | 结果总是全黑/全绿时,改用全精度运行 |
💡 常见问题与进阶提示
- 显存不够?依次尝试
--low-mem(注意力切片+VAE 分块)、--cpu-offload(把权重放内存)、--cpu-textencoder(文本编码器挪到 CPU),三个开关可叠加。 - 想让 AI 帮你圈选而不是手涂?加
--enable-interactive-seg --interactive-seg-model=sam2_1_tiny,用 Segment Anything 点两下就能选中整个物体,模型越大越准也越慢。 - 想修人脸、放大图?启动时加
--enable-gfpgan或--enable-restoreformer做人脸修复,加--enable-realesrgan做超分辨率,两者搭配可以同时增强背景。 - 断网环境?模型下到本地后加
--local-files-only,加载时不再访问外网。
收尾
IOPaint 把"擦除、重画、扩边"三类修复打包成一个本地 Web 工具:小修小补用 lama 几秒钟出图,大面积内容重建换扩散模型慢慢磨。删水印、去路人、清漫画台词、批量处理文件夹这些日常需求,装完十几分钟就能跑起来,值得放进你的修图工具箱。
【免费下载链接】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),仅供参考