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文件要小得多的原因。

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

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

在哪里找到LoRA模型?

Civitai

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

Hugging Face

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标签:

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

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

就是这样!

使用LoRA的注意事项

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

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

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

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

实用的LoRA模型

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

add_detail

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

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

add_saturation

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

add_brightness

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

总结

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

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

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

LoRA大模型微调的利器的更多相关文章

  1. DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍

    DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍 1. 概述 近日来,ChatGPT及类似模型引发了人工智能(AI)领域的一场风潮. 这场风潮对数字世 ...

  2. Torchvision模型微调

    Torchvision模型微调 本文将深入探讨如何对 torchvision 模型进行微调和特征提取,所有这些模型都已经预先在1000类的magenet数据集上训练完成.将深入介绍如何使用几个现代的C ...

  3. 华为高级研究员谢凌曦:下一代AI将走向何方?盘古大模型探路之旅

    摘要:为了更深入理解千亿参数的盘古大模型,华为云社区采访到了华为云EI盘古团队高级研究员谢凌曦.谢博士以非常通俗的方式为我们娓娓道来了盘古大模型研发的"前世今生",以及它背后的艰难 ...

  4. [Pytorch框架] 4.1 Fine tuning 模型微调

    文章目录 4.1 Fine tuning 模型微调 4.1.1 什么是微调 为什么要微调 迁移学习 Transfer Learning 二者关系 4.1.2 如何微调 4.1.3 注意事项 4.1.3 ...

  5. 无插件的大模型浏览器Autodesk Viewer开发培训-武汉-2014年8月28日 9:00 – 12:00

    武汉附近的同学们有福了,这是全球第一次关于Autodesk viewer的教室培训. :) 你可能已经在各种场合听过或看过Autodesk最新推出的大模型浏览器,这是无需插件的浏览器模型,支持几十种数 ...

  6. PowerDesigner 学习:十大模型及五大分类

    个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...

  7. PowerDesigner 15学习笔记:十大模型及五大分类

    个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...

  8. 文心大模型api使用

    文心大模型api使用 首先,我们要获取硅谷社区的连个key 复制两个api备用 获取Access Token 获取access_token示例代码 之后就会输出 作文创作 作文创作:作文创作接口基于文 ...

  9. AI大模型学习了解

    # 百度文心 上线时间:2019年3月 官方介绍:https://wenxin.baidu.com/ 发布地点: 参考资料: 2600亿!全球最大中文单体模型鹏城-百度·文心发布 # 华为盘古 上线时 ...

  10. 千亿参数开源大模型 BLOOM 背后的技术

    假设你现在有了数据,也搞到了预算,一切就绪,准备开始训练一个大模型,一显身手了,"一朝看尽长安花"似乎近在眼前 -- 且慢!训练可不仅仅像这两个字的发音那么简单,看看 BLOOM ...

随机推荐

  1. 【规范】Git分支管理,看看我司是咋整的

    前言 缘由 Git分支管理好,走到哪里都是宝 事情起因: 最近翻看博客中小伙伴评论时,发现文章[规范]看看人家Git提交描述,那叫一个规矩一条回复: 本狗亲测在我司中使用规范的好处,遂把我司的Git分 ...

  2. Java 散列表HashTable

    什么是散列表hash table和使用场景 什么是散列表 散列表(Hash table,也叫哈希表),是根据关键码值(key value)而直接进行访问的数据结构.它通过把关键码值映射到表中一个位置来 ...

  3. VMware vCenter Server 7.0U3r 下载 - 修复堆溢出 (远程执行代码) 和本地权限提升漏洞

    VMware vCenter Server 是一款高级服务器管理软件,提供了一个集中式平台来控制 vSphere 环境,以实现跨混合云的可见性. 简化且高效的服务器管理 什么是 vCenter Ser ...

  4. 解决方案 | 将时间转换为毫秒bat

    @echo off setlocal enabledelayedexpansion rem 输入的时间 set "time_input=00:07:07.1" rem 解析时间 f ...

  5. supervisor.conf部署及维护

    启动服务 supervisord -c /etc/supervisord.conf 启动服务 supervisorctl start 关闭服务 supervisorctl stop

  6. Nginx使用upstream实现动静分离

    一.为什么要进行动静分离 分离资源,减少不必要到的请求消耗,减少请求延时. 注:我这里,是nginx处理静态资源,apache处理动态资源. 场景分析: 1.未分离之前的场景步骤 (1)客户端请求ur ...

  7. [oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果

    字符显示器 回忆上次内容 简体和繁体的汉字 字符数量都超级大 感谢王选和陈堃銶等前辈发明了激光照排技术 中文排版从此使用上了gb2312编码   ​   添加图片注释,不超过 140 字(可选)   ...

  8. oeasy教您玩转vim - 55 - # 参数替换

    ​ [Github地址] (https://github.com/overmind1980/oeasyvim) [Gitee地址] (overmind1980/oeasyvim) [蓝桥实验楼 邀请码 ...

  9. 玄机-第二章日志分析-apache日志分析

    前言 出息了,这回0元玩玄机了,因为只是日志分析,赶紧导出来就关掉(五分钟内不扣金币) 日志分析只要会点正则然后配合Linux的命令很快就完成这题目了,非应急响应. 简介 账号密码 root apac ...

  10. JavaScript小面试~宏任务和微任务

    首先,我们要知道JavaScript是单线程调用,在程序启动的时候,会把不同的代码段分派到不同的调用栈,同步任务在同步栈中直接执行,宏任务分派到宏任务栈,微任务会分配到微任务栈,分配好之后,调用栈会被 ...