在这篇文章中,我将梳理和总结我在LoRA训练过程中的思考方式、步骤,以及我们所遇到的问题及其解决方案的回顾。希望这能够给初涉炼丹之路的朋友们带来一些启发和帮助。
LoRA的相关实用信息:
在前段时间,首次踏足了LoRA模型的训练领域。在整个训练的时间里,一直在不断面对各种问题,经过摸索、解决问题,对模型进行修改和完善,最终成功地度过了这个训练的阶段。庆幸的是,所有的问题都被一一解决。
一、什么是Lora
Lora这一术语源于《LoRA: Low-Rank Adaptation of Large Language Models》这篇于2021年发表的论文。它代表着一种新颖的大型语言模型的低秩适配器。简而言之,Lora通过减少可训练参数的数量,实现对大型模型的微调,使得模型在性能上尽可能不受影响。
在此之前,要调整Stable Diffusion的效果,只能依赖Dreambooth的方法进行大模型的重新训练。然而,重新训练大模型的要求颇高,计算资源需求大,速度缓慢。自从引入Lora到Stable Diffusion后,训练门槛显著降低,同时也扩展了适用范围。这让我们这些对AI绘画充满兴趣的非专业人士也能够在家中利用个人电脑尝试训练自己的Lora模型。
二、要求条件
LoRA的训练对显卡性能有一定的要求,同时需要安装一些便于训练的软件。
首先,计算机配置的主要关注点是显卡,需要确保显卡有足够的显存,其他配置相对较好即可。在选择显卡时,显存是最关键的考量因素,SD1.5版本的底模6G显存勉强可用,8G显存则能相对流畅地生成图片和进行LoRA的精炼。若显卡配备12G显存,更能顺畅地使用Dreambooth微调大模型。
其次,推荐下载几款后续训练非常便捷的软件,这有助于新手降低训练难度,提高炼丹效率。我已经下载了其他Lora训练丹炉,尽管尚未使用,但对于感兴趣的小伙伴,也可以自行尝试下载并使用。
1、秋叶大佬Stable Diffusion WebUI整合包
2、BooruDatasetTagManager用来修改标签
3、秋叶大佬LoRA训练器SD-Trainer
4、Additional NetworkStable-Diffusion插件
三、实操训练
训练大致分为六个步骤
1、明确目标
在准备进行LoRA模型的训练之前,我们首先需要明确自己想要训练的Lora类型。有的博主将模型分成了几个主要的类别,包括人物角色、画风/风格、概念、服饰、物体/特定元素等。
我将其简化为两个大类别:具象类和泛化类。具象类包括一些具体的事物,比如一个物体、一种姿势、一种服装、一个人物、某个特定元素等。而泛化类则包括一些抽象的概念,如某种场景、某种艺术风格、色彩风格等。
在训练初期明确定义目标,有助于更好地确定所需素材的数量以及选择合适的大模型类型,为后续的具体训练奠定了坚实的基础。
2、搜集素材
主要有两个方面:「大模型的选择」和「图片质量」是在素材收集过程中至关重要的两个方面!
在素材收集的阶段,我们依然按照第一步中的训练目标,划分为具象类和泛化类。
(1)Lora(具象类)
(2)Lora(泛化类)
总体素材收集通用要求:
尽量选择清晰无遮挡的图片作为训练素材,如果是人像,注意面部清晰,避免任何遮挡(如头发、手等)。选择画质清晰、图像质量好的图片,避免分辨率过低。
注意版权问题,切勿使用有版权的图片,对肖像类素材尤其要慎重。
3、素材整理
素材处理主要包含统一素材尺寸、生成标签和优化标签。
(1)、统一素材尺寸我们可以利用修改图片工具对图片尺寸进行批量处理,确保至少一边为512px,同时必须是64的倍数。横竖图可以混合在一起进行训练。也可以使用美图秀秀或者Photoshop进行手动裁剪。
(2)、生成标签我采用的是秋叶大佬提供的StableDiffusionWebUI,启动SD-训练-图像预处理。
在你的电脑上创建两个文件夹,我简单命名为a和b(a文件夹存放你收集好的图片素材,即为「源目录」。b文件夹暂时不需要理会,等到SD自动完成标签打印后,它会将打标文件和你的图片自动存放在b文件夹内,即为「目标目录」),
然后调整宽度和高度,保持一致于你的素材尺寸。将文件夹1和2的地址复制,分别粘贴到源目录和目标目录的位置。
有两种生成标签的方式:BLIP(即自然语言标签,比如“一个女孩在草地上开心的跳舞”)和Deepbooru(即词组标签,常用,比如“一个女孩,草地,跳舞,大笑”)。一般选择使用Deepbooru生成标签。
当SD界面右侧显示Preprocessing finished时,表示SD已经为你自动打好了标签。打开刚才创建的2文件夹,你将看到图片和自动生成的标签,文本文件中就是SD自动打好的标签。
(3)、优化标签在第一次训练时,我没有进行标签的优化,直接训练Lora,但最终的效果并不理想。在第二轮训练中,我增加了素材数量,同时优化了标签。
标签的优化通常有两种方式:a)保留全部,不进行删减。虽然这种方法比较方便,但需要使用准确的关键词,以还原期望的效果;2)删除部分特征标签,我采用的是此方法。
我使用了批量修改关键词的工具BooruDatasetTagManager,这是许多专家推荐的工具,尽管界面较为原始,但它可以方便地批量增、删、改、查关键词,并通过调整关键词位置来调整权重。当然,你也可以使用VsCode,或者直接使用txt文件来进行调整。
下载后,双击exe文件运行,将会弹出相应的界面。该界面分为三个区域,包括「数据集区域」、「图片标签区域」和「数据集内所有标签区域」。标签相关区域右侧有各种操作,包括增加、删除、翻译、上下移动标签等功能,常用的功能主要集中在这几个操作上。
在文件选中状态下,通过读取数据集目录,你可以导入整个数据集。在界面选中状态下,你可以进行标签的翻译,将所有标签进行翻译。标签支持拖动上下移动,可以更改权重。在完成所有的修改后,请务必记得保存这些更改。
一旦数据集导入完成,我们就可以开始根据图片素材逐步调整标签。值得注意的是,标签提示词的前后排列顺序直接影响着标签的权重,排在前面的标签权重更为显著。因此,我们可以将希望强调的效果或风格标签放在前面,而将一些较为次要的标签,如“背景干净”之类的,尽量排在后面。
在进行标签优化时,可以考虑删减与训练风格或生成内容无关的词汇。例如,若要生成“手绘插画”风格的LoRA模型,就应该保留图片素材中与手绘插画风格相关的内容,将与之无关的词汇标签删除。同时,可以引入触发词,如“shouhui”或“chahua”,与手绘插画风格相关的词汇与这些触发词关联。一旦填写了触发词,LoRA就会自动获得相应的风格特征。
到此为止,准备工作已经全部完成,现在可以着手准备正式进行LoRA的训练。我采用的是秋叶大佬提供的LoRA训练器SD-Trainer,并选择了新手训练模式。在新手训练开始之前,需要先理解几个重要概念:
4、调整参数和启动训练
重复次数 (Repeat): 每张素材的重复次数。需要在文件夹名中以方式设置,例如,如果训练集"chahua"的重复次数是10,则文件夹命名为10_chahua。
训练轮数 (Epoch): 整个训练集按照重复次数训练一次为一轮。例如,进行10轮训练即表示每张训练图片被训练100次。
在操作过程中,需要针对具象类和泛化类分别调整参数。对于具象类,需要在每一轮提高次数以提高精准度;而对于泛化类,则降低次数以增加轮数,不需要那么精准,一轮轮进行训练。
在新手训练模式下,我们只需调整这几个参数即可。进入新手模式后,首先需要选择训练LoRA所使用的大模型,选择底模文件路径,并点击右侧的小文件夹进行选择。
接下来,设定训练数据集路径。在选择这一步之前,需要在sd/lora-scripts-v1.7.3/train文件夹下创建一个文件夹,例如,我创建了一个名为“chahua”的文件夹。然后,在“chahua”文件夹内再创建一个“数字_英文名”的文件夹,将之前打标好的图和标签一起复制到“数字_英文名”的文件夹中(例如,训练"chahua"重复次数16,则文件夹命名为16_chahua)。同时,修改分辨率,保持与之前数据集的尺寸一致。
最后,在保存设置中修改模型的名称为你想要的名称,点击开始训练。
在终端中,你将看到它正在进行疯狂的训练。这个过程可能会花费一些时间,耐心等待即可。当出现“训练完成”字样后,表示你的LoRA模型已经初步完成了训练。我个人是晚上开着电脑自己跑的,整个过程花了9小时。初步训练完成后,我们就可以对LoRA进行测试,验证训练成果,并了解LoRA的最佳参数。
在sd/lora-scriipts-v1.7.3/output文件夹中,你可以找到生成的LoRA模型。由于我设置的是每2步保存一个LoRA模型,总共16步,因此会有8个LoRA的阶段稿(没有数字的那个是最终版LoRA)。
5、评估
通过测试,我们能够比较不同大模型、LoRA的不同阶段、迭代步数、采样方法等对生成图像效果的影响,这有助于我们选择更出色的LoRA模型。
a、Loss图:每次训练的loss图都是独特的,但要重点观察loss是否逐步降低。随着loss的降低,拟合度会提高,但如果过低,可能会导致过拟合。需要找到合理的值。通过观察loss值,我们可以选择几个训练好的LoRA模型进行xyz序列图测试,以便选择最佳的LoRA模型。
b、XYZ序列图:XYZ序列图是一个重要的参考指标,可以展示不同权重对LoRA的影响以及过拟合和欠拟合的程度。通过多次生成图像进行测试,可以更深入地了解模型的性能。
我使用XYZ序列图进行反馈。在使用之前,需要在Stable-Diffusion上安装一个插件叫AdditionalNetworks。这个插件可以帮助我们测试多个LoRA在不同权重下的效果。安装成功后,你将看到插件的相关部分。
尽管在训练模型之前已经选择了大模型,但根据LoRA的类型,我会选择不同的大模型进行跑图测试,以找到更适合此LoRA的模型。在SD的脚本中,选择“xyz图表”,将X轴类型设为“大模型”,选择适当的大模型,然后点击生成。
这样,你就能够横向比较不同大模型的图像效果,从而确定哪个大模型的效果更好,更适合当前LoRA。选定了大模型后,我们可以测试几个LoRA在多少权重下生成的效果最佳。
首先,将已经训练好的LoRA模型从output文件夹(sd/lora-scriipts-v1.7.3/output)复制到文件夹(sd-webui-aki/extensions/sd-webui-additionalnetworks/models/lora)中,然后刷新,就可以在SD中看到你训练的8个模型。选择xyz图表,将X轴类型设为附加模型1,选择生成的8个LoRA模型作为X轴值;将Y轴类型设为附加模型权重1,Y轴值可以自行填写,我是按照从0到1的权重进行对比的。
通过生成的XYZ测试图,你就能够比较不同LoRA模型在不同权重下的生成效果。最终,你可以选定最佳的LoRA模型。同样,你也可以使用此方法测试不同采样方式,找到效果更好的方法。甚至迭代步数等很多参数都可以通过XYZ的对比来确认,XYZ包含许多参数可以进行比较,感兴趣的话可以自己试一试。
至此,我个人生成LoRA的整个方法已经总结完毕。在没有实际操作之前,可能感觉有些困难,但一旦真正动手,就会发现其实并不那么难。整理成文章后,我感觉自己对这个过程更加清晰了一些。接下来,我将分享在炼丹过程中遇到的一些问题以及我找到的解决方法。
四、汇总问答
出现页面文件过小的错误可能是因为虚拟内存不足。
解决这个问题的方法是:在Windows电脑上,依次进入设置-系统-系统信息-高级系统设置,然后在系统属性中选择高级,找到性能选项,点击设置,再进入高级选项,找到虚拟内存,点击更改,增加虚拟内存的大小。
关于Additionalnetwork选择模型显示“无”的问题,首先确认你的LoRA模型是否存放在正确的文件夹中,
正确的路径应该是sd-webui-aki/extensions/sd-webui-additionalnetworks/models/lora。如果确认位置正确但仍然报错,
可以尝试在Additional Networks中先选择一个LoRA模型,
然后再去xyz轴中删除不需要的LoRA。
五、LoRA应用领域
Lora已经在商业领域得到广泛运用。通过将IP形象训练成Lora,可以显著减少根据不同活动和场景绘制IP形象所需的时间。在电商领域,LoRA能够将服装训练成虚拟模特,省去了请模特、拍摄的步骤,直接利用AI生成虚拟模特,并将其穿上指定的服饰。这为电商提供了更加便捷和经济高效的解决方案,极大地提高了操作的可行性。
1、LoRA在建筑和空间领域的应用
通过训练室内或建筑风格的LoRA,并结合使用controlnet技术,可以迅速生成符合客户实际户型结构的效果图,显著提升了设计和呈现的效率。
LoRA的潜在应用场景还有许多,一些可能尚未被充分发掘的领域等待我们的探索。鼓励大家积极尝试,训练出适用于自己需求的个性化LoRA模型。
2、在IP形象LoRA的应用中
我们能够快速生成符合IP形象的设计方案,使设计过程更为灵活。这不仅简化了整个设计流程,还使设计师能够更专注于提升作品的审美价值,丰富和多样化设计,从而提高设计效率。IP形象LoRA的运用范围广泛,无论是在线上的运营海报、开屏页、banner等,还是线下的KT版、海报物料等,都能够得到很好的应用。
3、通过Lora模型训练
电商可以生成属于自己的AI模特,省去了繁琐的布局、光影、拍摄环节,降低了时间和人力成本。此外,Lora还可应用于建筑和空间的训练,结合controlnet使用,能够快速生成客户实际户型结构的效果图,显著提升了效率。LoRA的应用场景还有许多,还存在许多未被发掘的领域,鼓励大家积极尝试和探索,训练出属于自己的专属Lora。
六、最后
最终,经过详细的探讨,我们将LoRA的训练过程总结为五个简单而重要的步骤:
素材搜集: 从一开始,确保你的素材库是至关重要的。素材的质量和清晰度直接关系到LoRA训练的最终效果。高质量的素材是确保训练从源头上保持质量的关键。
SDWebUi打标签:使用秋叶大佬的SDWebUi工具对素材进行标签打标。这是为了为训练提供更多的信息,使LoRA更好地理解素材。
BooruDatasetTagManager改标签:使用BooruDatasetTagManager工具对标签进行优化和修改。这一步旨在进一步提炼和改进标签,以确保LoRA更准确地反映出你的训练目的。
LoRA训练:利用秋叶大佬的LoRA训练器进行实际的LoRA模型训练。在这一步骤中,对于不同类型的LoRA,调整参数以及训练次数是非常关键的。
测试训练结果:最后一步是对训练好的LoRA进行测试。通过多次测试,观察loss图和xyz序列图,比较大模型、不同阶段LoRA、迭代步数、采样方法等生图效果,以便选择最适合你需求的LoRA模型。
总结炼制LoRA的几个关键点:
素材库重要性:素材的质量直接决定了LoRA训练的质量,因此在搜集素材时务必确保高质量和高清晰度。
谨慎使用他人参数:不要迷信他人提供的参数,因为素材库和训练目的等因素的不同,需要根据自己的情况调整参数。
多测试多尝试:新手可以以成功训练一个LoRA为小目标,逐渐提升信心。尝试使用专业版,了解不同参数的含义,尝试具象类和泛化类LoRA模型训练,可能会有意想不到的效果。
最后,作者的手绘扁平插画风格的LoRA已经在LiblibAI上线,欢迎大家下载试用。
最新版SDXL1.0大模型+VAE+Lora获取方法,公众号回复:Lora
Stable Diffusion安装包与部署教程,公众号回复:SD
Stable Diffusion全部教程资料、软件和插件及所有,直接回复:SD模型
除此之外,我还准备了,以下软件工具
Adobe全家桶获取方式,公众号回复:全家桶
PS常用插件大合集
Portraiture磨皮插件
Retouch4me插件人像精修
DR5.0超级汉化加强版
Nik Collection滤镜
VSCO调色滤镜插件
Noiseware professional降噪插件
暗黑物质光效光斑插件
fontags字体管理插件
灯光工厂插件
证件之星插件
工笔画插件
Topaz ReMask抠图插件
光束大师
水波纹倒影插件Flaming Pear Flood
色轮插件Coolorus
CameraRaw滤镜升级
PS一键抠图插件
Nik7合1滤镜
Noiseware降噪插件
Shadowify 投影插件
BBTools Shadow 投影插件
FX-Box中文版(Ps特效磨合)
CameraBag Pro 2023.3(x64) 汉化版
DxO.FilmPack 胶片插件
神经网络滤镜Neural Filters
TK Action风光摄影专用亮度蒙版插件
Adobe 2024集合
2024 PS修图插件升级包大合集
提取码: 8nvf
后期调色预设大合集
提取码: 6jk6
提取码: 2n9n
PS修图动作大合集
提取码:cyo0
修图练习Raw格式原图大合集
提取码: qv44
Adobe全家桶
提取码: v57b
PS2024全家桶
提取码: faxc
电脑常用工具大合集
提取码: a7u8
摄影师必备,PS笔刷特效套装大合集,一键式惊人效果
提取码: 7jaw
感兴趣的伙伴,可以联系我,自行下载体验它的魅力之处。好了,今天分享到此了!希望能帮到你,哪怕一点点!如果您喜欢我提供的分享内容!请关注公众号以示鼓励。我们会持续不断地分享更多有价值的资源,感谢您的支持!