lora的三种工作模式(stable diffusion打造自己专属的LORA模型)
通过Lora小模型可以控制很多特定场景的内容生成 。
但是那些模型是别人训练好的 ,你肯定很好奇 ,我也想训练一个自己的专属模型(也叫炼丹~_~) 。
甚至可以训练一个专属家庭版的模型(family model) ,非常有意思。
将自己的训练好的Lora模型放到stableDiffusion lora 目录中 ,同时配上美丽的封面图 。
(plen_me 、plen_vivi ,这两个是我训练的和家里人的模型~_~)
这样就可以将你的Lora模型和其他Lora模型融合使用了 。
再配上Controlnet基本可以 ,将自己的pose+特征融入到其他任何lora模型中 。
【1】
下面我们看下如何训练自己的模型 。(我的炼丹炉配置 ,win10+i7F+4080 )
首先 ,Lora模型可以通过lora-scripts 脚本进行训练 。
仓库地址:https://github.com/Akegarasu/lora-scripts
找个目录拉下来 ,先安装sd-scripts子项目,然后安装lora-scripts项目 。
(敲黑板)重点看下sd-scripts 子项目:
https://github.com/kohya-ss/sd-scripts/tree/b5c60d7d62d6bb4a174ac09327dc517fc4446523要严格按照作者给的步骤安装 。(要不然会有很多奇怪的问题)
如果顺利的话大概安装需要30min左右 。(需要kexue上网应该就不用多介绍了)
【2】
接下来准备需要训练的图片 。根据最后的生成效果 ,要找头像清晰的 ,脸部轮廓清楚的,背景最好是白色的。
然后就需要我们将图片进行预处理 。
先将图片放在一个文件夹里 ,然后定一个预处理之后的文件夹名字 。
然后在stablediffusion中找到【训练】【图像预处理】模块
按照说明 ,填入预处理图片路径和目标目录,然后选择【Deepbooru生成标签】。然后点击【Preprocess】 ,等处理完成 。
到目标目录下 ,看下生成的标签信息 。
这些标签就是训练模型的图片特征了 ,基本上生成出来的标签还是要check下。
如果某个重要的标签丢失 ,或者识别错误(girl识别成boy ~_~)会直接影响炼丹质量 。
【3】
将预处理目标文件夹复制到lora-scripts脚本的主目录的train目录中 。(如果没有就创建一个)如果你有多个训练集合可以在train中创建一个目录 ,然后放到这个目录中 。
训练自己的专属模型 ,需要依赖一个主模型 。真人特征的模型貌似用 chilloutmix_NiPrunedFp32Fix 比较流行(这个模型很强大 ,你懂的!) 。
模型地址:
https://huggingface.co/naonovn/chilloutmix_NiPrunedFp32Fix/tree/main将下好的模型文件复制到lora-scripts->sd-models文件夹中 。
【4】
准备工作差不多了 ,我们编辑下训练脚本 。
lora-scripts目录中的train.ps1 脚本文件 。
# Train data path | 设置训练用模型 、图片 $pretrained_model = "./sd-models/chilloutmix_NiPrunedFp32Fix.safetensors" # base model path | 底模路径 $train_data_dir = "./train/test" # train dataset path | 训练数据集路径$pretrained_model:就是我们下载的训练模型的基础模型 ,把名字换掉 。
$train_data_dir:训练数据目录。 # Train related params | 训练相关参数 $resolution = "512,512" # image resolution w,h. 图片分辨率,宽,高 。支持非正方形 ,但必须是 64 倍数 。 $batch_size = 2 # batch size $max_train_epoches = 20 # max train epoches | 最大训练 epoch $save_every_n_epochs = 2 # save every n epochs | 每 N 个 epoch 保存一次$resolution:如果你的图片预处理的时候没有调整过 ,这里就保持默认。
b
a
t
c
h
s
i
z
e
、
batch_size 、
batchsize 、max_train_epoches:如果你的卡不是很强,这里的参数可以小一点 。(这两个参数主要控制训练的次数和显存加载的张量数据集) 。 # Output settings | 输出设置 $output_name = "meoutput" # output model name | 模型保存名称$output_name:用默认的也行 ,最好自定义一个名字 ,避免重复生成覆盖原来模型。
保存,然后右键 【使用PowerShell运行】 。
(这里还是要祈祷下 ,不一定能一次成功 。~_~)
脚本在运行过程中会出现一些’triton’加载失败的错误 。
但是其实不影响模型的训练(我查了下好像是windows电脑就不支持这个模块) 。
这里的错误如果不能正常执行 ,大概率是前面敲黑板的地方你没有仔细看 。
等模型训练完 。(我15张图 ,大概跑了10min左右 。)
我们看下output目录输出的模型文件 。
这里的模型文件保存的个数 ,是train.ps1脚本文件里设置的 。
最后我们要通过验证这些模型准确度 ,选用哪一个。
【5】
将这些模型文件全部复制到
E:\stable-diffusion-webui\extensions\sd-webui-additional-networks\models\lora
对应的扩展忙碌下 。
如果还没有安装 sd-webui-additional-networks 扩展 ,记得先到扩展中安装 。也可以直接用git地址安装(有时候这个扩展查询有点问题)
https://github.com/kohya-ss/sd-webui-additional-networks.git然后我们测试下这几个模型哪一个不错。
顺利安装插件之后 ,就可以在界面上看到 【Additional Networks】功能菜单 。
要测试自己的模型 ,基础模型还是要选用我们训练的 chilloutmix_NiPrunedFp32Fix 模型 。
prompt可以用自己提取的标签作为测试。
批次可以适当多点 ,到时候可以选择 。
这个过程大概需要个20min左右 。(可以喝点茶等待创作了~_~) 。
来一起见证AI的创作吧 ~~!
图片的上方是每一个模型名称,左边是特征权重 ,组成的一个二维表格 。
有点那个意思 hhh 。
下面这些就有点辣眼睛了 。
根据自己的眼光 ,我们挑选一个相对比较不错的模型 。
整体觉得这个模型不错,我们记下模型的名字 。
将这个模型复制到 E:\stable-diffusion-webui\models\Lora 目录中 。
可以给你的模型配上一个封面 ,只要文件名和模型名一样就可以了。
【6】
有了自己的专属模型 ,就可以结合其他lora模型一起使用了 。
我们试下水墨风格 。下载lora模型:Moxin_10
下载基础模型:dalcefoPainting_3rd.safetensors(有些基础模型在C站没有,可以到huggingface上找找 ,再不行github上肯定有)
点开这个红色的收缩面板。
刷新一下 ,让lora模型文件重新加载下 。
然后选择我们保存的lora文件 ,此时这个模型的prompt设置会在文本框里 。
然后再选择水墨风模型 Moxin。
调整下每一个模型的权重 ,此时可以将我们自己的模型特征调大些 。
如果没啥问题 ,我们就去C站找这个lora比较好的prompt拿过来用 。
这张虽然有点辣眼睛 ,但是特征是有了 。
这一张比较像我女儿 ~_~ 。
最后 ,stablediffusion+lora等AIGC属于开挂技术 ,我们还是要遵纪守法做一个好同志!!!
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!