python抠图(去水印)开源库lama-cleaner入门应用实践

2023-09-18 16:27:38

1. 关于 Lama Cleaner

Lama Cleaner 是由 SOTA AI 模型提供支持的免费开源图像修复工具。可以从图片中移除任何不需要的物体、缺陷和人,或者擦除并替换(powered by stable diffusion)图片上的任何东西。

特征:

  • 完全免费开源,完全自托管,支持CPU & GPU & M1/2
  • Windows 一键安装程序
  • 本机 macOS 应用程序
  • 多种SOTA AI模型
    • 擦除模型:LaMa/LDM/ZITS/MAT/FcF/Manga
    • 擦除和替换模型:稳定扩散/绘制示例
  • 后期处理插件:
    • RemoveBG:删除图像背景
    • RealESRGAN:超分辨率
    • GFPGAN:面部恢复
    • RestoreFormer:面部修复
    • 分割任何东西:准确快速的交互式对象分割
  • 文件管理器:方便地浏览您的图片并将它们直接保存到输出目录。

插件
在图像清洗的后处理中,除了擦除之外,还经常使用面部修复或超分辨率等算法。现在您可以直接在 Lama Cleaner 中使用它们。启动Lama Cleaner服务时,您可以通过命令行参数启用插件。启用的插件将在左上角显示。

开源地址:https://github.com/Sanster/lama-cleaner

2. 擦除模型

Lama Cleaner默认擦除模型为LaMa,开源地址为:https://github.com/advimman/lama 。

LaMa 图像修复,采用傅立叶卷积的分辨率鲁棒大型掩模修复,WACV 2022

现代图像修复系统尽管取得了显着的进步,但常常难以应对大面积缺失区域、复杂的几何结构和高分辨率图像。我们发现造成这种情况的主要原因之一是修复网络和损失函数都缺乏有效的感受野。为了缓解这个问题,我们提出了一种称为大掩模修复(LaMa)的新方法。 LaMa 基于:

  • 一种新的修复网络架构,使用快速傅立叶卷积,具有图像范围的感受野
  • 高感受野感知损失;
  • 大型训练掩码(masks),释放前两个组件的潜力。

我们的修复网络提高了一系列数据集的最新技术,即使在具有挑战性的场景(例如完成周期性结构)中也能实现出色的性能。我们的模型出人意料地很好地概括了比训练时所见的分辨率更高的分辨率,并且以比竞争基准更低的参数和计算成本实现了这一点。

在这里插入图片描述
其中,模型中FFC结构如下:
在这里插入图片描述

3. 安装 Lama Cleaner

很遗憾,我的电脑没有GPU,具体环境如下:

  • Windows 10专业版
  • 处理器:Intel® Core™ i5-9400 CPU @ 2.90GHz 2.90 GHz
  • 内存(RAM):32.0 GB(31.8 GB可用)
  • 显卡:Intel® UHD Graphics 630

安装Lama Cleaner最简单的方法是通过pip安装(支持python 3.7 ~ 3.10)。

关于GPU安装,官方说明如下:

	# 为了使用GPU,请先安装cuda版本的pytorch。
	# pip install torch==1.13.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117

我的电脑没有GPU,直接使用CPU。

	pip install -i https://pypi.tuna.tsinghua.edu.cn/simple lama-cleaner

另外还有基于Docker安装,在此略过,感兴趣自己看官方文档实践。

下面附上安装包列表,供参考:

 Werkzeug-2.3.7
 aiofiles-23.2.1 
 annotated-types-0.5.0 
 antlr4-python3-runtime-4.9.3 
 anyio-3.7.1 
 bidict-0.22.1 
 controlnet-aux-0.0.3 
 diffusers-0.16.1 
 einops-0.6.1 
 fastapi-0.103.1 
 ffmpy-0.3.1 
 filelock-3.12.4 
 flask-2.2.3 
 flask-cors-4.0.0 
 flask-socketio-5.3.6 
 flaskwebgui-0.3.5 
 fsspec-2023.9.1 
 gradio-3.44.3 
 gradio-client-0.5.0 
 httpcore-0.18.0 
 httpx-0.25.0 
 huggingface-hub-0.17.1 
 itsdangerous-2.1.2 
 lama-cleaner-1.2.3 
 mpmath-1.3.0 
 omegaconf-2.3.0 
 orjson-3.9.7 
 piexif-1.1.3 
 pydantic-2.3.0 
 pydantic-core-2.6.3 
 pydub-0.25.1 
 python-engineio-4.7.1 
 python-multipart-0.0.6 
 python-socketio-5.9.0 
 regex-2023.8.8 
 safetensors-0.3.3 
 semantic-version-2.10.0 
 simple-websocket-0.10.1 
 starlette-0.27.0 
 sympy-1.12 
 timm-0.9.7 
 tokenizers-0.13.3 
 torch-2.0.1 
 torchvision-0.15.2 
 transformers-4.27.4 
 uvicorn-0.23.2 
 websockets-11.0.3 
 whichcraft-0.6.1 
 yacs-0.1.8

安装完成后,可以通过lama-cleaner命令启动服务器,第一次使用时会下载模型文件(建议确保网络畅通)。

GPU启动命令如下:lama-cleaner --model=lama --device=cuda --port=8080

4. 启动

启动命令如下:

	lama-cleaner --model=lama --device=cpu --port=8080
	
	- Platform: Windows-10-10.0.17763-SP0
	- Python version: 3.8.10
	- torch: 2.0.1
	- torchvision: 0.15.2
	- Pillow: 8.4.0
	- diffusers: 0.16.1
	- transformers: 4.27.4
	- opencv-python: 4.7.0.72
	- xformers: N/A
	- accelerate: N/A
	- lama-cleaner: 1.2.3
	- rembg: N/A
	- realesrgan: N/A
	- gfpgan: N/A
	
	The cache for model files in Transformers v4.22.0 has been updated. Migrating your old cache. This is a one-time only operation. You can interrupt this and resume the migration later on by calling `transformers.utils.move_cache()`.
	0it [00:00, ?it/s]
	Downloading: "https://github.com/Sanster/models/releases/download/add_big_lama/big-lama.pt" to C:\Users\xiaoyw\.cache\torch\hub\checkpoints\big-lama.pt
	
	2023-09-18 14:10:06.177 | INFO     | lama_cleaner.helper:download_model:52 - Download model success, md5: e3aa4aaa15225a33ec84f9f4bc47e500
	2023-09-18 14:10:06.179 | INFO     | lama_cleaner.helper:load_jit_model:102 - Loading model from: C:\Users\xiaoyw\.cache\torch\hub\checkpoints\big-lama.pt
	Running on http://127.0.0.1:8080

工具的使用是基于浏览器的,我安装在本机,使用默认端口8080,打开浏览器使用如下地址:http://127.0.0.1:8080。
在这里插入图片描述

5. 去水印抠图操作

如下图所示,从左到右操作,中间图分两块涂抹需要清除的标记,最后按下方的橡皮檫,形成最右边的图像。

声明:感谢哈马的摄影者,就这样把你的水印删除了,感谢哈马组委会,同时也给删除了。本文只是讲抠图处理AI技术,未涉及到商业活动。
在这里插入图片描述
其中,标记多块需要清除点时,需要使用手动修复模式。默认情况下,Lama Cleaner 将在绘制笔划后运行修复。您可以在设置中启用手动修复模式。
在这里插入图片描述

6. 其他擦除模型对比举例

LDM 与 LaMa 模型擦除效果对比:
在这里插入图片描述

👍 可能得到比 LaMa 更好、更详细的结果
👍 通过调整步骤可以达到时间和质量的平衡
😐 比 LaMa 模型慢得多(3080 12it/s)
😐 需要更多GPU内存(512x512 5.8G)

7. 最后

如果要取得好的图像效果,是需要GPU的。

更多推荐

科普:什么是视频监控平台?如何应用在场景中?

随着科技的发展,监控无处不在,就像一张密不透风的网,将生活中的角角落落都编织在一起。可是,你真的知道什么是安防视频监控平台吗?它可不止是一个简单的通电摄像头,如今的视频监控平台,涵盖了无数精密细致的算法与技术,是通过集成视频监控设备与软件系统,对指定区域或场所进行实时监控与数据管理的平台。下面就给大家介绍一下常见的安防

STM32 ADC介绍和应用

目录1.ADC是什么?2.ADC的性能指标3.ADC特性4.ADC通道5.ADC转换顺序6.ADC触发方式7.ADC转化时间8.ADC转化模式扫描模式单次转换/连续转换9.ADC实验使用ADC读取烟雾传感器的值代码实现思路:1.ADC是什么?全称:Analog-to-DigitalConverter,指模拟/数字转换器

奇富大模型获新应用方向,AI专家加速金融行业智能化

近日,由奇富科技推出的大模型应用在研发效能,大数据分析等领域斩获新突破。毓智AI专家以奇富大模型为底座,面向研发效能和大数据分析等应用场景,结合资深技术、大数据分析师的专业能力与数据沉淀,形成金融领域的“AI专家”。目前,这一大模型应用,已在技术研发与商业分析两大方向展现出极高价值。作为金融科技行业内首屈一指的技术驱动

最小二乘法

LeastSquareMethod1、相关的矩阵公式2、线性回归3、最小二乘法3.1、损失函数(LossFunction)3.2、多维空间的损失函数3.3、解析法求解3.4、梯度下降法求解1、相关的矩阵公式Precondition:ξ∈Rn,A∈Rn∗ni:σAξσξ=ATii:σξTAξσξ=ATξ+Aξiii:(A

【TCP】粘包问题 以及 异常处理

粘包问题以及异常处理一.粘包问题二.TCP异常情况一.粘包问题注意:不仅TCP存在粘包问题,其他面向字节流的机制也存在粘包问题。首先要明确,粘包问题中的“包”,是指的应用层的数据包。在TCP的协议头中,没有如同UDP一样的“报文长度”这样的字段。站在传输层的角度,TCP是一个一个报文过来的。按照序号排好序放在接收缓冲区

视频直播美颜sdk与计算机视觉的奇妙结合

在数字时代,视频直播已经成为了人们分享生活、娱乐互动的重要方式之一。而随着社交媒体和在线直播平台的不断发展,用户们对于直播质量和体验提出了越来越高的要求。其中之一就是美颜效果。美颜不仅仅是为了矫正自身缺陷,它更是一种增强直播吸引力的手段。本文将探讨视频直播美颜sdk与计算机视觉技术的结合,以及这种奇妙结合是如何提升用户

26.39万起的2024款小鹏G9能大卖吗?

监制|何玺排版|叶媛小鹏2024款G9正式发布。新G9对硬件配置和智驾系统做了升级,起售价上更比老款G9直降4万余元,以全新的姿态,再度杀入纯电中大型旗舰SUV赛道。“重生”而归的新款G9,这次能大卖吗?012024款小鹏G9发布2024款G9发布会上,小鹏汽车董事长何小鹏亲自主持并对新产品进行了详尽阐述。在发言中,他

海外代理IP是什么?如何使用?

一、海外代理IP是什么?首先,代理服务器是在用户和互联网之间提供网关的系统或路由器。它是一个服务器,被称为“中介”,因为它位于最终用户和他们在线访问的网页之间。海外IP代理是就是指从海外地区获取的IP地址,用于将互联网连接路由通过位于不同国家或地区的服务器。这种代理服务允许用户隐藏其真实的地理位置,并获得访问其他国家或

Redis缓存与从数据取数据性能比较

Redis缓存与从数据取数据性能比较为什么使用Redis使用Redis缓存数据有多个原因,包括提高性能、降低数据库负载、减少响应时间和支持临时数据存储等。以下是一些主要原因以及Redis缓存的工作原理和好处:1.提高性能:数据库查询通常是一个相对较慢的操作,特别是当数据库中的数据量很大时。通过将常用的数据存储在Redi

定制EXP之RCE

文章目录1.常见模块介绍1.1base641.1.1base64编码1.1.2base64解码1.2string2.常规EXP编写2.1phpstudy_2016-2018_rce漏洞2.1.1漏洞利用脚本2.1.2进阶脚本2.1.3漏洞检测名词解释POC(ProofofConcept)漏洞验证代码,验证漏洞的存在性。

【ODPS新品发布第2期】实时数仓Hologres:推出计算组实例/支持JSON数据/向量计算+大模型等新能力

阿里云ODPS系列产品以MaxCompute、DataWorks、Hologres为核心,致力于解决用户多元化数据的计算需求问题,实现存储、调度、元数据管理上的一体化架构融合,支撑交通、金融、科研、等多场景数据的高效处理,是目前国内最早自研、应用最为广泛的一体化大数据平台。本期将重点介绍ꔷHologres推出计算组实例

热文推荐