【教程】去水印开源工具Lama Cleaner在Windows的安装和使用

一、Lama Cleaner是什么?

Lama Cleaner是一款开源且免费的人工学习图片去水印程序(个人主要学习用途),没有图片分辨率限制(个人使用暂未发现),并且保存的图片质量很高(个人觉得跟原图差不多),还能下载处理后的图片到本地。

项目地址:https://github.com/Sanster/lama-cleaner
原作者:Sanster

截止到目前(2023-03-01)仍然在更新,最新版为0.37.0。

注:作者好像部署了一个在线程序,感兴趣的可以直接在线使用:
https://huggingface.co/spaces/Sanster/Lama-Cleaner-lama
不过在线程序网站经常报错504…(所以我才想本地部署[无奈.jpg])

二、安装

本人直接在windows下使用python的pip安装。

1、安装python环境

python官网:https://www.python.org/

注:这里我选择python3.7.9版(https://www.python.org/downloads/release/python-379/),如下图
在这里插入图片描述
安装时把环境都搞定,包括pippath(环境变量),省事。

注:我试了下python免安装的embed版,然后安装pip,再安装lama-cleaner出现模块ffmpy不能安装的情况,定位问题失败,所以最后直接用了windows安装版。

注:因为3.7.9安装后的pip不是最新版,建议手动更新pip,在cmd执行:python -m pip install --upgrade pip

2、安装torch(可跳过,如果你想用GPU加速建议先安装)

项目文档中有一段:

# In order to use the GPU, install cuda version of pytorch first.
# pip install torch==1.13.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117

启动cmd,定位进入python根目录(python.exe的位置)
执行pip install torch==1.13.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
等待安装完成。

3、安装lama-cleaner

启动cmd,定位进入python根目录(python.exe的位置)
执行pip install lama-cleaner
等待安装完成。

4、下载训练模块(可跳过,但启动lama-cleaner时程序会从github下载,比较慢,建议自行下载)

文件名下载网址(复制并用下载软件添加下载任务)
big-lama.pthttps://github.com/Sanster/models/releases/download/add_big_lama/big-lama.pt
clickseg_pplnet.pthttps://github.com/Sanster/models/releases/download/clickseg_pplnet/clickseg_pplnet.pt

big-lama.ptclickseg_pplnet.pt下载后放到C:\Users\[用户名]\.cache\torch\hub\checkpoints\
比如我操作系统当前用户名是xiaoyao,那么就放到C:\Users\xiaoyao\.cache\torch\hub\checkpoints\

5、启动lama-cleaner程序

启动cmd,定位进入python根目录(python.exe的位置)
执行lama-cleaner --model=lama --device=cpu --port=8080
--model=lama表示后训练模型为lama(建议保持默认)
--device=cpu表示渲染硬件为cpu(如果有nvidia独立显卡的可以考虑用cuda进行渲染加速,即:--device=cuda
--port=8080表示访问端口为8080(一般默认,可自行更改,比如我不想占用端口就改成8088了)

等待启动完成。
启动成功的示例:

D:\developmentEnvironment\python\Python37>lama-cleaner --model=lama --device=cuda --port=8088
- Platform: Windows-10-10.0.22621-SP0
- Python version: 3.7.9
- torch: 1.13.1+cu117
- Pillow: 9.4.0
- diffusers: 0.12.1
- transformers: 4.26.1
- opencv-python: 4.7.0.72
- xformers: N/A
- accelerate: 0.16.0
- lama-cleaner: 0.37.1

2023-03-04 20:09:31.230 | INFO     | lama_cleaner.parse_args:parse_args:141 - Create model cache directory: C:\Users\xiaoyao\.cache
Downloading: "https://github.com/Sanster/models/releases/download/add_big_lama/big-lama.pt" to C:\Users\xiaoyao\.cache\torch\hub\checkpoints\big-lama.pt
100%|██████████████████████████████████████████| 196M/196M [21:30<00:00, 159kB/s]
2023-03-04 20:31:06.067 | INFO     | lama_cleaner.helper:download_model:52 - Download model success, md5: e3aa4aaa15225a33ec84f9f4bc47e500
2023-03-04 20:31:06.069 | INFO     | lama_cleaner.helper:load_jit_model:102 - Loading model from: C:\Users\xiaoyao\.cache\torch\hub\checkpoints\big-lama.pt
Downloading: "https://github.com/Sanster/models/releases/download/clickseg_pplnet/clickseg_pplnet.pt" to C:\Users\xiaoyao\.cache\torch\hub\checkpoints\clickseg_pplnet.pt
100%|███████████████████████████████████████| 12.1M/12.1M [00:06<00:00, 2.01MB/s]
2023-03-04 20:31:14.789 | INFO     | lama_cleaner.helper:download_model:52 - Download model success, md5: 8ca44b6e02bca78f62ec26a3c32376cf
2023-03-04 20:31:14.790 | INFO     | lama_cleaner.helper:load_jit_model:102 - Loading model from: C:\Users\xiaoyao\.cache\torch\hub\checkpoints\clickseg_pplnet.pt
 * Running on http://127.0.0.1:8088/ (Press CTRL+C to quit)

启动成功后会提示网址,直接用浏览器打开即可,如下图:
在这里插入图片描述

操作简述:

点击左上角选择图片,底下Brush是刷子大小,图片可以用鼠标滚轮放大和缩小。
用鼠标在需要清除的水印(或污点?)拖拉覆盖(这个不用我演示了吧…用过ps的都懂),等待程序处理。
效果不满意就撤销,或者继续刷…满意后点下载按钮保存到本地即可。

本文为个人原创,供学习备忘,创作时间2023-03-04,如需转载请说明出处,感谢各位的阅读。

### Python 实现图像去水印的技术方法 #### OpenCV NumPy 库的应用 利用OpenCVNumPy库可以实现基础的图像去水印功能。这些库提供了强大的图像处理能力,使得开发者能够针对特定需求定制化开发解决方案[^1]。 ```python import cv2 import numpy as np def remove_watermark_opencv(image_path, output_path): image = cv2.imread(image_path) # 创建掩模,假设已知水印位置 mask = np.zeros(image.shape[:2], dtype=np.uint8) # 手动标记或自动检测水印区域并填充到mask中... result = cv2.inpaint(image, mask, inpaintRadius=3, flags=cv2.INPAINT_TELEA) cv2.imwrite(output_path, result) ``` 这种方法对于简单的场景可能有效,但对于复杂情况下的表现并不理想[^2]。 #### 基于像素阈值判断法 另一种方式是通过设定RGB通道内的上下限来识别疑似水印部分,并将其替换为白色或其他指定颜色。此方法适用于那些水印具有明显区别特征的情况: ```python import numpy as np def judge_wm(img, low=180, high=250): low_bound = np.array([low, low, low]) high_bound = np.array([high, high, high]) mask = (img > low_bound) & (img < high_bound) \ & (np.abs(img - img.mean(-1, keepdims=True)).sum(-1, keepdims=True) < 10) img[mask] = 255 return img ``` 然而,当水印的颜色与背景非常相似时,上述算法的效果会大打折扣[^4]。 #### Lama Cleaner 开源项目 为了获得更好的效果,特别是面对复杂的实际应用场景,推荐使用专门设计用于高质量图像修复的任务型软件——Lama Cleaner。该工具集成了先进的机器学习模型,在处理各种类型的损坏包括但不限于水印方面表现出色。用户只需几行命令即可完成安装部署过程[^5]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值