- LoRA network weights
可在此训练已训练过的LoRA模型,且将保存成为一个新文件 - DIM for weights
- 只有在使用 LoRA network weights 进行额外训练时,才可以选择此选项
- 默认值为 off
- Train batch size
指定批处理大小,用以指定一次学习(同时训练)的图像数量
batch size 越大,学习时间越短,但调谐精度会降低,权重变化次数减少,可能导致学习不足 batch size 越大。消耗的内存越多 - Epoch
总共学习轮数、循环数 - Save every N epochs
每经过N个epoch,保存一次LoRA文件 - Caption Extension
在此处指定 caption file 的扩展名
若为空,则扩展名为”.caption”; 若扩展名为”.txt”,则在此处指定”.txt”
可忽略 - Mixed precision
指定训练期间权重数据的
Mixed precision 类型 建议选择 fp16 ,能够节省内存和加快速度 - Save precision
指定要保存在LoRA文件中的重量数据的类型
float 32位; FP16/BF16 16位 默认FP16 - Number of CPU threads per core
训练期间每个CPU内核的线程数 - Seeds
在学习过程中有许多随机过程,指定seed能够确定随机处理过程,更容易重现学习结果
但有些随机过程不使用此种子(如随机裁剪图像),因此指定相同的种子不总是能得到相同的学习结果
默认值为空 - Cache latents
训练图像被读入VRAM,在进入 Unet 之前会”压缩”到一个状态,这个状态叫做 latent,并在此状态下在VRAM进行训练 通常每次加载图像时都会”压缩”图像,但可通过 Cache latents 来指定将”压缩”图像保留在主内存中
默认值为打开 - Cache latents to disk
与Cache latents类似,选中此选项可指定将压缩的映像数据作为临时文件保存到磁盘 此临时文件可在重启kohya_ss后也可以重复使用
打开此功能将无法使用 augmentation and random crop other than flip_aug
默认值为关闭 - learning rate
默认值为0.0001 - LR Scheduler
用于如何更改学习速率的设置
adafactor: 选择此选项时将Optimizer设置为Adafactor。边学习边根据情况自动调整学习率,保存VRAM常数
constant: 学习率从头到尾不变
constant_with_warmup: 从学习率0开始,在warm-up时逐渐向学习率的设定值递增,在主学习时使用学习率的设定值。
cosine: 在绘制波浪(余弦曲线)的同时逐渐将学习速率降低到 0
cosine_with_restarts: 多次重复余弦
linear: 从学习速率设置开始,线性递减到 0
polynomial: 与线性行为相同,但减少起来更复杂。如果希望将学习速率固定在学习速率设置,请设置为常量。
默认值为cosine - LR warmup
如果在LR Scheduler中选择了constant_with_warmup,需要在此处设置warm-up次数 此处指定的次数为总步数的百分比
例如, 用1 batch size训练 50 个图像 10 次,并做 2 epochs, 则总步数为 50x10x2=1000. 如果你设置 LR warmup 为 10, 则1000 总步数的前 10% 或 100 steps, 将是warmup.
默认值为10 - Optimizer
设置如何在训练期间更新神经净权重
常用:AdamW、AdamW8bit、
Adafactor(使用Adafactor时忽略学习率设置)
Lion 较新
默认值为AdamW8bit - Optimizer extra arguments
如果希望给定优化器的粒度更高,可在此处编写命令
通常将此字段留空 - Text encoder learning rate
设置文本编码器的学习速率 对 Text Encoder learning rate 进行额外训练的影响会影响整个 U-Net,因此,它通常设置低于 Unet learning rate。
默认值为 0.00005(5e-5)
如果在此处指定一个数字,则该数字优先于“学习率”值 - Unet learning rate
设置 U-Net 的学习率
这是在 U-Net 中对每个attention block(以及取决于设置的其他块)进行额外学习时的学习率。
默认值为 0.0001(1e-4)
如果在此处指定一个数字,则该数字优先于“学习率”值 - Network Rank (Dimension)
指定“附加小神经网络”隐藏层中的神经元数量
神经元数量越大,可以存储的学习信息就越多,但学习学习目标以外的不必要信息的可能性增加,LoRA文件大小也随之增加。
通常设置为最大值约为 128 默认值为 8 - Network alpha
由于LoRA的结构, 神经网络的权重值趋于小, 如果它变得太小, 它可能会变得与零无差别 (等同于什么都学不了)。因此,提出了一种技术,其中实际(存储)的权重值保持较大,但在学习过程中权重始终以恒定的速率减弱,以使权重值显得更小。
网络 alpha 决定了这个“权重减弱率”。
网络 alpha 值越小,存储的 LoRA 神经净权重越大。 使用时权重减弱的程度(使用强度)由“Network_Alpha/Network_Rank”(大约介于 0 和 1 之间的值)计算,并且与网络排名数字密切相关。| 如果学习后LoRA的准确率不够好,权重数据可能太小,塌陷到0。在这种情况下,可以尝试降低网络 Alpha 值(=增加保存权重值)。 默认值为 1(即最大化存储的权重值)。
如果 Network Alpha 和 Network Rank 具有相同的值,则效果将被关闭。
在设置网络 Alpha 时,应该考虑对学习率的影响。
例如,Alpha 为 16,排名为 32,使用的权重强度为 16/32 = 0.5,这意味着学习率仅为学习率设置的一半。如果 Alpha 和 Rank 是相同的数字,则使用的强度将为 1,并且对学习率没有影响。 - Max resolution
默认值为“512,512” - Stop text encoder training
更新文本编码器对整体影响很大,所以很容易陷入过拟合(对训练图像调优过多而无法绘制其他图像)。
在适度点停止学习也是防止过度拟合的一种方法。 此处指定的数字是总训练步骤的百分比。一旦学习达到此百分比,文本编码器就会停止学习。
例如,如果总步数为 1000,而在此处指定了 80,则当学习进度为 80% 时,文本编码器将完成训练,即 1000×0.8=800 步。 U-Net 的培训继续进行,还剩下 200 个步骤。 如果此值为 0,则文本编码器训练直到最后才会停止。 - Enable buckets
如果训练图像的大小相同,则可以关闭此选项,但将其保持打开状态不会起作用 将大小相似的图像放在同一个存储桶中,将不同大小的图像放在不同的存储桶中。
如果关闭训练图像大小不统一时启用Enable buckets ,则训练图像将被放大或缩小为相同大小。
默认值为打开。
参考:LoRA training parameters · bmaltais/kohya_ss Wiki · GitHub