PC端移除图片水印的几种方式以及批量移除

移除图片水印是一个很常见的需求,我们经常会下载到带有APP水印或者AI生成水印的图片,下面介绍几种我个人用到的去除图片水印方式。

Windows 11自带的图片应用

使用方式很简单,只要你的系统是Window11,只需要右键-使用照片打开,然后点击左上角的编辑,点击《擦除》工具,涂抹掉想要删除的水印,最后点击保存就OK了。

打开图片

编辑图片

Github上的IOPaint

如果你的系统不是windows或者比windows11更低的版本,可以下载IOPaint,支持多平台。

我测试了两种安装方式,一种是python安装,一种是docker安装,都很简单快速。

python 安装

# In order to use GPU, install cuda version of pytorch first.
# pip3 install torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/cu118
# AMD GPU users, please utilize the following command, only works on linux, as pytorch is not yet supported on Windows with ROCm.
# pip3 install torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/rocm5.6

pip3 install iopaint
iopaint start --model=lama --device=cpu --port=8080

docker-compose 安装

version: '3.8'

services:
  lama-cleaner:
    image: cwq1913/lama-cleaner:cpu-1.2.5
    container_name: lama-cleaner
    ports:
      - "8080:8080"
    volumes:
      - type: bind
        source: ./cache   # Windows 主机上的本地文件夹路径
        target: /root/.cache       # 容器内的目标挂载路径
    command: ["lama-cleaner", "--device=cpu", "--port=8080", "--host=0.0.0.0"]
    restart: unless-stopped

windows安装

下载安装程序,解压包,你会得到三个bat文件

win_setup.bat:用于首次安装依赖项

win_config.bat:启动 gradio 参数配置界面

win_update.bat:在需要更新 iopaint 版本时执行

安装成功后,就可以在浏览器中打开 http://localhost:8080 来使用了,使用方式跟方法1几乎一样:打开图片,涂抹想要消除的地方然后等待生效后保存。

打开IOPaint

批量处理图片

如果你有很多图片需要处理,同样可以使用IOPaint来实现,首先需要安装python版本。

安装python版本

pip3 install iopaint
iopaint start --model=lama --device=cpu --port=8080

输入命令检测是否安装成功

iopaint --help

批量处理图片场景

我的批量去除图片场景是 用AI生成不同分辨率的图片,一次性批量去除所有图片的水印,这些图片的共同点是在相同分辨率下的水印位置是固定的。处理方法是以下步骤:

处理步骤

  1. 上传图片到IOPaint,手动消除水印,然后在设置里选择Download Mask,就会获得带有水印位置的图片。每个分辨率都需要处理一遍。

  2. 编写代码,批量获取某个文件夹下的所有图片,根据分辨率比例获取步骤1拿到的水印图片,然后使用命令输出到新的文件夹。

  3. (可选)根据文件名区分不同平台的图片,比如不同AI生成的图片水印位置是不同的,根据不同平台和不同分辨率获取水印图片。

当然如果一批次的图片水印位置是固定的,可以用更简单的指令实现:

## 分别输入图片路径、水印路径、输出路径
iopaint run --model=lama --device=cpu \
--image=/path/to/image_folder \
--mask=/path/to/mask_folder \
--output=output_dir

如果有人感兴趣的话,我会把代码放在github上,其实逻辑很简单,遍历某个文件夹下的所有图片,判断分辨率获取水印图片,然后使用iopaint的指令处理图片。可以把这个需求告诉AI轻松实现。

Licensed under CC BY-NC-SA 4.0
加载中...
感谢Jimmy 隐私政策