作者最开始是想利用Stable Diffusion来进行Lora训练,熟悉训练的整个流程,但是由于手头上暂时无大显存的显卡,网上找了一圈资料后,发现了Stable Diffusion】 在Google Colab上训练LORA模型详细教程视频教程可以白嫖Google Colab来进行训练实践,现将整个训练过程总结记录下。
实践步骤
图片预处理
收集图片
收集自己想要训练的图像,至少15张以上效果会比较好,最好是高质量的高清图片。由于作者主要是想跑通整个Lora训练的流程,因此主要通过谷歌图片搜索和百度图片搜索下载图片,其中百度图片搜索可以直接下载图片,比较方便。
数据清理
- 批量重命名 下载下来的图片可能名字也比较乱,如果是mac系统的话,可以直接选中所有图片,然后“重新命名” ![enter image description here]
- 批量裁剪,推荐使用在线工具:birme,效果如下。最后点击“SAVE AS ZIP ”打包下载zip文件。
如果新版本打不开,可以考虑回退到V1版本
图像标注
云端的google colab
可支持生成标注,因此可以不用再找工具处理了,如果需要处理的话,可以使用stable diffusion webui
的"训练"工具来操作。
开始训练
视频教程中比较详细的记录训练过程,只需要按照教程一步步运行Google Colab即可,其中重点需要关注的点如下:
2.1. Download Available Model
,选择SD1.x model
中的模型,当然也可以在Download Custom Model
中下载自己想要的底膜,比如本文使用的GuoFeng3
模型4.2.2. Waifu Diffusion 1.4 Tagger V2
中的character_threshold
调节到0.85.1. Model Config
中注意填写好project_name
、pretrained_model_name_or_path
、vae
和output_dir
等变量。
最后开始训练,等待训练结果。
运行结果
- 最后27张图片,迭代20次,批次处理2张,图片重复率10次,最终的迭代步数为:27x20/2x10=2700步,运行的时间如下:
- 也可以查看训练过程中的损失函数、准确率、梯度、权重分布等信息,只需要运行
TensorBoard
即可,效果如下:
测试验证
使用stable diffusion webui
进行验证,利用它的X/Y/Z plot
脚本来查看不同的权重下的复现情况,
- positive prompt:
<lora:MyNvdi:STR>,masterpiece, best quality, (1girl), in white shirts, upper body, looking at viewer, simple background
- Negative prompt
low quality, worst quality, bad anatomy,bad composition, poor, low effort
- X/Y/Z plot
Prompt S/R,value:STR,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0
最终效果如下:
其他的效果如下(主要参照Civitai 国风3 GuoFeng3的Prompt进行设置):
可以看到权重在0.6时,不良人女帝的效果就开始显现(额头特有的标记显示),权重太大了之后可能就会有少量变形了。因此设置0.6-0.8的权重比较好。
由于本文使用的训练图片都是从网上搜索的,有一些质量不是很高,也导致了权重比较大时,呈现的效果也不是很好。
总结
本文简单的做了一个白嫖Google Colab进行Stable Diffusion Lora训练的总结,其中大部分参数都是使用默认的,还不是很理解其中的含义,可能训练的效果也不一定很好,后续可以更深入的理解其中的细节,明白训练参数的含义,这样也可以针对不同训练集做更好的训练,达到更好的效果。
虽然可以白嫖GPU,但是使用Google Colab还是有一些限制,有时候会分配不到GPU资源。后续将继续尝试使用本地GPU来实践Lora训练,敬请期待。
参考
Stable Diffusion】 在Google Colab上训练LORA模型详细教程
主要参考这个视频来做Google Colab的训练