AI绘画:Lora模型训练完整流程!
关于AI绘画(基于Stable Diffusion Webui),我之前已经写过三篇文章,分别是 软件安装、基本的利用方法、微调模型、LoRA的利用整体来说还是比简单的,搞个别人的模型,搞个提示词就出图了。今天来一个有些难度的,自己训练一个LoRA微调模型。
https://i-blog.csdnimg.cn/img_convert/3296f5912a275d6d1f155425091c4143.png
0. LoRA微调模型是什么?
LoRA的全称是Low-Rank Adaptation of Large Language Models,有专门的论文和开源项目。它紧张解决“大模型”太大,一般人玩不转的题目。
比如GPT-3 175B的参数,有几个人跑得起来呢?Stable Diffusion V1版模型用了150000 个 A100 GPU Hour,也不是个人玩得起的。
把LoRA应用到AI绘画之后,我们就可以用普通的消费级显卡来微调官方的模型了。
https://i-blog.csdnimg.cn/img_convert/ecdb47ea21eff683878ff62b90f7f3a6.png
微调的意思,就是原先模型的基础上“夹带私货”。最常见的就是,让模型学习指定的风格或者人物。风格这种可能还是有点抽象,而人物这个就比力直观了。比如默认情况下,AI绘画软件无法画出指定的人物,而通过Lora模型就可以做到这一点。
https://i-blog.csdnimg.cn/img_convert/679febbdddf406016c644c5ca546e5ac.png
如许一来,你就可以把自己或者你的宠物或者你的女神投射到AI绘画的模型中,然后通过描述词,让这个人物“变化多端”。
https://i-blog.csdnimg.cn/img_convert/bc8f06a6ae52609ea7047ebd06d12908.png
关于LoRA大概就说这些,更多专业的内容,可以看文末。
下面就开始介绍Lora的详细的训练方法了。开始之前简单说一下我的环境:
[*] 操作系统是Windows11
[*] 显卡是 RTX 3060 12G
[*] 开源软件 Stable-Diffusion-WebUI
Lora的训练流程,我只管做到简单又清楚,聊太多概念和用太多工具很容易把人绕晕。
1.软件安装
训练Lora的方法不止一种,我这里选择的是一个叫kohya_ss的项目。这个项目比力独立,整个设计逻辑比力清楚,可以用可视化的方式配置参数,也提供了一些辅助工具,官方提供了详细的视频教程(英文)。
下面就来说一下怎样安装。
安装基础软件:
[*] 安装 Python 3.10 记得添加到环境变量。
[*] 安装 Git
[*] 安装VS环境 Visual Studio xxx redistributable
由于这是基于Python的开源项目,所以Python和git是必备软件。我的公众号里有单独介绍这些软件安装配置的文章,可以翻一翻。
Visual Studio XXX redistributable 是一款简易实用,功能全面的全新系统运行库。它是Windows系统装机必备组件,包罗:C Runtime (CRT),Standard C++,MFC,C++ AMP,OpenMP等,提供了强盛而灵活的开发环境支持,让电脑内没有任何无用垃圾程序,同时它还能够解决各种软件运行不了的题目。(摘抄自网络)。
基础环境安装完成之后就可以开始安装和配置kohya_ss了。
克隆项目然后运行安装脚本
git clone https://github.com/bmaltais/kohya_ss.git``cd kohya_ss``.\setup.bat
脚本会自动安装依靠,安装完成后会有一些配置选项,不确定就不要启动。启动了后面会出现很多题目,导致整个流程卡住了。由于这里用到了git和github,所以需要你本地环境能访问国际互联网。或者租一个通外网的GPU服务器。
安装CUDNN 8.6 (可选)
安装CUDNN的目的是提升运算速率。
先通过下面的地址下载Cudnn文件。
https://b1.thefileditch.ch/mwxKTEtelILoIbMbruuM.zip
然后放到kohya_ss项目的根目录下,然后运行下面的脚本。
.\venv\Scripts\activate``python .\tools\cudann_1.8_install.py
启动软件
配置完成之后,就可以启动软件了,输入命令:
gui.bat --listen 127.0.0.1 --server_port 7860 --inbrowser --share
或者到文件夹里找到gui.bat 双击启动。
https://i-blog.csdnimg.cn/img_convert/e61f6e3b9fcc7015d675f2af792138c0.png
https://i-blog.csdnimg.cn/img_convert/56a0a1e7a058ec84acad12c518448abe.png
把URL复制到浏览器,就可以看到界面了。
2.素材准备和预处置惩罚
所有的模型训练都遵循一个最基本的原理:好进好出。喂得素材好,训练的模型自然好。喂的是垃圾,出来的必然也是垃圾。所以第一步,就是把素材整好了。
素材处置惩罚呢,其实也分三个小步骤。
a.找素材
b.切素材
c.生成对应的关键词
素材可以通过差异渠道获取,比如最简单粗暴的方式就是直接在百度图片内里搜索。然后选择高清,或者大尺寸,特大尺寸。点进去之后看看有没有套图。
也可以直接去一些壁纸网站或者专门晒图的网站。比如糖堆,花瓣,Pinterest, Instagram…
https://i-blog.csdnimg.cn/img_convert/c6ffdc3683b96bb287d78c104b0efc31.png
图片的最基本要求是,清楚,清楚,清楚。其次,不要太单一。
图片比例,并没有强制要求。建议用1:1或者其他固定的比例去切。
图片数量方面,一般来说是准备个几十张的样子。太多了整理起来就比力费时间,训练时长也会边长长,训练不充分可能就没那么像。太少就会过拟合,不容易产生变革,描述词一改可能就不像了。
https://i-blog.csdnimg.cn/img_convert/bcb757c3facd2f2daf95175ecf3a0b39.png
从经验来看,聚焦半身或者头部更容易训练,更容易出稳固的效果,除了主体之外,配景只管简单,淘汰干扰。
https://i-blog.csdnimg.cn/img_convert/9a28af32e5f60237a2573e78a1284d64.png
同一个明星的照片其实也是千差万别,有时候甚至P的都不像了一个人了,最好是能找到样貌比力稳固连续的素材。
找到素材之后,你可以用专业的工具举行裁剪。也可以直接用QQ的截图功能。
比如用Birme来处置惩罚:
https://i-blog.csdnimg.cn/img_convert/1d5645d997fedbfa07b49da9c14d8788.png
我这里就遵循能简单就简单的原则,直接用QQ截图,也没有严格1:1 。就是切了个大概,把主体切出来。
图片预处置惩罚完成之后,需要创建一个专门的训练文件夹。我是在kohya_ss的根目录创建一个名叫train的文件,然后在这个文件下面又创建一个叫Dilireba的文件夹。
https://i-blog.csdnimg.cn/img_convert/c5904e0519b733254bf052611eefc517.png
内里又分别创建了如下的文件夹:
image : 图片放在这里。
log:训练记录
model:模型生存路径
dilireba.json:配置文件。
image文件夹内里不是直接放图片,而是还有一个子文件夹,名称大概是如许100_dilireba。所有图片这放在这个子文件内里。这里的100不是随便写的,会直接影响训练的步数和效果。
创建好文件,将处置惩罚好的图片放在100_dilireba内里,然后就要做关键词生成了。
在网页上找到Utilities->Captioning->BLIP Captioning。
https://i-blog.csdnimg.cn/img_convert/e55cad67116143215081bc2620a80ad3.png
这里只要设置两个选项。
Image folder to caption : 图片文件夹地点路径。
Prefix to add to BLIP caption : 生成提示词的前缀,训练完成之后可以用在提示词中,唤醒或者增能人物特性。
设置完成之后点击“Caption images” 开始处置惩罚。第一次处置惩罚应该是需要在线下载一些模型,稍微等候一下。点击按钮之后,界面上没有任何提示,但是在命令行窗口中会有详细的表现。
处置惩罚完成之后,在图片文件内里,会多出同名的txt文件。
https://i-blog.csdnimg.cn/img_convert/b1eb8e686df9fcc2c8768f298c5bee9b.png
打开文件之后,可以看到类似的文字描述“dilireba a woman in a black dress with a red lipstick”。作为简单的练手,我们不需要修改任何东西。如果你要提升效果,可以手动加入更加详细,更加精准的描述。
3.模型参数设置和训练
经过上面的处置惩罚,素材已经搞定了。接下来就是设置训练参数。如果你已经有参数配置文件,可以直接通过点击Open按钮来导入。
参数设置紧张分成了3部门。
第一部门是:预训练模型设置。
https://i-blog.csdnimg.cn/img_convert/3e09e55ddef6d13e77685f1c80a55afc.png
Lora的训练需要基于尺度的SDW模型(Checkpoint),点击Source model选项卡之后就可以举行设置。
先将④处的模型快速选择(Model Quick Pick)设置成自界说(Custom),这里也可以用预设的V1.5,V2.1。但是利用这些预设模型,会需要很长的时间在线下载,而且会占据巨大的C盘空间,不是很推荐。
然后在左边③这里选择详细的本地模型,我这里用的是适合亚洲人的chilloutmix模型。通过点击输入框后面的文件图标,找到详细的模型文件就可以了。
然后右边⑤处的模型生存格式选择safetensors。
第二部门是:文件夹设置。
https://i-blog.csdnimg.cn/img_convert/1be299ee0b91bd898ea77a81138ac39f.png
在素材处置惩罚的步骤中,我们已经创建好了详细的文件。这里只需要通过右边的文件夹小图标,选中详细的文件夹就好了。
①Image folder 选择 image 文件夹
②Output folder 选择 model 文件夹
③Logging folder 选择 log 文件夹
④Model output name ,输入一个便于记忆的英文名字,这个名字就是最终生成的模型的名字。我习惯用主体+版本+迭代次数来命名。
第三部门是:训练参数设置。
这里的参数非常多,一般对于这种情况,我们都遵循一个基本原则:“对于新手来说,默认设置就是最佳设置”。
你可以完全不做任何设置,就开始训练了。
https://i-blog.csdnimg.cn/img_convert/0b31b3aa6381a0e0eabbf9d1fb0be82d.png
我的部门参数设置如上图。
网上广泛的教程都是把批量巨细(Train batch size)改成了2 。
设置一个种子(Seed)比如1234。
学习率(Learning rate)0.0001
Text Encoder学习率 5e-5
Unet学习率 0.0001
Network : 128和128
模型像素:512x512
https://i-blog.csdnimg.cn/img_convert/ef057a55df0a248a7c57912a24508ada.png
参数设置完成之,点击底部的训练按钮①就可以开始训练了。
点击训练按钮之后,界面上没有任何变革,来到命令行窗口会看到一长串命令。
https://i-blog.csdnimg.cn/img_convert/ad642c3bd8d823c07f541ea8bc18fc92.png
这个界面会卡一段时间,然后跳出很多英文,最后停留在下面的界面。
https://i-blog.csdnimg.cn/img_convert/2f31acd69d136bf7cace8fae18aed8fb.png
这里会表现最终需要训练的步数(Step)。Step的值即是图片数量乘以文件中设置的数字,然后除以2 。训练的长短紧张却决于单步的时间和总的步数。
关于多少步才比力好的题目,官方教程演示的时候是用了800。但是这个这个数值仅供参考。差异的数据会有差异,比如我后来整理一个图片比力多的数据集,跑了几万步,似乎也还有提升的空间。
详细的训练情况,可以通过log来检察。点击上面②处的Start TensorBoard 可以启动一个服务。
https://i-blog.csdnimg.cn/img_convert/116dd96f7c193841ab44ab8d0d55cf6b.png
打开后可以看到详细的Loss变革情况。简单的来说loss慢慢降低就是对的。如果Loss基本没啥变革,训练下去也没太大意义了。
4.模型应用
搞了那么久终于可以用了。
lora模型的利用,我们之前的文章内里已经有详细的介绍了,这里就简单的演示一下。当lora训练结束之后,会在对应的model文件下面生成模型文件。
比如下图:
https://i-blog.csdnimg.cn/img_convert/543130e97cf457d29c0f7ecd3abfe29b.png
将图中的Lora模型文件拷贝到Stable-Diffusion-WebUI的对应路路径下。
https://i-blog.csdnimg.cn/img_convert/119c7ef2332f6b3591aa74a03daebea7.png
然后启动AI绘画软件webui 。
https://i-blog.csdnimg.cn/img_convert/ad78aedbafd679b3cc0a35cc9b150fcb.png
然后选择好模型,输入关键词,选择对应的lora,然后点击生成即可。
https://i-blog.csdnimg.cn/img_convert/9c2270076089631f6679dddf2455f17b.png
刚开始不要加任何复杂的关键词,只用最基础的,比如 “a woman dilireba” 然后加上我们自己训练lora。关于Lora字符串,你可以直接输入,也可以通过图中圆圈处找到对应的Lora点击一下导入。导入的时候最右侧的参数默认为1,需要修改一下,改成0.7或者0.8。
如果Lora练的还可以,这个时候出来的图片应该是相识度比力高的。然后就可以在这个基础词语上做一些变革了,比如加一个“wearing a suit” (穿着西装)就可以得到下面的图片了。
https://i-blog.csdnimg.cn/img_convert/5f1b50dc79a7dbaba5ddbee10394e79d.png
如果出图俯角符合预期,这个Lora训练也就算是成功了。如果不满意,就要回过头去调整素材和参数了。如今的AI绘画,并不是每次出图都完美的,需要多少刷几次,多试几个关键词才能找到比力满意的效果。
到这里Lora部门的内容就全部写完了,拖拖拉拉拖了好久了,终于了了一个事儿。基于Lora这种特性,可以自己玩,也可以做成在线产品。比如之前说过的“达芬奇”网站就是把这个过程给集成和简化了。
虽然我已经只管把过程都写出来了,但是差异的基础的人接受程度肯定不一样。厉害的人以为太简单,对这个不太熟悉的可能以为有点复杂。
确实,从零开始话,这内里还是有挺多东西的。
整个流程也还有无数的细节可以优化:
比如 详细的安装过程,异常扫除。
比如 图片筛选,裁剪,修复。
比如 关键词生成的多种方式和优化方法。
比如 模型训练参数的调整。
思量到这些过细的题目专业性比力强,研究需要时间,写起来非常贫苦,写了也不会有多少阅读量,我就不在公开渠道发布了。我会慢慢更新在我的知识星球Tonyhub内里。今天用的素材,参数配置文件,最终Lora模型也会整理好发在内里。
https://i-blog.csdnimg.cn/img_convert/dedcc45fb00a5303c90baed6788f17ca.png
热爱研究的朋侪,也完全可以自己去查资料研究,加入互换群互换。我把相关的连接全部放在下面了。
https://i-blog.csdnimg.cn/direct/acf27e969d7c4288a6a4e0bcfd7eccdc.png
怎样训练LorA
对于很多刚学习AI绘画的小同伴而言,想要提升、学习新技能,往往是自己探索发展,不成体系的学习效果低效漫长且无助。
如果你苦于没有一份Lora模型训练学习系统完整的学习资料,这份网易的《Stable Diffusion LoRA模型训练指南》电子书,尽管拿去好了。
包知识脉络 + 诸多细节。节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
由于内容过多,下面以截图展示目录及部门内容,完整文档领取方式点击下方微信卡片,即可免费获取!
https://i-blog.csdnimg.cn/direct/acf27e969d7c4288a6a4e0bcfd7eccdc.png
https://i-blog.csdnimg.cn/img_convert/e80a60e1333a85b8bb0cd7d1c6d2e1db.png
https://i-blog.csdnimg.cn/img_convert/7d3ac167a0ca526f55275e8ddbd412c5.png
https://i-blog.csdnimg.cn/img_convert/bcf63d6bd31ca2d2094ad6428a5b4f1d.png
篇幅有限,这里就不一一展示了,有需要的朋侪可以点击下方的卡片举行领取!
https://i-blog.csdnimg.cn/direct/d4130f89692b406ca5c8fce973a381a0.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]