LoRA大模型微调的利器

news/2024/9/19 4:54:31/ 标签: 人工智能, stable diffusion, AI, 程序那些事, AI绘画

LoRA模型是小型的Stable Diffusion模型,它们对checkpoint模型进行微小的调整。它们的体积通常是检查点模型的10到100分之一。因为体积小,效果好,所以lora模型的使用程度比较高。

这是一篇面向从未使用过LoRA模型的初学者的教程。你将了解LoRA模型是什么,在哪里找到它们,以及如何在AUTOMATIC1111 GUI中使用它们。然后,你将在文章末尾找到一些LoRA模型的演示。

LoRA模型是什么?

LoRA(Low-Rank Adaptation)是一种微调Stable Diffusion模型的训练技术。

虽然我们已经有像Dreambooth和文本反转这样的训练技术。那么LoRA有什么用呢?

LoRA实际上可以看做是Dreambooth和文本反转embeddings的折中方案。Dreambooth功能虽然强大,但模型文件会比较大(2-7 GB)。文本反转非常小(约100 KB),但能做的事情比较少。

LoRA介于两者之间。它的文件大小更容易管理(2-200 MB),并且训练能力相当不错。

因为checkpoint比较大,所以硬盘空间存储会是一个问题。而LoRA是解决存储问题的优秀方案。

像文本反转一样,你不能单独使用LoRA模型。它必须与模型检查点文件一起使用。LoRA通过对配套的模型文件进行小的修改来改变风格。

LoRA是定制AI艺术模型的绝佳方式,而不会占用太多本地存储空间。

LoRA如何工作?

LoRA对Stable Diffusion模型中最关键的部分进行小的修改:交叉注意力层。研究人员发现,微调这部分模型就足以实现良好的训练。交叉注意力层是下面Stable Diffusion模型架构中的黄色部分。

交叉注意力层

交叉注意力层的权重以矩阵的形式排列。矩阵只是按列和行排列的一堆数字,就像Excel电子表格上一样。LoRA模型通过将自己的权重加到这些矩阵上来微调模型。

如果LoRA模型需要存储相同数量的权重,它们的文件怎么会更小呢?**LoRA的技巧是将矩阵分解成两个更小的(低秩)矩阵。**通过这样做,它可以存储更少的数字。让我们通过以下示例来说明。

假设模型有一个100行100列的矩阵。那是10000个数字(100x 100)需要存储在模型文件中。LoRA将矩阵分解成一个1000x2矩阵和一个2x100矩阵。那只有400个数字(100 x 2 + 2 x 100,如果矩阵够更大的话,LoRA模型会减少的更多。这就是为什么LoRA文件要小得多的原因。

image-20240703105705024

在这个例子中,矩阵的是2。它比原始尺寸低得多,所以它们被称为低秩矩阵。秩可以低至1。

这种操作必定会带来数据上的缺失,但是在交叉注意力层来说,这些损失是无伤大雅的。所以Lora这种做法是可行的。

在哪里找到LoRA模型?

Civitai

image-20240703110017448

寻找LoRA的首选地点是Civitai。该网站托管了大量LoRA模型的集合。应用LORA过滤器以仅查看LoRA模型。不过里面的大多数模型都是:女性肖像,动漫,现实主义插图风格等。

Hugging Face

image-20240703110326192

Hugging Face是另一个LoRA库的好来源。你会发现更多种类的LoRA模型。但那里的LoRA模型可能没有C站多,并且也不太直观。因为没有图片预览。

如何使用LoRA?

这里,我将介绍如何在AUTOMATIC1111 Stable Diffusion GUI中使用LoRA模型。

AUTOMATIC1111原生支持LoRA。你不需要安装任何扩展。

第1步:安装LoRA模型

要在AUTOMATIC1111 webui中安装LoRA模型,请将模型文件放入以下文件夹。

stable-diffusion-webui/models/Lora

第2步:在提示中使用LoRA

要在AUTOMATIC1111 Stable Diffusion WebUI中添加带权重的LoRA,请在提示或否定提示中使用以下语法:

<lora: name: weight>

name是LoRA模型的名称。它可以与文件名不同。weight是应用于LoRA模型的权重。默认值为1。将其设置为0将禁用模型。

那么怎么知道lora的名字是什么呢?

其实我们并不需要手动输入lora的名字,我们只需要点击下面的lora标签:

image-20240703111227834

你应该看到一个已安装的LoRA模型列表。单击你想要使用的模型。

LoRA短语将被插入到提示中。

就是这样!

使用LoRA的注意事项

你可以调整乘数以增强或调整效果。将乘数设置为0将禁用LoRA模型。你可以在0和1之间调整风格效果。

一些LoRA模型是使用Dreambooth训练的。你需要包括一个触发关键词才能使用LoRA模型。你可以在模型页面上找到触发关键词。

类似于嵌入,你可以同时使用多个LoRA模型。你也可以将它们与嵌入一起使用。

在AUTOMATIC1111中,LoRA短语不是提示的一部分。在应用LoRA模型后,它将被删除。这意味着你不能使用像[keyword1:keyword2: 0.8]这样的提示语法来使用他们。

实用的LoRA模型

这里介绍一些在实际应用中比较实用的Lora。

add_detail

image-20240703112744179

谁不想要AI图像中更多的细节?细节调整器允许你增加或减少图像中的细节。现在,你可以调整你想要的细节量。

使用正LoRA权重来增加细节,使用负权重来减少细节。

add_saturation

这个lora可以给图片添加一些饱和度,效果如下:

image-20240703113008727

add_brightness

这个lora可以用来控制图片的亮度:

image-20240703134833039

总结

LoRA模型是checkpoint模型的小型修改器。你可以通过在提示中包含一个短语轻松地在AUTOMATIC1111中使用它们。

我将在以后的文章中告诉你如何自己来训练一个LoRA模型。

点我查看更多精彩内容:www.flydean.com


http://www.ppmy.cn/news/1520604.html

相关文章

Linux/Ubuntu服务器 screen 安装与使用

一、screen简单介绍 在Linux系统中&#xff0c;screen是一个非常强大的终端仿真器&#xff0c;它允许用户在一个终端窗口中创建多个子窗口&#xff0c;每个子窗口都可以运行一个独立的会话。screen的主要特点包括&#xff1a; 会话分离&#xff1a;screen允许用户在终端会话中运…

linux安装oracle的详细教程

在Linux系统上安装Oracle数据库涉及多个步骤&#xff0c;从准备工作到安装和初步配置。下面是一个详细的安装教程&#xff0c;以Oracle Database 19c和Oracle Linux&#xff08;或类似的Red Hat/CentOS&#xff09;系统为例。 前提条件 确保系统满足Oracle数据库的硬件和软件要…

学习日志8.30--防火墙NAT

目录 一、实验环境配置 二、配置防火墙静态NAT一对一 三、配置防火墙静态NAT多对多 四、配置防火墙NAT端口转换NAPT 五、防火墙smart-nat、easyip 六、防火墙三元组NAT 在学习过基于路由器的NAT网络地址转换&#xff0c;现在学习基于防火墙NAT的网络地址转换&#xff0c;…

电脑里的文件删除了还能恢复吗?这些方法能帮你找回

在数字化时代&#xff0c;电脑已经成为我们日常生活和工作中不可或缺的工具。然而&#xff0c;随着我们在电脑上创建、编辑和保存的文件越来越多&#xff0c;误删文件的情况也时有发生。一旦发现自己不小心删除了重要文件&#xff0c;很多人都会惊慌失措&#xff0c;疑惑这些被…

深入理解Java 8中的Stream API及其应用

深入理解Java 8中的Stream API及其应用 随着Java 8的推出&#xff0c;Java语言引入了许多令人兴奋的新特性&#xff0c;其中最为引人注目的便是Stream API。Stream API 为我们提供了一种全新的集合操作方式&#xff0c;使得数据处理、转换和过滤变得更加简洁、高效。在本文中&…

收藏夹里的“小网站”被误报违规不让上怎么办?如何将Chrome和Edge安装到 D 盘(含用户数据),重装系统也不会丢失收藏夹和密码?

当你用国产浏览器访问网站的时候&#xff0c;有时候会显示这个&#xff1a; 如果确实是违规网站&#xff0c;不让访问也没什么&#xff0c;但是很多都是误报啊&#xff0c;你这样直接来个大红横幅&#xff0c;还让人活不&#xff1f; 那遇到这种误报应当怎么办呢&#xff1f;有…

新电脑Win11系统想要降级为Win10怎么操作?

前言 现在的电脑大部分都是Windows 11系统&#xff0c;组装机还好一些&#xff0c;如果想要使用Windows 10&#xff0c;只需要在安装系统的时候选择Windows 10镜像即可。 但是对于新笔记本、厂商的成品机、一体机来说&#xff0c;只要是全新的电脑&#xff0c;基本上都是Wind…

性能优化:自动化处理系统设计

性能优化&#xff1a;自动化处理系统设计 前言需求分析系统设计1. 调度中心2. 任务执行器3. 错误处理机制4. 通知系统5. 报表生成器6. 日志记录器 技术实现结语 前言 在当今这个信息爆炸、技术日新月异的时代&#xff0c;企业面临着前所未有的挑战和机遇。随着业务量的不断增长…

ArcGIS的8个“合并”功能要分清——矢量:编辑器合并,复制粘贴,工具合并、追加、联合——栅格:镶嵌、镶嵌至新栅

​​​ 点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 今天来看看ArcGIS中的几个涉及“合并”功能的用法。 对矢量&#xff1a; 包括编辑器中的合…

SprinBoot+Vue宠物领养救助微信小程序的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平…

JAVA呵护晚年从智慧开始养老护理代办陪诊陪护小程序

呵护晚年&#xff0c;从智慧开始 —— 养老护理代办陪诊陪护小程序全解析 &#x1f475; 【开篇&#xff1a;岁月静好&#xff0c;智慧护航】 随着时光的流转&#xff0c;家中的长辈渐渐步入晚年。如何给予他们最贴心的关怀与照顾&#xff0c;成为了我们心中的头等大事。今天…

Django Admin后台从一个页面同时编辑多个模型

要从Django Admin后台一个页面同时编辑多个对象&#xff0c;我们需要使用内联。 假设你有一个Category模型&#xff0c;并且需要在Admin后台Category编辑页面&#xff0c;同时编辑Villain模型。你可以在admin.py中使用内联&#xff1a; class VillainInline(admin.StackedInl…

光盘安全隔离与信息单向导入系统-信刻

信刻从用户需求出发&#xff0c;为更多用户提供安全可靠的跨网数据单向导入/导出光盘摆渡系统解决方案&#xff0c;解决内外网数据交换的问题&#xff0c;确保数据交换过程的安全性。 公司所研发出的光盘安全隔离与信息单向导入系统依托软硬件相结合的技术&#xff0c;集策略摆…

表外连接,数据去重,存在问题|解决

一、限制去重 1、distinct 整行去重 distinct your_column,.... 问题 &#xff1a;当连接log表&#xff0c;需要统计的主键可能重复 &#xff08;其他列可以相同&#xff0c;只要有一列不同&#xff0c;就会统计&#xff09;。 2、group by 当前字段全部去重 group by …

解决 Linux 上的 SSH 登录缓慢问题

如果您必须等待很长时间才能看到 SSH 密码提示&#xff0c;则可能存在多种问题。要解决 SSH 登录缓慢的根本原因&#xff0c;您可以运行带有 -vvv 选项的 ssh 命令&#xff0c;该命令将向您显示 SSH 登录期间幕后发生的情况。 $ ssh -vvv user<ssh-server>以下是 SSH 登…

猫粮有什么缺陷?主食罐头的好处有哪些?高分猫罐头大推荐

主食罐头是猫咪必需品吗&#xff1f;这应该是养猫新手都有过的疑惑。有的铲屎官可能觉得猫粮猫条小零食就足够了&#xff0c;无需再购置主食罐头。我家之前也是喂干粮的&#xff0c;慢慢地转为全罐喂养&#xff0c;在体验过两种喂养方式后&#xff0c;我只想说给猫猫买主食罐头…

LINUX常用命令-docker-Kubernetes

LINUX常用命令-docker-Kubernetes docker docker run: 创建并启动一个容器。docker ps: 列出当前运行中的容器。docker stop [container_id]: 停止一个运行中的容器。docker start [container_id]: 启动一个已停止的容器。docker rm [container_id]: 删除一个容器。docker im…

Robotics: computational motion planning 部分笔记—— week 1 graph-based

grassfire algorithm 四周扩散性&#xff1b;从终点开始按照相邻最小距离格子移动 Dijkstra’s Algorithm 标明从起点开始的所有点的最短距离&#xff08;从上一节点继承&#xff09;&#xff0c;直到终点 A* Algorithm 带有启发性的&#xff0c;给出距离估计&#xff0c…

DC-DC双向同步升降压35V宽频展频恒压恒流控制器QFN32L

概述&#xff1a; PC1035 是一款同步升降压控制器&#xff0c;适用于驱动高效电源转换器中的 MOSFET 或氮化镓(GaN)等功率器件。它支持高达 35V 的宽输入和输出电压范围&#xff0c;并可在降压、升降压和升压模式之间无缝转换。PC1035 集成了具有 UVLO 保护功能的上管和下管栅…

停止和删除所有 Docker 容器的详细指南

在 Docker 管理中&#xff0c;停止和删除容器是常见的操作&#xff0c;特别是在清理资源或维护环境时。Docker 提供了多种命令来管理容器&#xff0c;包括停止和删除。本文将详细介绍如何停止和删除所有 Docker 容器&#xff0c;包括常见命令的用法及其操作步骤。 一、理解 Doc…