AI绘图|如何使用Stable Diffusion训练自己的LoRA模型实战(一)
AI绘图|如何使用Stable Diffusion训练自己的LoRA模型实战(二)
AI绘图|如何使用Stable Diffusion训练自己的LoRA模型实战(三)
欢迎来到LoRA的世界!
接下来,我们开始用准备好的训练素材图跟规范图来训练我们的LoRA。
训练
我们开始使用另一个Colab页面来执行真正的训练步骤:
colab.research.google.com/github/hollowstrawberry/kohya-colab/blob/main/Lora_Trainer.ipynb
这个版本的Colab训练页面多了一些与规范图相关的功能,在执行训练前,我们要来指定素材图与规范图摆放的目录。
先往下拉到Extras区,找到Multiple folders in dataset这个区块,将里面的数值改成这样:
custom_dataset = “”” [[datasets]] [[datasets.subsets]] image_dir = “/content/drive/MyDrive/Loras/ {项目目录名} /dataset” num_repeats = 10 [[datasets.subsets]] image_dir = “/content/drive/MyDrive/Loras/ {规范图目录名} /dataset” is_reg = true num_repeats = 1 “””在这里,项目目录名就是你摆放的素材图的地方,以我为例,就是XingBar30。
接着的num_repeats是每个素材图会被训练的次数,通常是总图数乘上本数值要等于300到400。因为我的素材总共有30张,所以我选择10这个数字,这样每回合就会被训练300次。
而规范图目录名则是你放置规范图的目录,在本例中我将男性图片的规范图放在Man这个目录底下。
要注意的是,is_reg = true一定要放在规范图这一小节的地方,否则训练程序会认不出来,这样训练出来的LoRA会完全做不出你要的角色。
通通设定完之后就可以执行这个小节的程序。
这格执行完之后,我们就可以开始在Setup小节填入其他资料了。
project_name这边填入项目目录名,例如XingBar30。
training_model目前有三个选项,如果是动漫倾向的角色,可以用Anime这个模型,否则用AnyLoRA就好。以我个人三种都试过的经验,影响似乎不大。
在Step步骤,改how_many为20或30。这样可以得到品质更好的成果。
总训练步数的计算方法是:
素材图张数X 每张训练次数X 总批次(batch size)数。
以我的例子就是30 X 10 X 30 = 9000。
最后是AI训练参数,这边作者有特别提到不同类型的模型需要不同的参数,我们训练的LoRA的推荐参数是:
network_dim: 32
network_alpha: 16
其他则保持原样。
一切都设定好之后,就可以按下执行,开始训练LoRA了!
在执行日志里面,请一定要确认Multiple folders in dataset里面的设定有正确执行,你可以看到类似这样的日志跑出来:
以我个人的经验,Colab的GPU一个小时可以跑大约6000步,所以一个9000步的LoRA训练可以在一个半小时之内跑完。
由于我时常使用Colab来跑这些东西,所以索性买了Colab的点数,通常训练LoRA的时候,一个小时消耗2个点数,也就是说10美金的Colab点数100点,可以让我们训练50小时,相比阿里云要良心实惠的多,当然了国内推荐使用autodl,一个小时不到2块钱。
训练出来的LoRA文件,就在云端硬盘的output目录下,点下Done连结会自动打开该目录,让你可以下载。
常见错误
训练最常出错的地方,是没有把素材图跟规范图放到正确的目录下,使得程序找不到图而停止。要是程序很快就停止了,请在Colab左侧的栏位上点开文件目录,查看自己的目录结构是不是类似这样:
验证
LoRA训练完成之后,下载下来到/models/Lora/目录,重启Automatic1111,在Lora标签下按下Refresh,应该就能看到自己训练的LoRA了。
要验证自己的LoRA有没有用,最简单的就是用较低的权重直接产生一张图,比较一下自己的素材图,如果不像的话,试着调高权重到0.7再试试,如果还是不像,那就是训练失败了。
当确认LoRA有成功之后,接下来就要来比较同一角色不同版本的LoRA的成效,通常我们会使用X/Y/Z plot来做全面的比对。X/Y/Z plot的详细用法请参考:
AI绘图|Stable Diffusion进阶Script脚本使用详解——X/Y/Z plot篇
我最常用:
X轴:各种动作
Y轴:几个常用的模型
Z轴:两个不同版本的LoRA使用同样的权重
比较不同的版本LoRA,来确定新版本更合你意。
新旧版的LoRA比较
确认了新版本LoRA表现更佳之后,就可以继续用X/Y/Z plot来深入探究在各种模型上,最好的权重是多少,每个模型最适合的权重都有些不一样,品质好的LoRA可以在高权重时,在不同模型上依旧产生特征一样的角色,而且同时不摧毁原模型的画质。
用相同动作,相同模型组,不同权重的比较
在这边,如果各种验证步骤都没有出什么大问题,恭喜你,你已经训练好一个高品质,稳定的角色LoRA了!
结语
训练LoRA是很吃耐心跟细心的,很多时候,就是素材图或规范图的图样不一致,或者素材的文字档忘了删除某些提示词,于是角色特征没有正确融入这个LoRA,一切就要从头再训练。但是当你正确产生了第一个高品质LoRA之后,依照同样的步骤,就能一遍又一遍将你梦想中的角色制作出来,用在任何模型上!这种成就感是非常让人满足的。
暂无评论内容