合肥本地网站/重庆seo优化推广
目录
- 一、安装
- 二、擦除功能
- 1. LaMa模型
- 实操实例一:去除路人
- 实操实例二:去水印
- 实操实例三:老照片修复
- 2. LDM模型
- 3. ZITS模型
- 4. MAT模型
- 5. FcF模型
- 6. Manga模型
- 三、替换对象功能
- 1. sd1.5
- 2. sd2
- 3. anything4
- 4. realisticVision1.4
- 5. 四个模型的对比
- 四、进阶版功能
- 1. Paint By Example
- 2. Stable Diffusion with ControlNet
- 3. Instruct Pix2pix
Lama Cleaner是一个免费的、开源的、完全自托管的修复工具,里面提供了很多最前沿的AIGC模型。可以使用它从图片中删除任何不需要的物体、缺陷、人物,或删除和替换图片上的任何内容。本文章详细介绍了该工具的所有功能,并体验了下每个功能的实际效果。
github:https://github.com/Sanster/lama-cleaner
官方使用文档:https://lama-cleaner-docs.vercel.app/
一、安装
# 如果电脑带GPU,为了使用GPU首先安装与cuda版本相对应的pytorch,比如cuda11.7的
pip install torch==1.13.1+cu117 torchvision==0.14.1 --extra-index-url https://download.pytorch.org/whl/cu117# pip直接安装
pip install lama-cleaner
本文安装时版本更新到1.2.4
二、擦除功能
下方擦除功能所需要的模型全部上传至夸克网盘(链接:https://pan.quark.cn/s/370b455924ab,提取码:SNrE),在github下载失败时可手动网盘下载至规定路径。
找到lama-cleaner.exe
的路径:C:\Users\zhouying\AppData\Roaming\Python\Python39\Scripts
(不同电脑路径不同)
cd C:\Users\zhouying\AppData\Roaming\Python\Python39\Scriptslama-cleaner --model=lama --device=cuda --port=8080
device如果没有gpu:--device=cpu
。
该命令会自动下载AI模型到本地(也可手动下载big-lama.pt到下图红框中的路径),然后浏览器打开http://localhost:8080/就可以使用了。
1. LaMa模型
-
github:https://github.com/saic-mdal/lama
-
paper:Resolution-robust Large Mask Inpainting with Fourier Convolutions
lama是默认模型,模型196MB,性能已经挺不错了。
实操实例一:去除路人
实操实例二:去水印
涂抹过程中可以长按Ctrl键进行多处涂抹
实操实例三:老照片修复
可以在网页中选择不同的AI模型或在命令行中选择不同模型(下方章节),这样都会自动下载相应的模型到本地。
2. LDM模型
-
github:https://github.com/CompVis/latent-diffusion
-
paper:High-Resolution Image Synthesis with Latent Diffusion Models
lama-cleaner --model=ldm --device=cuda --port=8080
LDM模型手动下载链接:diffusion.pt、cond_stage_model_decode.pt、cond_stage_model_encode.pt
LDM vs LaMa
- 可能比LaMa有更好、更多的细节
- 可以通过调整
Steps
来平衡时间和质量 - 比LaMa慢很多(3080 12it/s)
- 需要更多的GPU内存(512x512 5.8G)
3. ZITS模型
-
github:https://github.com/DQiaole/ZITS_inpainting
-
paper:Incremental Transformer Structure Enhanced Image Inpainting with Masking Positional Encoding
lama-cleaner --model=zits --device=cuda --port=8080
ZITS模型手动下载链接:zits-wireframe-0717.pt、zits-edge-line-0717.pt、zits-structure-upsample-0717.pt、zits-inpaint-0717.pt
ZITS vs LaMa
- 擅长在高分辨弱纹理场景中恢复关键的边缘和线框
- ZITS的
Wireframe
模块在CPU上会非常慢
4. MAT模型
-
github:https://github.com/fenglinglwb/MAT
-
paper:Mask-Aware Transformer for Large Hole Image Inpainting
lama-cleaner --model=mat --device=cuda --port=8080
MAT模型手动下载链接:Places_512_FullData_G.pth
特点:MAT可实现大面积像素缺失的补全和提供多样性生成
5. FcF模型
-
github:https://github.com/SHI-Labs/FcF-Inpainting
-
paper:Keys to Better Image Inpainting: Structure and Texture Go Hand in Hand
lama-cleaner --model=fcf --device=cuda --port=8080
FcF模型手动下载链接:places_512_G.pth
FcF vs LaMa
- 能生成更好的结构和纹理
- 仅支持固定大小(512x512)的输入
6. Manga模型
-
github:https://github.com/msxie92/MangaInpainting
-
paper:Seamless Manga Inpainting with Semantics Awareness
lama-cleaner --model=manga --device=cuda --port=8080
Manga模型手动下载链接:erika.jit、manga_inpaintor.jit
特点:在漫画图像上表现的比LaMa模型效果更好
三、替换对象功能
1. sd1.5
github:https://github.com/runwayml/stable-diffusion
hugging face:https://huggingface.co/runwayml/stable-diffusion-inpainting
因为需要访问hugging face,所以需要魔法
- 运行方式一:
lama-cleaner --model=sd1.5 --device=cuda --port=8080
自动下载的文件保存路径为C:\Users\zhouying\.cache\huggingface\hub\models--runwayml--stable-diffusion-inpainting
。
- 运行方式二:
可以先下载sd-v1-5-inpainting.ckpt到本地,然后下面的命令运行
lama-cleaner --model=sd1.5 --device=cuda --port=8080 --sd-local-model-path ./sd-v1-5-inpainting.ckpt --local-files-only
2. sd2
github:https://github.com/Stability-AI/stablediffusion
hugging face:https://huggingface.co/stabilityai/stable-diffusion-2-inpainting
lama-cleaner --model=sd2 --device=cuda --port=8080
下载的文件保存在C:\Users\zhouying\.cache\huggingface\hub\models--stabilityai--stable-diffusion-2-inpainting
3. anything4
hugging face: https://huggingface.co/andite/anything-v4.0
lama-cleaner --model=anything4 --device=cuda --port=8080
下载的文件保存在C:\Users\zhouying\.cache\huggingface\hub\models--Sanster--anything-4.0-inpainting
4. realisticVision1.4
hugging face:https://huggingface.co/SG161222/Realistic_Vision_V1.4
lama-cleaner --model=realisticVision1.4 --device=cuda --port=8080
下载的文件保存在C:\Users\zhouying\.cache\huggingface\hub\models--Sanster--Realistic_Vision_V1.4-inpainting
5. 四个模型的对比
原图:
涂抹图中小狗,然后prompt输入“a fox sitting on a bench”的输出如下:
同时,这些模型同样能提供擦除功能,只需将prompt填写为“background”
四、进阶版功能
1. Paint By Example
这个模型的输入是一张图片,模型会由这个示例图指导生成类似的内容。
github:https://github.com/Fantasy-Studio/Paint-by-Example
paper:Paint by Example: Exemplar-based Image Editing with Diffusion Models
lama-cleaner --model=paint_by_example --device=cuda --port=8080
下载的文件保存在C:\Users\zhouying\.cache\huggingface\hub\models--Fantasy-Studio--Paint-by-Example
2. Stable Diffusion with ControlNet
使用ControlNet可以获得更好的修复效果,命令如下:
lama-cleaner --model=sd1.5 --sd-controlnet --sd-controlnet-method control_v11p_sd15_inpaint --device=cuda --port=8080
--model
支持的参数有:
- sd1.5
- anything4
- realisticVision1.4
--sd-controlnet-method
支持的参数有:
- control_v11p_sd15_canny
- control_v11p_sd15_openpose
- control_v11p_sd15_inpaint
- control_v11f1p_sd15_depth
官方提示,这四种方法在应用时都需要适当地调整ControlNet Weight的数值,建议canny和openpose从0.4开始调整,inpaint和depth从1.0开始调整。
尝试了一下,加了个ControlNet也没好多少,可能weight值还没调好。
3. Instruct Pix2pix
这个模型可以不用mask,而是直接输入prompt
github:https://github.com/timothybrooks/instruct-pix2pix
paper:InstructPix2Pix: Learning to Follow Image Editing Instructions
lama-cleaner --model=instruct_pix2pix --device=cuda --port=8080
拿张图试玩一下,效果挺不错的。
相关文章:

【AI好好玩02】利用Lama Cleaner本地实现AIGC试玩:擦除对象、替换对象、更换风格等等
目录 一、安装二、擦除功能1. LaMa模型实操实例一:去除路人实操实例二:去水印实操实例三:老照片修复 2. LDM模型3. ZITS模型4. MAT模型5. FcF模型6. Manga模型 三、替换对象功能1. sd1.52. sd23. anything44. realisticVision1.45. 四个模型的…...

SQL FULL OUTER JOIN 关键字(完整外部连接)||SQL自连接 Self JOIN
SQL FULL OUTER JOIN 关键字 当左(表1)或右(表2)表记录匹配时,FULL OUTER JOIN关键字将返回所有记录。 注意: FULL OUTER JOIN可能会返回非常大的结果集! SQL FULL OUTER JOIN 语法 SELECT …...

专科医院污水处理设备构造解析及工艺流程
诸城市鑫淼环保小编带大家了解一下专科医院污水处理设备构造解析及工艺流程 主要组成部分: 1.预处理单元 处理流程的起点是预处理单元,用于去除废水中的大颗粒物质和固体废物。这一阶段通常包括隔栅和筛网,以确保进一步处理的污水清洁。 2.生…...

【RabbitMQ】RabbitMQ 消息的可靠性 —— 生产者和消费者消息的确认,消息的持久化以及消费失败的重试机制
文章目录 前言:消息的可靠性问题一、生产者消息的确认1.1 生产者确认机制1.2 实现生产者消息的确认1.3 验证生产者消息的确认 二、消息的持久化2.1 演示消息的丢失2.2 声明持久化的交换机和队列2.3 发送持久化的消息 三、消费者消息的确认3.1 配置消费者消息确认3.2…...

百万套行泊一体量产定点,中国市场「开启」智驾高低速集成
进入2023年,席卷中国市场的行泊一体概念方案进入定点、量产交付的第一波高峰期。这套方案,以高性价比、硬件复用、高低速智驾集成的模式,备受市场青睐。 本周,纵目科技宣布,Amphiman3000行泊一体产品获得长安汽车旗下…...

Gopro hero5运动相机格式化后恢复案例
Gopro运动相机以稳定著称,旗下的Hero系列销售全球。下面我们来看一个Hero5格式化后拍了少量素材的恢复案例。 故障存储:64G MicroSD卡 Exfat文件系统 故障现象: 64G的卡没备份数据时做了格式化操作又拍了一条,发现数据没有备份,客户自行使…...

Microsoft Dynamics 365 CE 扩展定制 - 6. 增强代码
在本章中,我们将介绍以下内容: 使用三层模式重构插件用QueryExpressions替换LINQ数据访问层记录自定义项中的错误将插件转换为自定义工作流活动单元测试插件业务逻辑使用内存上下文对插件进行单元测试端到端集成测试插件分析插件构建通用读取审核插件利用CRM Online实现跨来源…...

基于libopenh264 codec的svc分层流实现方案
OpenH264 http://www.openh264.org/ 是标准的H.264 encoder/decoder. ffmpeg已经集成libopenh264,但不支持svc特性。 openh264 encoder支持svc特性: 1. 时域4层:Temporal scalability up to 4 layers in a dyadic hierarchy 2. 空域4层&#…...

为机器学习算法准备数据(Machine Learning 研习之八)
本文还是同样建立在前两篇的基础之上的! 属性组合实验 希望前面的部分能让您了解探索数据并获得洞察力的几种方法。您发现了一些数据怪癖,您可能希望在将数据提供给机器学习算法之前对其进行清理,并且发现了属性之间有趣的相关性,…...

基于Python OpenCV的金铲铲自动进游戏、D牌...
基于Python OpenCV的金铲铲自动进游戏、D牌... 1. 自动点击进入游戏1.1 环境准备1.2 功能实现2. 自动D牌3. 游戏结束自动退1. 自动点击进入游戏 PS: 本测试只用于交流学习OpenCV的相关知识,不能用于商业用途,后果自负。 1.1 环境准备 需要金铲铲在win10的模拟器,我们这里选…...

c++中httplib使用
httplib文件链接:百度网盘 请输入提取码 提取码:kgnq json解析库:百度网盘 请输入提取码 提取码:oug0 一、获取token 打开postman, 在body这个参数中点击raw,输入用户名和密码 然后需要获取到域名和地址。 c++代码如下: #include "httplib.h" #in…...

Vite 的基本原理,和 webpack 在开发阶段的比较
目录 1,webpack 的流程2,Vite 的流程简单编译 3,总结 主要对比开发阶段。 1,webpack 的流程 开发阶段大致流程:指定一个入口文件,对相关的模块(js css img 等)先进行打包࿰…...

[开源]免费开源MES系统/可视化数字大屏/自动排班系统
开源系统概述: 万界星空科技免费MES、开源MES、商业开源MES、市面上最好的开源MES、MES源代码、免费MES、免费智能制造系统、免费排产系统、免费排班系统、免费质检系统、免费生产计划系统。 万界星空开源MES制造执行系统的Java开源版本。开源mes系统包括系统管理…...

python如何使用gspread读取google在线excel数据?
一、背景 公司使用google在线excel管理测试用例,为了方便把手工测试用到的测试数据用来做自动化用例测试数据,所以就想使用python读取在线excel数据,通过数据驱动方式,完成自动化回归测试,提升手动复制,粘…...

线程同步——互斥量解锁、解锁
类似与进程间通信信号量的加锁解锁。 对互斥量进行加锁后,任何其他试图在此对互斥量加锁的线程都会被阻塞,直到当前线程释放该互斥锁。如果释放互斥锁时有多个线程被阻塞,所有在该互斥锁上的阻塞线程都会变成可运行状态,第一个变…...

数据结构(c语言版) 顺序表
代码 #include <stdio.h> #include <stdlib.h>typedef int E; //这里我们的元素类型就用int为例吧,先起个别名//定义结构体 struct List{E * array;int capacity; //数组的容量int size; };//给结构体指针起别名 typedef struct List * ArrayLis…...

Springboot 集成 RocketMq(入门)
1.RocketMq安装部署 Linux 安装 RocketMq-CSDN博客 2.添加依赖包 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2.3</version> </dependency> 3.配…...

Elasticsearch:ES|QL 中的数据丰富
在之前的文章 “Elasticsearch:ES|QL 查询语言简介”,我有介绍 ES|QL 的 ENRICH 处理命令。ES|QL ENRICH 处理命令在查询时将来自一个或多个源索引的数据与 Elasticsearch 丰富索引中找到的字段值组合相结合。这个有点类似于关系数据库查询中所使用的 jo…...

【linux编程】linux文件IO高级I/O函数介绍和代码示例
Linux文件IO高级I/O函数用法是指如何使用这些函数来实现高效和灵活的文件读写操作,它们包括以下几类: 分散读和集中写:readv和writev函数可以一次性地从一个文件描述符读取或写入多个缓冲区,而不需要多次调用read或write函数。这样可以减少系统调用的开销,提高I/O效率。存…...

jQuery获取地址栏GET参数值
jQuery获取地址栏GET参数值 封装方法: window.location 是获取当前页面地址 // 获取地址栏参数 function GetUrlString(name){var reg new RegExp("(^|&)" name "([^&]*)(&|$)");var r window.location.search.substr(1).match…...

JAVA应用中线程池设置多少合适?
目录 1、机器配置: 2、核心线程数 3、最大线程数多少合适? 4、理论基础 5、测试验证 一个线程跑满一个核心的利用率 6个线程 12 个线程:所有核的cpu利用率都跑满 有io操作 6、计算公式 7、决定最大线程数的流程: 1、机器…...

.Net Core 3.1 解决数据大小限制
微软官网文档上对.NET Core3.1解决数据大小限制有详细的介绍。下面是根据自己的情况进行的总结,我们可以把.Core项目部署在IIS上,也可以利用Kestrel进行部署。这两种方式处理数据大小限制的方式不一样,具体如下: 一、部署在IIS上…...

【音视频 | opus】opus编码的Ogg封装文件详解
😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…...

【微信小程序】自定义组件(一)
自定义组件 组件的创建与引用1、创建组件2、引用组件3、全局引用VS局部引用4、组件和页面的区别 样式1、组件样式隔离2、组件样式隔离的注意点3、stylelsolation的可选值 数据、方法和属性1、data数据2、methods方法3、properties4、data和properties区别5、使用setData修改pr…...

如何通过一条数字人三维动画宣传片,打造出数字文旅
越来越多虚拟人,以文化挖掘者的身份通过数字人三维动画宣传片,打通次元壁,助力文化传播形式创造性转化、创新性表达,赋予文化发展新动能。 如南方都市报民间博物馆文化探寻者“岭梅香”,由一艘在南宋时期失事的沉船“南…...

【MongoDB】索引 - 数组字段的多键索引
数组字段创建索引时,MongoDB会为数组中的每个元素创建索引键(多键索引),多键索引支持数组字段的高效查询。 一、准备工作 这里准备一些数据 db.shop.insertMany([{_id: 1, name: "水果店1", fruits: ["apple&qu…...

2023.11.5 关于 Spring 创建 和 使用
目录 创建 Spring 项目 1.创建 Maven 项目 2.添加 Spring 依赖 将 Bean 对象存储到 Spring 容器中 创建 Bean 存储 Bean ApplicationContext 获取 Bean BeanFactory 获取 Bean ApplicationContext 和 BeanFactory 的区别 获取 Bean 的三种方式 根据 Bean id 获取…...

3D目标检测实战 | 图解KITTI数据集评价指标AP R40(附Python实现)
目录 1 准确率和召回率2 P-R曲线的绘制3 AP R11与AP R40标准4 实际案例 1 准确率和召回率 首先给出 T P TP TP、 F P FP FP、 F N FN FN、 T N TN TN的概念 真阳性 True Positive T P TP TP 预测为正(某类)且真值也为正(某类)的样本数,可视为 I o U > I o U t…...

制作一个ros2机器人需要学习的课本(还不全面)
1《C语言》---这个是基础200页左右 2《C》-----500-600页 3《高等数学》-----没有这个无法计算动态电路 4《电路分析》-----没有这个没法设计硬件电路 5《英语5000词汇》最少也得达到美国小学生毕业时候的词汇水平5000词汇量 6《ros1》因为ros2没有一本中文课本---有那么一…...

Qt OpenGL相机系统
文章目录 一、简介二、实现代码三、实现效果参考资料效果展示 一、简介 一直偷懒没有学习OpenGL,乘着这段有点时间重新学习一下OpenGL,做一个简单的小工具,有助于后面理解OSG。我们都知道OpenGL中存在着下面几个坐标空间:模型空间(物体空间)、世界空间、观察空间(或者称…...