当前位置: 首页 > news >正文

【AI好好玩02】利用Lama Cleaner本地实现AIGC试玩:擦除对象、替换对象、更换风格等等

目录

  • 一、安装
  • 二、擦除功能
    • 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 研习之八)

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

基于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 等)先进行打包&#xff0…...

[开源]免费开源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为例吧&#xff0c;先起个别名//定义结构体 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&#xff1a;ES|QL 查询语言简介”&#xff0c;我有介绍 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参数值 封装方法&#xff1a; window.location 是获取当前页面地址 // 获取地址栏参数 function GetUrlString(name){var reg new RegExp("(^|&)" name "([^&]*)(&|$)");var r window.location.search.substr(1).match…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

什么是VR全景技术

VR全景技术&#xff0c;全称为虚拟现实全景技术&#xff0c;是通过计算机图像模拟生成三维空间中的虚拟世界&#xff0c;使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验&#xff0c;结合图文、3D、音视频等多媒体元素…...

实战三:开发网页端界面完成黑白视频转为彩色视频

​一、需求描述 设计一个简单的视频上色应用&#xff0c;用户可以通过网页界面上传黑白视频&#xff0c;系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观&#xff0c;不需要了解技术细节。 效果图 ​二、实现思路 总体思路&#xff1a; 用户通过Gradio界面上…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知&#xff0c;帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量&#xff0c;能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度&#xff0c;还为机器人、医疗设备和制造业的智…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践

前言&#xff1a;本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中&#xff0c;跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南&#xff0c;你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案&#xff0c;并结合内网…...