news 2026/9/6 17:03:28

IOPaint命令行批量修复:一条命令清掉整个目录的水印图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
IOPaint命令行批量修复:一条命令清掉整个目录的水印图

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

手工擦掉一张图的水印无所谓,几百张图就是重复劳动。IOPaint 是一款开源 AI 图片修复工具,它的命令行run子命令可以整目录批量修图:把图片目录、掩码目录、输出目录指给它,剩下的它自己干。下面从跑通一条命令开始,讲到整个目录的批处理。

先跑通:最短的那条命令

先装环境。拉代码、装依赖,模型权重会在首次运行时自动下载,不用单独操作:

git clone https://gitcode.com/GitHub_Trending/io/IOPaint cd IOPaint pip install -r requirements.txt

装好后,处理单张图只需要这条命令:

python -m iopaint run --model lama --device cpu \ --image assets/watermark.jpg --mask masks/watermark.png \ --output out/ --concat

其中masks/watermark.png是你自己画的掩码图——灰色底上,白色部分就是要擦掉的区域。掩码是整篇的主角,先认一下这张待处理的素材(仓库自带示例):

--concat会把"原图 + 掩码 + 结果"横向拼成一张图存出来,核对效果一眼就能看出来。这是它生成的同款去水印效果:

参数不多,逐个说:

  • --model:修复模型,默认lama,可换zitsmanga或任意扩散模型
  • --devicecpucuda
  • --image/--mask:文件或目录,规则见下一节
  • --output:输出文件或目录,会自动创建
  • --concat:拼对比图,可选

命令入口在 iopaint/cli.py,模型找不到时会自动去下载,不用手动准备。

掩码难画吗?其实就两条命名规则

批量处理能不能跑起来,八成看掩码怎么放。规则就两条:

  1. --mask传目录:掩码必须和原图同名(如001.jpg001.png),程序按文件名前缀一一配对;缺掩码的图片会跳过并在日志里打印,不会中断整批。
  2. --mask传单个文件:同一张掩码套用到所有原图。商品图水印位置固定时,画一次就够。

掩码尺寸不用操心,大小不一致会自动缩放到原图尺寸;灰度值以 127 为界二值化,白色即修复区。也就是说,用任何画图工具涂出来的灰度图都能直接当掩码用。这套配对逻辑在 iopaint/batch_processing.py 里,百来行,值得扫一眼。

输入换成目录,命令几乎不用改

单图跑通后,把--image--mask换成两个目录就行:

python -m iopaint run --model lama --device cuda \ --image ./input/ --mask ./masks/ --output ./out/

输出目录里每张图按原名保存为.png。进度条会实时显示"第几张/共几张",中途不中断。

以"批量移除照片里的路人"为例,原图背景里站着一位过路人:

跑完批量任务后,同一位置的结果:

两个目录的文件一一对齐,整批就自动对齐了——这就是"整千张图"场景下的核心心法:把命名统一,剩下交给命令

图片太大?用一个 JSON 文件收住所有参数

高分辨率图直接喂给修复模型,显存和耗时都会难看。run命令的调优入口不是命令行参数,而是--config指向的 JSON 文件。先导出默认配置:

python -c "import json; from iopaint.schema import InpaintRequest; \ print(json.dumps(InpaintRequest().model_dump(), indent=2, ensure_ascii=False))" > config.json

然后按需改两个键,跑批时加--config config.json

  • hd_strategy:擦除类模型(lama 等)处理大图的前置策略,默认CROP分块裁切,也可改RESIZE配合hd_strategy_resize_limit先缩小再修
  • ldm_stepsldm模型的推理步数,步数越多质量越高、越慢

字段全表在 iopaint/schema.py 的InpaintRequest里。另外注意:--low-mem--cpu-offload这类省显存开关属于start(Web 界面)命令,run批处理走的是配置文件,别在批处理命令里白找。

按场景挑模型,别拍脑袋

  • 去水印、去杂物(默认选它)lama,速度快、大面积遮盖效果好,实现见 iopaint/model/lama.py
  • 需要保留更多纹理细节zits,修复更精细但更慢,见 iopaint/model/zits.py
  • 动漫、插画类素材manga,对线稿和色块的还原更稳:

  • 要"替换"而不只是"擦掉":把--model换成任意扩散模型名(如runwayml/stable-diffusion-inpainting),配合配置里的prompt字段即可。

今晚就能做的一步

挑一小组最头疼的图(十张以内),把原图丢进input/、同名的掩码丢进masks/,然后跑上面那条目录命令。十分钟内你会得到整个out/目录的结果——跑通了,再往里面倒进几百张。

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 17:02:34

3 条命令跑起来:git-rewrite-commits 用 AI 自动改写 Git 提交信息

3 条命令跑起来:git-rewrite-commits 用 AI 自动改写 Git 提交信息 【免费下载链接】neko A self hosted virtual browser that runs in docker and uses WebRTC. 项目地址: https://gitcode.com/GitHub_Trending/ne/neko 打开 git log 翻历史,满…

作者头像 李华
网站建设 2026/9/6 17:00:19

三菱Q系列PLC Socket通讯配置与梯形图实现详解

简介:三菱Q系列PLC之间SOCKET通讯详解是一份面向工业自动化工程师与PLC开发者的技术文档,围绕Q03UDE型号PLC间的以太网通信展开,系统梳理从SOCKET概念到实际落地的完整流程。文档先说明SOCKET作为TCP/IP封装接口的作用,再给出所需…

作者头像 李华
网站建设 2026/9/6 16:58:11

DeepSpeed-Chat:单卡训 13B RLHF 模型,1 条命令跑完三阶段

DeepSpeed-Chat:单卡训 13B RLHF 模型,1 条命令跑完三阶段 【免费下载链接】DeepSpeed DeepSpeed is a deep learning optimization library that makes distributed training and inference easy, efficient, and effective. 项目地址: https://gitco…

作者头像 李华
网站建设 2026/9/6 16:55:35

圆盘拉伸机直流双闭环调速系统设计:负载计算、参数整定与调试

简介:一份围绕二十四寸圆盘拉伸机直流调速系统的运动控制课程设计文档,面向自动化、电气工程及相关专业学生,用于《运动控制系统》课程设计中的调速方案论证、参数计算与设计报告撰写。文档从设计目的、内容与要求出发,以双闭环直…

作者头像 李华
网站建设 2026/9/6 16:49:15

如何一条命令查清进程启动链:witr 进程溯源工具选型指南

如何一条命令查清进程启动链:witr 进程溯源工具选型指南 【免费下载链接】witr Why is this running? Trace any process, port, container, or file back to what started it - CLI TUI. 项目地址: https://gitcode.com/GitHub_Trending/wi/witr 端口被占…

作者头像 李华