stable diffusion模型微调方法

embeddings

准备训练集

网络找图片,10~20张,jpg、png、webp等都可以,放到一个文件夹中
文件夹的命名为:repeat_文件名
其中:repaeat:正整数,用户自己定义。训练步数=图片数量repreatepoch/batch size
图片内容:图片需凸显要训练的主体物形象,不宜有复杂背景以及其他无关的内容,尤其是文字。

图片预处理

裁剪

webui>附加功能>批量处理,拖拽文件夹到指定位置>指定分辨率缩放,缩放到512*512>勾选裁剪以适应宽高比>勾选自动面部焦点剪裁;
在这里插入图片描述

打标签

webui>后期处理>批量处理文件夹下拉>勾选Caption下的BLIP,用来进行自动打标签(若为二次元图像,则勾选Caption下的Deepbooru生成标签会更准确)
打标插件(准确度更高):WD 1.4 Tagger

点击生成运行程序

调节训练参数

训练>创建嵌入式模型>名称:自定义;初始化文本:默认或描述训练主体的文字;每个词元的向量数:按默认1或调整为12以内的数>创建嵌入式模型

训练>训练>嵌入式模型:选择刚创建的嵌入式模型;数据集目录:图片预处理时的输出文件夹;提示词模板:训练风格选择style,训练对象选择subject
stable siffusion模型:

  1. 理论上,训练底模与生图使用的底模一致可以达到最好的效果
  2. 尽可能使用最原始的预训练模型进行微调,如果训练底模不够原始,模型会失去泛用性
    SD官方模型对比:
    推荐底模:
风格首选底模可选底模
真实风格SD1.5ChillOut Mix、Realistic Vision、MajicMix Realistic
二次元风格NovelAIAnyLoRA、Anything V3/V5、ReV Animated

Stable Diffusion官方底模对比:

模型名版本流传广度原始训练集尺寸
1.4/1.5512*512
2.0/2.1768*768
SDXL(0.9/1.0)1024*1024

大模型和LoRA底模必须为同一版本才能配合使用

训练嵌入式模型

当右侧生成的预览图基本可以满足需求后,可以在左侧点击中止按钮

使用微调模型进行生成

提示词输入嵌入模型名称,结合其它描述词进行生成

LoRA

Kohya GUI

准备工作
  1. python:3.10.9
  2. Git:无版本要求
  3. Visual Studio:2022 Redistributable
收集训练集

原则:尽可能涵盖训练对象的“多样化样本"
数量:20-30张

图片预处理

与微调embeddings模型中图片预处理步骤相同

设置训练参数

LoRA Type(LoRA类型):
standard:传统的LoRA。最原始的LoRA微调手法,通用且基础
LoCon:加入卷积层控制。微调更“深入”,能够更好结合角色和风格,但对学习率和训练集更敏感
LoHa:使用哈达玛积,对权重重新参数化。适合较简单的概念或多概念训练,可以追求更好的泛化能力
LoKr:使用克罗内克积,对权重重新参数化。与LoHa相似,但是使用了不同的算法进行优化
IA^3:少量参数高效微调。最快/最轻便的训练方法,学习画风效果很好,但是很难迁移
Optimizer(优化器)
Prodigy:只要将学习率、文本编码器学习率、Unet学习率都设置为1,该优化器可以在学习过程中自动改变学习率来取得最佳效果
LR Scheduler(学习率优化器):
对结果影响不大,常用的为余弦函数、带重启的余弦函数学习率的方法,若采用上述两种学习率优化器,则学习率周期数需要设置为3~5之间的数,才能起效
Mixw precision(混合精度)、Save precision(保存精度):
no:采用fp32,32位单精度浮点数
fp16:Floating Point 浮点数,fp16 半精度浮点数
bp16:Brain floating Point,fp16的变种
推荐使用fp16
CrossAttention(交叉注意力):
使用N卡时建议选择xformers,可以降低训练过程里的显存需求并显著提高速度
Memory efficient attention(内存高效注意力):
会压缩一定量的显存使用,是低配用户可以考虑降低爆显存风险的,但效果不如xformers显著,且对速度的影响较大(变慢)。显存够用时建议关闭
**max train epoch:**一般15~20左右
Network Rank(Dimension):常用4~128,一般可用32,64

Dreambooth

在这里插入图片描述

参考资料

Kohya使用方法与实践案例【内测中】
60分钟速通LORA训练
【【AI绘画】定制属于你的大模型!保姆式Dreambooth训练教程 autodl在线训练 NovelAI-哔哩哔哩】

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Diffusion模型微调是指在已有的Diffusion模型基础上,对模型的参数进行调整和优化的过程。这个过程旨在提高模型的准确性和预测能力。 首先,Diffusion模型是一种描述信息扩散过程的数学模型,它可以用来模拟信息在社交网络中的传播、产品在市场中的推广等现象。在现实情况中,模型的参数往往需要根据具体场景进行微调微调Diffusion模型方法主要包括以下几个步骤。首先,根据模型和场景的特点,选择合适的性能指标来衡量模型的表现。例如,如果模拟信息传播过程,则可以选择准确度、平均传播速度等指标。其次,对模型中的参数进行设置和调整。这包括确定传播速率、抑制因子、节点影响力等参数的数值。根据模型的特点,采用常用的统计学方法如最小二乘法、极大似然估计等进行参数估计,并根据实际数据进行模型拟合和优化。 另外,还可以使用一些优化算法来进行模型微调,如遗传算法、粒子群优化算法等。这些算法可以通过自适应搜索和迭代优化来寻找最优的参数组合,提高模型的准确性。 最后,微调Diffusion模型后,应该进行模型的验证和评估。这可以通过比较模拟结果和真实数据的对比来进行。如果模型的预测结果与实际数据吻合较好,那么说明微调后的模型是可信的。 综上所述,Diffusion模型微调是一个通过调整和优化参数来提高模型准确性和预测能力的过程。通过选择合适的性能指标、使用合适的参数估计方法和优化算法,并进行验证评估,可以使模型更好地适应不同的应用场景,提高模型的应用价值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值