Stable Diffusion的Lora使用和训练 如何使用和训练LoRA模型?你想要的都在这!--人人都可以当炼金术士!

news2024/12/27 2:00:10

随着人工智能技术的不断发展,图像生成与反推技术已经成为了AI领域的一大热点。今天,我们就来为大家详细介绍Stable Diffusion的Lora使用和训练方法,让每个人都能成为炼金术士,创造出属于自己的图像生成魔法!

在我们使用和训练LoRa之前,我们先介绍下LoRa的概念和作用。

LoRa是基于大模型基础上,对产生的画面的一种微调手段的小模型。如果把基础模型比喻为游戏引擎,那么LoRa就是相当于游戏mod的存在。他是基于基础模型上对画面更具有可控性的一种微调方式,如果你用的是二次元基模,那么通过真人LoRa也不能出现真人画面。他只是一个辅助、做些美化,不可能对画面画风进行大幅度的修改。

在这里插入图片描述

LoRa有很多种类型,有场景LoRa、画风LoRa、姿势LoRa、服装LoRa、汽车LoRa、人物LoRa、甚至有专门某个部位的如眼睛的LoRa、手部的LoRa以及调光影的影调LoRa。

LoRa这个名称可以理解为一个微调模型的统称,我们一般说的LoRa模型,其实包括:LyCORIS、LoHa、LoRa、LoCon、LoKR 和 DyLoRA 等,他们的区别在于因微调技术的分类和其算法不同。

目前用的较多的还是,传统的LoRa和LyCORIS两种,而LoHa模型又是基于LyCORIS上的技术。LyCORIS的表现比传统的Lora会好些,当然他的模型大小也相对大点,在344M左右,传统的LoRa则一般在144M或者更小。

LoRa的用处


类比大语言模型基础上,在训练属于自己领域特性的微调语言模型的道理一样,训练LoRa模型,是基于大模型基础上的微调模型。

最常用的是通过训练比如特定人物或衣服的 LoRA模型后,就可以在 Prompt 中用一个触发词调用这微调模型,从而获得特定人物或衣服的图片。

有如下的作用与优点:

  • 节省训练时间:

可以让我们用不多的时间里,对特定的目标进行快速地通过模型训练让AI学习到后并在之后的使用中可以精准调用。而不用投入过多的时间精力去训练大模型。

  • 提高准确性:

使用LoRa模型微调,可以在保持底层模型的特征提取能力的同时,针对具体任务进行优化,从而提高模型在特定任务上的准确性。

  • 加快创作速度:

LoRa 模型可以快速生成想法的效果,这些结果可以为创作者提供新的创作灵感,开拓新的设计思路和方向,从而更好地实现自己的设计目标。

  • 可迁移性:

可迁移性意味着可以在不同任务之间共享底层模型,从而减少重复训练,提高工作效率,使其能够更快速地从一个任务转移到另一个任务。

===========================

LoRa训练的6个环节


我们这里介绍的是传统的LoRa模型的训练方式和参数,你们可能会看到不少不同的参数和训练方式的内容,那是或许是不同的细分模型类型的不同,微调技术的分类和其算法不同,但训练步骤和环节都基本差不多。

在此我们先将整个训练过程做个梳理和讲解,实操阶段可以学习完这篇后,再结合我们推荐的视频内容,你会更容易上手。

01.训练环境搭建

我们可以到B站“秋葉aaaki”的视频内容中获取链接,或者到他在GitHub上的链接下载安装训练所需的脚本。当然,这之前你需要已装有Python,这在使用Stable Diffusion前已经搭建了的环境。

训练包LoRa-scripts下载:

(需要的同学可自行扫描获取)

在这里插入图片描述

将训练包下载后解压缩到自己指定的路径下即可。我是放在D盘的根目录下,方便后面训练调用和训练集存放不用挖太深。

02.训练素材准备

训练集素材的搜集很重要!很重要!很重要~!

对要用于训练的图片素材:例如在角色训练素材中,需要清晰的、多角度的、正脸的、侧脸的、最好是背景干净的、各种表情的、摆头的。就是需要各种角度(不要有俯视的,尽量都是平视图避免比例失调)、景别、姿势、光照。脸部不要有被遮挡的图片。这样增加训练集的多样性,提高模型的泛化性。

(这里借用B站博主的图片作训练集图片挑选的示范)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

对于高清的照片(至少要1M以上的文件),可以设置高分辨率来训练(比如1024*768),还可以将高清照片截取不同区域来重复利用为素材。

将搜集好的图像文件保存到一个目录下后备用。

如果是角色训练集控制在20-50张图左右,太多会导致过拟合。

如果是训练其他风格,有说法是图片越多效果就越好,相应的训练时长也会增加,建议在50~80张。

在这里插入图片描述

影响训练出的LoRa模型的好坏,训练集是最最最重要的~!

如果是角色训练,也建议将需要训练的人物及相关的特征装饰都抠出来,背景尽量简单或直接是纯色背景,建议白底或黑底,但不要是透明底。

*素材可以少,但是质量一定要高。

*角色背景最好是白底网站上面可以选择换背景颜色

搜集好训练用的图像后,需要进行大小的规范处理,需要是64的倍数。一般都处理为512*512,也可以是768*768,不建议超过1024,尺寸越大则越吃显存。

03.图像预处理

将裁切规范后的训练集图像文件夹,置入Stable Diffusion中的“训练”标签页中。

所谓的图像预处理,就是将批量的训练集中图像进行批量打标签,批量给训练集中的每一张图像生成一个对应的tag文本文件。

在这里插入图片描述

04.打标签

这个环节,将对tag文本文件的描述语进行处理,删除关于描述人物特征的tag,比如你要保留其黑色头发作为训练LoRa的自带特征,而不会在出图时头发被改为金色,那么这里就要将“black_hair”的描述tag删除掉。那么在训练时,AI自动将黑色头发与该LoRa绑定,之后的出图中就不会出现其他颜色的头发。还比如微笑的tag,smile,就需要保留,作为这张图像的面部特征需要告知AI。

因此在检查tag这个环节,需要我们手动将AI识别不到,但又需要将其排出在我们LoRa特征之外的tag补齐。这就是为什么我们在挑选训练集图像的时候就需要讲究越简单越好。如果你的人物训练集图片中只有要的人物和白色背景,那么tag文档中只需要留下触发词和white backgroud即可。

注意,这个触发词一定要设置,可以是特别的自己好记的英文字母的代名词。

对于模糊的图像tag中可以添加动态模糊的描述词,对于面部特写的图像可以加特写的tag,让AI更好地学习。

这里批量处理tag也有小工具软件辅助,我们推荐的是BooruDatasetTagManager,一个单独的小工具软件。可以很方便对导入的文本文件进行统一的tag删减和增加。

在这里插入图片描述

将处理好的图片和文本文档的文件夹拷贝到训练用的路径下,并设定好文件夹下划线前的循环训练次数值(Num)。这个Num意思是对训练集的图像学习的循环次数。

在这里插入图片描述

批量处理Tag小工具下载链接:

05.开始训练

这里注意,对每次训练的数据最好自己做个文档记录,记录主要的参数设置,作为之后测试模型效果后进行训练参数调整的参考依据(我自己记录的主要参数有:训练集照片数量、Num值、epoch、Dim值、Alpha值、batch size,学习率和采样器都还是默认的,之后深入学习后可以尝试)。

训练时长,总的来说,不宜也不需训练过长时间。尽可能把训练时长控制在半小时到一小时内,时间过长容易导致过拟合,通过调整等参数控制训练时长。即便是batch size值为1,也是如此,这就意味着你的训练总步数其实是不需要过多。(当然,时长也跟显卡的功力也有一定关系,但时长不至于偏差得几倍去。)

都准备好训练集后,就是对训练脚本(目录LoRa-scripts下,编辑训练脚本“train.ps1”)进行修改,调整训练参数后,就可以执行此脚本文件开始训练。

在这里插入图片描述

在这里插入图片描述

参数讲解

Clip用1似乎效果不佳,真是玄学,还是用回2吧,不管是真人还是二次元。

训练的结果好坏,是否过拟合或欠拟合,就跟我们在脚本中设定的参数也是有关的。

训练用的底模,一般用chilloutmix_Ni.safetensors(偏人物)或官方的SD1-5的版本(建议),这里最好是将模型先拷贝到训练程序的相应目录下D:\LoRa-scripts\sd-models,这样就不需要将路径最前面的一个“.”改为“…”。

接着设定训练集的路径,将我们保存训练集图像文件的路径复制黏贴入即可。注意如果你没有将训练集的文件夹拷贝到程序的目录下D:\LoRa-scripts\,那么就需要在路径最前面将[dir=“.],改为[dir=”…],就是要加多一个小点,训练集的文件夹不在程序的目录下调用。

dim值和alpha值设定,训练人物一般都设32,64也是可以;训练风格可以用到128。

分辨率resolution的设定,根据训练集的图片文件的像素来设定即可。

max_train_epochs表示这个训练跑多少批次(或称为跑多少圈);

save_every_n_epochs表示跑多少圈保存一次模型。

Batch Size表示训练这些图片时,每训练几次算1步。

总训练数=训练集的图片数量*Num值*epoch值

训练步数=训练集的图片数量*Num值*epoch值/Batch Size值。

举例参数是:

34张*10Num*20epoch=6800次。

06.模型测试

炼出的多个模型,如何知晓并筛选出最好用的那个,就需要我们用脚本中的xyz图表的方式来跑图测试。

跑图测试调用LoRa的方式可以是用Additional Networks中的模型类型和权重来做xy轴,也可以是用提示词搜索替换的方式来改权重(但这好像只能是对不同权重的比对而无法比对不同的LoRa来比对)。

先将Additional Networks开启,简单设置下就好。

在这里插入图片描述

再到脚本栏选用xyz图表,进行各项对比参数的设置。

在这里插入图片描述

在这里插入图片描述

最后生成的阵列图中,就可以很直观地看出哪个模型,在某种权重值情况下表现得最好。至于采样模式,我个人比较偏好用DPM++ 2M Karras,当然也可以用xyz图表跑跑看其他几种不同采样方法下的模型表现情况,不建议选太多种跑图。

感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。

在这里插入图片描述

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。
在这里插入图片描述

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述
在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!
在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

在这里插入图片描述
在这里插入图片描述

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

108.WEB渗透测试-信息收集-FOFA语法(8)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:107.WEB渗透测试-信息收集-FOFA语法(7) 指挥系统的后台&#xff…

把GV幅度还不赶紧地方吧

文章目录 标题1代码 标题1 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</titl…

pve虚拟机常见问题汇总

一、问题记录 当你遇到 Proxmox VE (PVE) 报错信息 “TASK ERROR: can’t lock file ‘/var/lock/qemu-server/lock-141.conf’ - got timeout”&#xff0c;通常意味着 PVE 尝试对一个虚拟机进行操作&#xff08;如停止或重启&#xff09;时&#xff0c;无法获取必要的锁文件&…

项目管理系统如何实现项目申报流程自动化?

传统的项目申报流程往往繁琐复杂&#xff0c;涉及众多环节和部门间的协作&#xff0c;不仅耗时费力&#xff0c;还容易因人为疏忽而导致错误或延误。随着信息技术的飞速发展&#xff0c;项目管理系统的出现为项目申报流程的自动化提供了可能&#xff0c;极大地提升了申报效率和…

【Windows】自定义显示器的分辨率

背景 由于本人更新驱动导致2个显示器里面&#xff0c;有一个显示器的分辨率只剩下2个可以调节 这样就导致2个显示器分辨率不同&#xff0c;更新了多次驱动都修复不了&#xff0c;所以想着看能不能自定义分辨率 工具下载 显示器自定义分辨率工具 或者百度搜索 Custom Resolu…

基于大数据的二手房价数据可视化系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

求组合数专题

求组合数 Ⅰ&#xff08;递推公式&#xff09; 思路 递推法预处理 利用公式 复杂度 直接查询 单次查询复杂度 代码 #include <bits/stdc.h> using namespace std; const int N 2010; const int mod 1e97; int c[N][N]; int get_c(int a, int b) {c[0][0] 1;for(i…

解决VRM格式模型在Unity中运行出现头发乱飞等问题

1、问题 通过VRoidStudio制作导出的vrm格式的模型&#xff0c;放在unity中使用时&#xff0c;一运行就会出现头发乱飞&#xff0c;没有自然下垂的问题 2、解决方法 将模型下的secondary中的所有VRM Spring Bone脚本中的Drag Force改为1&#xff0c;Hit Radius改为0 修改后…

SpringBoot+Thymeleaf发票系统

> 这是一个基于SpringBootSpringSecurityThymeleafBootstrap实现的简单发票管理系统。 > 实现了用户登录&#xff0c;权限控制&#xff0c;客户管理&#xff0c;发票管理等功能。 > 并且支持导出为 CSV / PDF / EXCEL 文件。 > 本项目是一个小型发票管理系统…

LeetCode[中等] 24.两两交换链表中的结点

给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 思路&#xff1a;递归 头结点head&#xff0c;第二个结点head.next, 交换结点…

【论文阅读】MEDICAL GRAPH RAG: TOWARDS SAFE MEDICAL LARGE LANGUAGE MODEL VIA

论文地址&#xff1a;https://arxiv.org/abs/2408.04187#:~:textWe%20introduce%20a%20novel%20graph-based%20Retrieval-Augmented 代码地址&#xff1a; GitHub - MedicineToken/Medical-Graph-RAG: Medical Graph RAG: Graph RAG for the Medical Data 1 研究背景&#xff1…

LARA:多语言多轮对话意图分类的新突破

人工智能咨询培训老师叶梓 转载标明出处 多轮对话意图分类面临的主要挑战在于对话的复杂性和上下文的不断变化。如图 1 所示。在多轮对话中&#xff0c;意图可能随着对话的进展而变化&#xff0c;这就需要注释者不仅要理解每条消息的内容&#xff0c;还要把握整个对话的上下文…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-27

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-27 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-27目录1. VisScience: An Extensive Benchmark for Evaluating K12 Educational Multi-modal Scientific Reasoning VisScience:…

Android开发国家手机号归属地列表

Android开发国家手机号归属地列表 国家手机号归属地列表需求不多&#xff0c;但是还是有一些 一、思路&#xff1a; 本地的国家归属号json 二、效果图&#xff1a; 三、关键代码&#xff1a; // 联系&#xff1a;893151960 public class ChooseCountryActivity extends Ap…

golang 获取证书的生效及过期时间

测试样例 func TestGetCertVaildTime(t *testing.T) {certPEM, err : ioutil.ReadFile("aa.bbb.com.crt")if err ! nil {fmt.Println("读取证书文件出错:", err)return}// 解码PEM格式的证书block, _ : pem.Decode(certPEM)if block nil {fmt.Println(&q…

Deep Tone Mapping Operator for High DynamicRange Images

Abstract 计算快速的色调映射算子 (TMO) 可以快速适应各种高动态范围 (HDR) 内容&#xff0c;对于在电影屏幕或标准显示器等各种低动态范围 (LDR) 输出设备上进行可视化至关重要。 现有的 TMO 只能成功地对有限数量的 HDR 内容进行色调映射&#xff0c;并且需要进行广泛的参数…

Mac通过ssh连接工具远程登录服务器( Royal TSX安装及使用)

一、Royal TSX软件下载地址 Royal Apps 二、Royal TSX 汉化 汉化包地址&#xff1a;GitCode - 全球开发者的开源社区,开源代码托管平台 三、基础配置 Royal TSX 是一款基于插件的应用&#xff0c;刚安装时还不具备使用条件&#xff0c;需要进行一些基础配置 1 安装基础插件…

银行CRM系统的核心功能解析与应用价值

在当今竞争激烈的金融市场中&#xff0c;银行业务的成功与否&#xff0c;越来越依赖于高效而精准的客户关系管理系统&#xff08;CRM&#xff09;。Zoho CRM系统不仅帮助银行提升服务质量、增强客户满意度&#xff0c;还能有效地促进业务发展和风险控制。为了帮助读者更好地理解…

蓝鹏螺纹钢测径仪的三大测量要点 纵肋 横肋 基圆

关键字:螺纹钢测径仪,螺纹钢纵肋测量,螺纹钢横肋测量,纵肋间隙测量,横肋间隙测量,螺纹钢基圆测量, 螺纹钢测径仪在测量螺纹钢时&#xff0c;主要关注纵肋、横肋和基圆这三大要点。以下是针对这三个方面的详细测量要点&#xff1a; 一、纵肋的测量要点 纵肋是螺纹钢表面上的凹陷…

Ktor快速上手1 - 第一个服务端项目

Ktor 快速上手 第一个APP 工程创建 首先你需要创建一个Ktor工程&#xff0c;这里有两种办法创建&#xff1a; 网页创建后下载包到本地&#xff0c;作为工程打开&#xff1a;Ktor: Project Generator直接在IDEA里面创建Ktor工程 为了方便操作&#xff0c;这里直接在IDEA里面…