Stable Diffusion本地训练LoRA风格模型测试 - 互动创意
技术沉淀
Stable Diffusion本地训练LoRA风格模型测试
- insen 发表于2023年4月07日

一、角色训练基础测试

训练样本:驾校游戏角色63张,deepbooru 自动生成TAG。
源模型:Stable Diffusion V1.5
训练参数:BatchSize:1 学习率:1e-4
训练时长:超过3小时

2023-04-07T07:20:44.png

2023-04-07T07:21:18.png

训练过程中收敛速度较快,30000步后loss值低于0.1

训练结果展示:
基础模型:Stable Diffusion V1.5
提示词:1boy, bald, black_coat, black_eyes, black_pants, cape, clenched_hand, clenched_hands, pants, parody, solo, straight-on <lora:test_character_31500:0.75>
迭代步数:20
采样方法: Eular a

2023-04-07T07:21:58.png

该参数下生成结果风格趋近训练素材,但生成结果不稳定,线条够不平滑,颜色单一,缺乏美感。

基于结果进一步优化生成参数
基础模型:midjourney V4
提示词:character, solo, standing <lora:test_character_31500:0.75>
迭代步数:20
采样方法:DPM++ SDE Karras

2023-04-07T07:22:24.png

该参数下生成结果风格基本稳定,效果提升明显,大部分人物风格与训练素材相近,并且具备一定的创作能力,初步满足训练期望

结论分析:训练的结果会有到两大因素的影响,一个是生成的基础模型,一个是提示词,选择大模型作为基础模型,可以获得稳定的生成结果,并且不需要太过具体的提示词便能得到符合需求的生成结果;若基础模型数据不够丰富,则生成结果不稳定,并且需要大量的提示词来对生成结果进行约束。

二、训练度对照测试

接下来增加训练难度
训练样本:原神食物素材40张,deepbooru 自动生成TAG + 人工优化打标。
源模型:Stable Diffusion V1.5
训练参数:Batch Size:10,学习率:1e-4
训练时长:超过12小时

2023-04-07T07:23:15.png

2023-04-07T07:23:26.png

由于食物在目前的AI模型中属于冷门素材,导致学习效率较低,为了让训练结果更加精准,这次将学习率调低,代价是数据聚拢速度较慢,相比之前的角色训练多花了三倍的训练时间。

为了测试不同训练步数下模型的差别,这次分别生成了4000,8000,12000,16000,20000步数下的训练模型作为对比

2023-04-07T07:23:39.png

相比于之前的角色模型,这次在训练是人工参与了TAG的标注,在图片生成的精准度上有了明显的提升,基本上所有模型都有相对不错的表现,但训练次数越少,图片的细节越多,生成的图片具有一定的联想度,但美术风格也因为学习不够的原因与素材有所偏差,而生成次数多的模型,因为学习到了素材中的过多特征,导致出图和素材差异不大,使得模型的泛用性不足。

2023-04-07T07:23:49.png

为了进一步测试模型的泛用性,使用了durian(榴莲)作为提示词,该元素未在训练的素材中,可以看到,在低训练度的模型下,榴莲的形态相对比较完整,随着训练的步数增大,生成的图片越来越向素材靠拢,以至于逐渐失去了榴莲的基本形态。

接下来是图生图测试,这里使用了一个小龙虾的实物图,使用提示词food, crayfish, 反向提示词fish, meat, crab

2023-04-07T07:24:06.png

2023-04-07T07:24:19.png

由于训练素材中没有小龙虾的样本,所以这个测试非常考验模型的识图能力,低训练度的模型能够适配图中的物体,大概能看到虾的形态,而高训练度的模型还是出现了偏向训练素材的情况,弱化了图中小龙虾的形状。可以使用ControlNet,提取图中的边缘信息改善生成结果,以下为改善后的生成结果。

2023-04-07T07:24:34.png

三、多维度训练对照测试

最后一次训练主要希望测试Batch Size对模型质量的影响。
训练样本:建筑素材46张,纯风格训练,不打TAG。
源模型:Stable Diffusion V1.5
训练参数:Batch Size:3,5,10 ,学习率:1e-5
训练时长:超过24小时

2023-04-07T07:24:49.png

Batch Size是模型单批生成数量,Batch Size越大,单批获取到的数据样本越多,模型收敛的效率就越大,训练的速度就越快,但Batch Size需要大量的显存支持,目前服务器的8G显存仅支持Batch Size <= 1的参数下运行,为了能够测试更大的参数,这次使用梯度进度记录功能,需要支付更多的训练时间来换取更大的Batch Size

2023-04-07T07:24:59.png

对比了训练进度图,可以看到Batch Size 为 5的情况下比Batch Size 为 3的情况下效率有了明显提高,可以看到如果在配置满足要求的前提下,高Batch Size能够显著节约训练所需的时间。

最后分别在Batch Size的配置下生成了6个模型,根据训练步数将其分为六个等级,lv1: 2500, lv2: 5000, lv3: 7500, lv4: 10000,lv5: 12500, lv6: 15000

2023-04-07T07:25:12.png

上图出现了一种在特定训练步数下模型出现了崩溃的情况,可能是配置不足的原因,这里只对比正常的训练结果,可以看到,Batch Size 越低,训练效率越低,图形的变化较稳定,更多的训练步数可以使得模型拥有较高的泛用性,而在Batch Size 为10的模型中,可以看到模型最先学会了素材的美术风格,其次到图形结构,最后逐渐出现过度收敛的情况。这里大概可以分析出得出,如果需要模型有稳定的构图,可以使用低Batch Size参数来训练,但如果需要训练美术风格,使用高Batch Size或许能更容易得到理想的训练结果。

四、测试总结

1、模型的训练结果符合目前的游戏项目需求预期,甚至可以通过优化训练参数,优化训练TAG,调整基础模型来进一步提升训练质量,可以达到甚至超越目前国内VEGA平台的生成效果。
2、如果需要本地训练理想一个风格模型,目前初步预计训练一个可用的风格模型大概需要0.5到2天左右的时间;而训练的素材越多,模型的质量越高,需要支付的时间成本越大。
3、模型的训练过程涉及多个关键参数,有一定的上手门槛,需要对计算机神经网络有一定的基础,若对模型的质量有更高的要求,则需要大量的时间去调试与筛选样本,未来可能需要有专门的人员是负责模型训练这一块。
4、模型训练对服务器性能有较高的要求,主要来自于对显存的要求,目前的配置仅满足于LORA风格模型训练的最低配置,在本次模型训练测试中多次因显存的不足导致训练过程中断,模型损坏等情况的发生。若需要训练大模型,则需要更高的配置要求,最新的Dreambooth官方说明中要求显存在12G以上,预计在16G以上显存的配置下才能满足稳定大模型训练的基本配置要求。

0

评论