IOPaint AI 图像修复:从单图去水印到批量处理,5 分钟出结果
2026/9/5 18:22:35 网站建设 项目流程

IOPaint AI 图像修复:从单图去水印到批量处理,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 等模型工作。你涂抹掩码、点击生成,它就能把照片里的路人、水印、文字用符合上下文的内容补齐。小面积修复几秒出图,复杂场景用 PowerPaint V2 这类扩散模型可重建纹理与光照。

3 分钟跑起来 🚀

git clone https://gitcode.com/GitHub_Trending/io/IOPaint cd IOPaint && pip install -r requirements.txt python main.py start --model power_paint_v2 --device cuda
  1. 第一条命令把 IOPaint 源码拉到本地。
  2. 第二条安装 Python 依赖,包含 PyTorch 与扩散模型相关库。
  3. 第三条启动本地 Web 服务;首次运行会自动下载 PowerPaint V2 模型并缓存。没有独显就把--device cuda换成--device cpu,出图会更慢。

启动后浏览器访问http://127.0.0.1:8080,上传、涂抹、生成都在页面内完成。

它到底怎么工作 🧠

核心机制只有一个:双通道条件输入。运行时模型同时收到两份数据——把涂抹区域抹掉的原始图像,和一张掩码(白色=要重画的位置)。PowerPaint V2 通过 BrushNet 条件注意力,在 UNet 逐步去噪时让掩码区域持续参考周围的图案与光照,而不是像补丁那样直接糊像素。类比一下:就像补墙工不只盯着墙洞,还会看周边墙纸的花纹和光线方向,再决定补什么颜色。

核心实现在 [iopaint/model/power_paint/v2/pipeline_PowerPaint_Brushnet_CA.py],任务提示词的双路插值逻辑就在其中。

三个任务,由浅入深 🎯

任务一:单张产品图去水印

目标:把一张带角标水印的产品图修成可上架的干净图。

  1. 启动服务后上传图片,选画笔工具涂过水印区域,边缘留 2-3 像素余量
  2. 模型选 PowerPaint V2,任务类型选 text-guided
  3. 点生成,几秒到十几秒出结果

关键参数:sd_steps20 起步,sd_guidance_scale用默认 7.5。

避坑:涂得太贴边会残留水印残影;边缘生硬时把sd_mask_blur(默认 11)调大到 20-30 平滑过渡。

任务二:批量清理同位置水印

目标:一个文件夹里几十张同模板图片,用同一套掩码一次跑完。

  1. 原图放images/,掩码放masks/,掩码文件名与原图一致(只有一张掩码时直接传文件路径,全部复用)
  2. 运行批处理命令:
python main.py run --model power_paint_v2 --device cuda --image images/ --mask masks/ --output outputs/
  1. --concat参数可在输出里得到原图+掩码+结果的三联对比图,方便抽查

关键参数:掩码会自动缩放到原图尺寸,灰度值 ≥127 的像素判定为待修区域(见 [iopaint/batch_processing.py])。

避坑:掩码与原图文件名对不上时该图会被直接跳过,先用单张图验证命名对齐再跑全量。

任务三:复杂背景下去除路人

目标:人物占画面大、背后是树叶或栅栏这类复杂纹理时,修得干净且纹理连贯。

  1. 选扩散类模型(PowerPaint V2),任务类型选 object-remove
  2. 涂满人物轮廓,向外扩 5-10%,别只涂边缘一圈
  3. 生成一次后若局部不满意,保持种子不变,缩小范围二次生成

关键参数:大面积掩码sd_steps保持 50,sd_seed固定成同一个值,多轮结果才可比对。

避坑:掩码面积超过画面一半就别一次涂完,分 2-3 次处理,先主体后手脚,能明显减少 AI 生成痕迹。

参数速查表

场景关键参数适用情况
小面积水印/文字sd_steps20,sd_guidance_scale7.5,任务 text-guided占画面 10% 以内的角标、logo、文字
中面积去物sd_steps50,sd_mask_blur11,任务 object-remove路人、杂物,占画面 10%-50%
大面积复杂背景sd_steps50,固定sd_seed,分多次涂抹占画面 50% 以上、背景纹理复杂
高分辨率原图hd_strategyCrop,触发阈值 800,边距 128lama 等擦除模型处理大图,自动裁剪加速

翻车了?对症修复 🩹

现象:修复区域边缘有一条硬分界线。原因:掩码边缘太锐利,生成内容和原图没融合。解决:把sd_mask_blur从默认 11 调到 20-30,让边缘羽化。

现象:生成结果整张黑屏或泛绿。原因:半精度(fp16)推理在部分显卡上溢出。解决:启动时加--no-half改用全精度,代价是速度略降。

现象:显存不足报错,或 CPU 跑几分钟没动静。原因:扩散模型权重占显存大。解决:加--low_mem开启注意力切片和 VAE 分块,或加--cpu_offload把权重卸载到内存;显存 4GB 以下建议降到 1024px 以内再跑。

现象:批量任务日志里提示mask for xxx not found,部分图没处理。原因:掩码文件名和原图不一致。解决:按进度日志核对文件名,把掩码重命名对齐,或改用单掩码文件模式统一套用。

到这里,你已经有了一条从单张涂抹到整批出图的完整修复链路。下一步可以:

  • 换默认的 lama 模型,体验秒级小面积修复
  • 启动参数加--enable-interactive_seg,用 SAM 模型自动圈出人物轮廓
  • 完整参数与插件(去背景、超分)说明见官方文档 README.md

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询