Stable Diffusion LoRA, LyCoris

本节内容,给大家带来的是stable diffusion的LoRA与LyCoris模型课程。我们在上节课程中,已经详细讲解了关于大模型的使用。在stable diffusion中打造一个大模型,需要基于大量特定特征的图像集进行训练,我们通常将这个过程称之为Dreambooth训练,这个过程比较耗时,同时对计算资源的要求也比较高,因为该过程将产出一个完整的新的大模型,所以最终训练出的文件也会占据相当大的存储空间,但总体来说,Dreambooth训练出的大模型应用能力是最强的,能适应广泛的场景。

除了大模型,stable diffusion还引入了一些方法和技术,来对绘制图片的过程进行更为明确的引导。Lora模型便是其中的一种。

一:LoRA

我们经常看到一些爱好者上传的图片,非常的有特色,比如

可以看到这些图片对某一类角色或事物有着很好的刻画和特定风格输出,这些特定的角色和风格输出就是由Lora模型实现的。

LoRA并不是AI绘画专有的技术,其原本是针对于LLM(大语言模型)所开发的技术,旨在解决避免将整个模型参数拷贝下来才能对模型进行调校的问题。(相较于SD,LLM的模型参数量完全是另外一个级别的了,比如ChatGPT3据说有1750亿参数,如果每次修改都要拷贝整个模型出来,那就有点太难以调校了)。LoRA采用的方式是向原有的模型中插入新的数据处理层,这样就避免了去修改原有的模型参数,从而避免修改整个模型,同时其也优化了插入层的参数量,最终实现了一种轻量化的模型调校方法。

通过LoRA训练,我们最终将训练出一套新数据处理层参数,这些参数可以插入进原有的SD模型中,并使得输出的图像结果具有高度的特征性。Lora的训练过程,不需要对基础模型进行底层修改,训练时资源消耗也远小于Dreambooth训练,而最终生成的Lora模型大小通常也小于基础模型,一般都是几百M大小。这些特点使得Lora模型非常的亲民,很多AI绘图爱好者也会拿自己非常喜爱的图像数据集去训练专属的Lora模型。

我们在C站上可以看到很多爱好者上传的Lora模型。我们打开Model列表页面,点击右侧的过滤图标,Model types只选择Lora,页面将展示Lora模型卡片列表。

在列出的模型列表中,可以看到左上角标签为Lora或Lora XL,这些模型就是stable diffusion的爱好者们训练和上传的Lora模型。

我们点击一个Lora模型进去查看一下详细信息。

在右侧的详细信息表格,可以看到这个Lora是基于SD1.5的。Lora模型必须搭配大模型使用。虽然这里提示的是使用SD1.5,但实际上我们在选择大模型时,不一定必须选择SD1.5,也可以选择基于SD1.5基础模型所训练得出的其他大模型。大部分这些模型的兼容性都是比较好的,也有很多大模型(比如ghostmix)会在说明文档中特别强调对Lora的兼容性比较好。

当然,有的时候,某些大模型与LoRa无法配合得很好,比如如果使用二次元风格的大模型去配合动物写实类Lora,出图的效果不一定会很好,这个时候,可以尝试使用原生SD1.5模型,或者二者风格更接近的大模型。  

带有XL的Lora,通常是基于SDXL使用,

我们点击一个带有XL的Lora,点击进入,可以看到基础模型为SDXL 1.0。

与使用大模型相同,我们在使用Lora前,建议认真阅读Lora文档,很多Lora模型除了告诉我们如何在提示语句中添加Lora触发关键字,还会推荐添加的提示词关键字。

我们演示一下,

找到喜欢的Lora模型后,可以点击下载按钮可以将Lora模型下载到本地,

我们在安装课程中已经学习过,Lora模型下载后需要放置到stable diffusion webui程序主目录下的models文件夹中的Lora子文件夹中,

我们这里用鼎鼎大名的墨心 MoXin Lora来做演示,C站上下载该Lora,然后将文件放置到stable diffusion webui程序主目录下的models文件夹中的Lora子文件夹后,在stable diffusion webui主页面反向提示词下方的标签页,点击Lora,点击刷新,便可以看到刚刚下载好的Lora(注意如果选择的是SDXL大模型,则moxin1 lora不会显示,需要选择SD1.5底模的大模型,moxin1 lora才会显示)。

下载好后,如何调用Lora模型生成想要的图像呢,stable diffusion webui提供了多种方式

我们可以在提示词中直接写入<Lora:Lora名字:数字>,Lora名字后冒号的数字用于设置权重,

但是在使用中我们并不推荐这种方法,因为书写Lora名字的时候很容易写错,很可能导致实际上并没有调用到Lora模型,我们推荐的是另外两种方法。

第一种推荐方法是在页面中点击Lora标签页,然后点击对应的Lora卡片,可以看到Lora模型的信息就会自动添加到提示词中,我们只需要修改权重数字即可。这种方式能更准确地添加Lora模型信息到提示词,我们也可以同时添加多个Lora模型的信息到提示词中。

我们点击墨心lora,可以看到,墨心lora引用指示添加到了提示词中,我们增加提示词:

(masterpiece, top quality, best quality, official art, beautiful and aesthetic:1.2),shuimobysim, zhenbanqiao,  1girl,traditional chinese ink painting, <lora:shuimobysimV3:0.8>

我们可以仔细阅读该lora的文档,参考文档中的信息,修改Lora的权重为0.8,另外,Lora的模型右侧也提到了触发词,

添加这些触发词并不是必须的,但是我们推荐添加到提示语句中,推荐的大模型有guofeng3,

所以我们使用guofeng3,点击生成,stable diffusion很快帮我们生成了优秀的水墨画图像。

这里我们还要再次强调阅读文档的重要性,与大模型相同,在使用Lora前一定要认真阅读文档,因为文档中包含了详细的信息,比如提示词的推荐写法,参数的推荐设置,大模型的选用等等,这些信息都是引导AI绘制出高质量图像的关键。

除了上述方式引用Lora,另外一种推荐的方式是使用Addition Network插件来引入Lora,Additional Network是一个插件,他可以用于控制多个LoRA模型生成混合风格的图像

我们需要先安装Additional Network这个插件,该插件的官方地址如下。

https://github.com/kohya-ss/sd-webui-additional-networks

按照之前课程中已经讲述的插件安装方法,我们将插件下载到指定目录,然后重启webui

需要注意的是,默认情况下,addtional network会在插件目录models文件夹下的lora子目录去搜索模型,但我们建议修改设置,将lora搜索目录设置为stable diffusion的原生lora目录。设置的方法是在设置标签页找到可选附件网络(LoRA插件)设置项,然后在选项“扫描 LoRA 模型的附加目录”中,复制原生lora模型文件夹地址,保存设置即可。

addtional network允许任意地组合最多5个不同的LoRA模型并设置它们的权重(-1-2),使用addtional network,提示词中无需再通过尖括号:Lora名:权重的方式添加引用Lora的指示词 ,

我们演示一下addtional network的使用,安装addtional network后,在页面下方将出现一个可选附加网络下拉列表,点击展开,可以看到在这里我们可以附加最多5个lora模型,点击启用,第一个附加模型选择MoXinV1, 权重设置为0.8,

我们还可以附加另外的Lora,比如我们在第二个附加网络,设置好hanfuTang这个我们已经安装好的Lora,该Lora是一个可以生成汉服唐风图像的Lora模型,设置权重为0.6,然后填写好提示词

(masterpiece, top quality, best quality, official art, beautiful and aesthetic:1.2), 1girl,traditional chinese ink painting, pink upper shan, chest po skirt , tang style, shuimobysim (注意模型切换为sd1.5)

然后填入一些固定的反向提示词

(hand:1.3),finger,EasyNegativeV2,ng_deepnegative_v1_75t, lr,(monochrome:1.2),facial mark, facial tattoo,border,frame,(pantyhose),(low quality,worst quality:1.3),bad artist's work,crossed eyes,signature,watermark,username,text

这里的提示词中没有再通过尖括号:Lora名:权重的方式添加引用Lora的指示,点击生成,stable diffusion帮我们生成了一幅唐装水墨画,该图像也融合了moxin和hanfutang两个lora的特征。

二 :LyCoris

使用Lora模型是非常重要的SD绘图技巧,我们应该熟练掌握。

与Lora模型相似的还有LyCORIS模型

LyCORIS(有时又称LoHa)也是一个类似lora的微调模型,他是算法更优化、更简洁、更节约训练资源的微调模型,同时在stable diffusion webui中可以进行更多的参数微调。LyCORIS调节层数更多,可以精准的微调某一项的效果。比如脸、手、光影、服装以及皮肤等等。

我们在调用lora模型时的参数只有一个权重,而LyCORIS的参数可以非常丰富。我们预计将来也会出现基于LyCORIS的更多定向微调模型,比如面向脸、面向手、面向服装等。简而言之,LyCORIS比Lora增加了更多的参数,从而提供了更为精准与强大的AI绘图调节手段。

stable diffusion webui默认没有添加对lycoris的支持。在使用LyCoris前我们需要安装相应的插件,lycoris的插件地址如下

https://github.com/KohakuBlueleaf/a1111-sd-webui-lycoris

参照之前课程的讲述,我们将该插件下载放置到stable diffusion webui主程序目录下的extensions文件夹,然后重启webui,可以看到反向提示词下方的标签页列表出现了lycoris项目,接下来我们便可以使用lycoris模型来指导绘图。   

LyCoris的使用与Lora是非常类似的,我们只需要将下载的LyCoris模型文件下载到stable diffusion webui程序主目录models文件夹下的Lycoris目录即可。

我们以Delicate Armor这个LyCoris来做演示,该lycoris模型可以为人物添加盔甲元素,C站上搜索 Delicate Armor关键字。

下载好该模型文件并放置到对应文件夹下,点击反向提示词下方的LyCoris标签页,点击刷新按钮,可以看到下载的LyCoris模型,点击该模型对应的卡片可以将该模型的指示命令即尖括号lyco:名称:权重添加到提示词中,

我们先切换一个合适的大模型,选择一个人物写实模型,然后我们参考该LyCoris的文档,权重设置为0.6,书写提示语句如下,提示语句中也添加了文档中推荐的触发关键词,

masterpiece, best quality, (1boy:1.1),  delicate\(armor\), <lyco:delicate_armor_V2:0.6>

反向提示词使用仍然可以使用一些固定的写法

(worst quality, low quality:1.4), text, watermark

nsfw, mutated hands and fingers, deformed, bad anatomy, disfigured, poorly  drawn face, mutated, extra , ugly, poorly drawn hands, missing  , floating , disconnected limbs, malformed hands, out of  focus, long neck, long body

点击生成,可以看到,stable diffusion帮我们生成了一幅精美的穿戴者盔甲的人物图像。

这里还有一个小提示给到大家,Lycoris模型其实能很好地兼容Lora,比如我们可以采用lora的写法,使用尖括号lora:名称:权重的方式将lycoris的指令添加到提示词中

我们甚至可以将Lycoris模型下载到Lora目录,像使用Lora一样使用Lycoris模型

目前C站上提供的大部分lycoris模型其实并没有完整地体现lycoris模型的优势,比如lycoris模型理论上在使用时可以添加参数值来对绘图过程进行更细致的控制。但目前大部分lycoris模型并没有体现这些功能。

在lora的使用中我们提到可以使用additional network插件,additional network插件能简化lora模型的调用操作过程。到目前为止,additional network插件还不支持lycoris,但将来additional network插件应该会增加对lycoris的支持亦或者是有类似的插件提供对lycoris的支持。我们可以经常关注社区的一些信息,随时获取最高效的stable diffusion使用工具。

三:补充知识点:CLIP SKIP

本节课程我们还补充另外一些知识点,我们在C站上浏览其他爱好者上传的图片时,可以看到生成图片的详细信息,但我们更建议使用之前课程讲述的图片信息标签页来获取图片信息。比如我们浏览武墨 WuMo这个lycoris,将示例图片下载到本地,

使用图片信息标签页上传图片,可以看到详细信息,这些详细信息比C站上提供的信息更完整,也更准确。我们看到这张图片的详细信息里有Clip skip: 2, ENSD: 31337这两个特别的数字。这是两个非常重要的数值,但是我们在使用stable diffusion webui生成图片时从未设置这两个数值。这两个数值其实是在设置中来进行调整,

进入设置—打开stable diffusion项,可以找到clip skip或clip跳过层设置,该设置默认为1,由于课程篇幅有限,我们不对clip skip做过多的理论讲述,如果有兴趣,可以自行上网搜素stable diffusion clip skip的知识,我们只需要知道调整clip skip可以使绘图结果产生轻微的变化,在sd1系列大模型中,可以对该数值进行调整来调试图像输出结果。很多时候该数值设置为2,我们可以在这里将默认数值设置为2,保存设置即可。

我们也可以在用户界面项中的快捷列表中添加clip_stop_at_last_layers快捷项,保存重启webui,可以看到最上方出现了clip skip的快捷设置项,在绘制图片时调整该设置项可以对clip skip数值进行设置。

四:补充知识点:ENSD

ENSD 其实是 Eta noise seed delta 的缩写,  

该数值用于设置种子值偏移量,当生成图像时,该数值将添加到种子值中,如果种子值使用随机设置-1,则ENSD没有太多影响,但如果我们使用固定种子值还原图像时,一般需要将该值设置为31337,这是一个惯例值。

进入设置—打开采样器参数项,

可以找到Eta 噪声种子偏移,默认值为0,我们可以根据推荐设置为31337,保存即可。

好了,本节课的课程到这里就结束了,我们做一下总结,我们首先比较了Lora模型与大模型在微调模型时的区别,然后详细演示了在stable diffusion中如何使用Lora模型来引导AI绘制具有特定倾向性的图像,我们演示了Lora的两种不同引用方式以及使用Lora模型时一些需要注意的事项。

学习完Lora模型,我们继续讲解了与LoRa模型非常相似的LyCoris模型的使用。最后我们为大家补充了一些在stable diffusion应用时需要掌握的知识点。这些知识点可以帮助大家在某些场景能成功复现图像的绘制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/7439.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

[RoarCTF 2019]Easy Calc 1

[RoarCTF 2019]Easy Calc 1 审题 题目就是一个计算器。 看到源代码有 calc.php 进入看到waf的源代码 知识点 RCE 解题 审核代码 <?php error_reporting(0); if(!isset($_GET[num])){show_source(__FILE__); }else{$str $_GET[num];$blacklist [ , \t, \r, \n,\, &q…

文本转SQL(Text-to-SQL),场景介绍与 Spring AI 实现

在众多的 AI 大模型的应用场景中&#xff0c;Text-to-SQL&#xff0c;也就是文本转 SQL&#xff0c;是其中实用性很高的一个。Text-to-SQL 充分利用了大模型的优势&#xff0c;把用户提供的自然语言描述转换成 SQL 语句&#xff0c;还可以执行生成的 SQL 语句&#xff0c;再把查…

Oracle 23AI创建示例库

一、示例库介绍 多年来&#xff0c;Oracle 一直使用简单的数据库模式 SCOTT 及其两个突出的表 EMP 和 DEPT&#xff0c;用于文档和培训中的各种示例。但不少小伙伴并不知道如何创建这些示例数据&#xff0c;其实Oracle官方上就有提供对应的方法&#xff0c;本文就带领大家完成…

默认 iOS 设置使已锁定的 iPhone 容易受到攻击

苹果威胁研究的八个要点 苹果手机间谍软件问题日益严重 了解 Apple 苹果的设备和服务器基础模型发布 尽管人们普遍认为锁定的 iPhone 是安全的&#xff0c;但 iOS 中的默认设置可能会让用户面临严重的隐私和安全风险。 安全研究员 Lambros 通过Pen Test Partners透露&#…

微博舆情分析:使用Python进行深度解析

目录 一、准备工作 二、基础理论知识 三、步骤详解 数据预处理 情感分析 关键词提取 四、案例分享 数据爬取 数据分析 五、优化 六、结论 在当今信息爆炸的时代&#xff0c;社交媒体平台如微博已成为公众表达意见和情感的重要渠道。微博舆情分析通过对大量微博数据进…

Unet++改进3:添加NAMAttention注意力机制

本文内容:添加NAMAttention注意力机制 目录 论文简介 1.步骤一 2.步骤二 3.步骤三 4.步骤四 论文简介 识别不太显著的特征是模型压缩的关键。然而,它在革命性的注意机制中尚未得到研究。在这项工作中,我们提出了一种新的基于归一化的注意力模块(NAM),它抑制了较不显著…

潮玩宇宙方块兽系统开发:可定制UI与多种游戏内嵌助力个性化体验

潮玩宇宙方块兽系统开发正在推动潮玩与游戏的融合&#xff0c;通过个性化的UI设计和多游戏内嵌模式&#xff0c;为用户带来了独一无二的体验。本文将从可定制UI、多游戏内嵌功能以及系统实现等方面入手&#xff0c;探讨如何构建一个极具吸引力的潮玩宇宙方块兽系统。 一、可定制…

利用亚马逊AWS IoT核心和MQTT进行数据采集的综合指南

论文标题&#xff1a;A Comprehensive Guide on Data Acquisition Utilizing Amazon AWS IOT Core and MQTT 中文标题&#xff1a;利用亚马逊AWS IoT核心和MQTT进行数据采集的综合指南 作者信息&#xff1a; Tanishq. I. KohliPradip R. Selokar 两位作者均来自印度那格浦尔…

高校宿舍信息管理系统小程序

作者主页&#xff1a;编程千纸鹤 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验&#xff0c;被多个学校常年聘为校外企业导师&#xff0c;指导学生毕业设计并参…

一篇文章入门docker!

文章目录 DockerUbuntu 下 docker 安装安装docker运行docker Docker的常用命令帮助命令镜像命令容器命令其他常用命令小结 分层理解一、Docker镜像的分层结构二、UnionFS与镜像分层三、镜像层的具体内容四、镜像分层的好处五、容器层与镜像层的关系 如何提交一个自己的镜像 Doc…

自动驾驶革命:从特斯拉到百度,谁将主宰未来交通?

内容概要 自动驾驶技术正在经历一个前所未有的革命性变化&#xff0c;各大企业纷纷抢占这一充满潜力的新市场。以特斯拉和百度为代表的行业巨头&#xff0c;正利用各自的优势在这一技术的赛道上展开激烈竞争。特斯拉凭借其在电动汽车和自动驾驶领域的前瞻性设计与不断革新的技…

配置管理,雪崩问题分析,sentinel的使用

目录 配置管理一&#xff1a;什么是配置管理二&#xff1a;配置共享三&#xff1a;配置热更新 雪崩问题一&#xff1a;原因分析二&#xff1a;解决方案 Sentinel一&#xff1a;快速入门二&#xff1a;请求限流三&#xff1a;线程隔离四&#xff1a;fallback五&#xff1a;服务熔…

MATLAB中,clear的使用方法

在MATLAB中,clear 命令是一个非常重要的工具,用于管理工作空间中的变量。其主要功能是清除变量,以帮助用户保持环境的整洁并避免潜在的命名冲突。以下是 clear 命令的详细使用方法和相关信息。 1. 基本用法 清除所有变量:clear此命令会清除当前工作空间中的所有变量。这意味…

前端开发实现自定义勾选/自定义样式,可复选,可取消勾选

基于后端返回数组实现多选、复选 以下代码基于vue2&#xff0c;如果有需要React/Vue3或者其他框架代码的&#xff0c;可以通过国内直连GPT4o进行代码转换&#xff0c;转换正确率99% 前端代码如下(直接拷贝到你的vue代码即可)&#xff1a; <!-- CustomCheckboxList.vue --&g…

面向对象技术简述(含设计模式)

6.9.2 面向对象技术 面向对象 对象 分类 继承 通过消息的通信 面向对象 对象 分类 继承 通过消息的通信 面向对象对象分类继承通过消息的通信其中包括&#xff1a; 对象 运行的实体&#xff1b;既包含属性/数据&#xff0c;又包含方法/行为/操作数据的函数&#xff1b;…

【RabbitMQ】04-发送者可靠性

1. 生产者重试机制 spring:rabbitmq:connection-timeout: 1s # 设置MQ的连接超时时间template:retry:enabled: true # 开启超时重试机制initial-interval: 1000ms # 失败后的初始等待时间multiplier: 1 # 失败后下次的等待时长倍数&#xff0c;下次等待时长 initial-interval…

在终端打印csv文件中的内容(Python)

目的 我想&#xff08;有个性地&#xff09;输出一个csv&#xff08;txt&#xff09;文件中的内容&#xff0c;于是写了一段代码 内容 csv文件中内容 操作,用户,名称,条件,例外 拒绝,Everyone,鲁大师,发布者, 拒绝,Everyone,驱动精灵,发布者, 拒绝,Everyone,2345,发布者, 拒…

【北京迅为】《STM32MP157开发板嵌入式开发指南》-第七十八章 Qt控制硬件

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器&#xff0c;既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构&#xff0c;主频650M、1G内存、8G存储&#xff0c;核心板采用工业级板对板连接器&#xff0c;高可靠&#xff0c;牢固耐…

C语言-详细讲解-洛谷P1909 [NOIP2016 普及组] 买铅笔

目录 1.题目要求 2.题目解读 3.代码实现 1.题目要求 2.题目解读 这道题主要考察了顺序结构&#xff0c;需要我们分别计算三种包装的花费并进行比较&#xff0c;需要思考的就是如何计算包装花费。 3.代码实现 #include<stdio.h> int main(){int n,a1,a2,b1,b2,c1,c2…

刷题日记1

手机 题目描述 一般的手机的键盘是这样的&#xff1a; 要按出英文字母就必须要按数字键多下。例如要按出 x \tt x x 就得按 9 9 9 两下&#xff0c;第一下会出 w \tt w w&#xff0c;而第二下会把 w \tt w w 变成 x \tt x x。 0 0 0 键按一下会出一个空格。 你的任务是…