
类型:人工智能
简介:基于AI的绘画生成工具,主要用于根据文本描述生成详细图像。
在使用Kohya WebUI进行Stable Diffusion模型训练时,有多个训练参数需要配置。本文将详细介绍一些常见的训练参数及其含义,以优化训练过程和提高生成效果。
一、底模(Base Model)
底模决定了此次训练的基础模型。选择合适的底模至关重要,通常需要根据目标任务来选择。如果你的目标是生成某一特定风格的图像(例如二次元角色),可以选择专门为该风格优化的底模(例如 NovelAI)。如果你的目标是生成具有较好泛化性的图像,可以选择 SD 模型,它包含了人物、物品、风格等多种元素。对于 SD2.0 模型,记得勾选 v2 和 v_parameterization。
二、最大分辨率(Max Resolution)
“最大分辨率”参数用于设定训练过程中输入图像的最大分辨率。确保训练集中的图像分辨率与此值一致,若图像尺寸不同,则会被裁剪。保持与数据集图像分辨率一致可以避免裁剪带来的问题。
三、Epoch
Epoch 表示整个训练集经过神经网络正向和反向传播的次数。在深度学习中,模型通过不断迭代调整权重以适应训练集数据,反复训练有助于提升模型对数据的拟合度。合适的 Epoch 数量能够帮助模型避免欠拟合(即对训练集的表现不佳)和过拟合(即模型只对训练集表现很好,但对未知数据表现差)。理想的情况是,Epoch 设置能够使模型在训练集和测试集上都具有较好的表现。
四、Batch Size
Batch Size 指训练时每次输入神经网络的样本数量。该参数直接影响训练过程的内存消耗和训练效果。通常,较大的 Batch Size 可以提高模型的准确性,但需要更高的计算资源。相反,较小的 Batch Size 会降低训练速度,但也能减轻显存压力。选择合适的 Batch Size 是一个平衡性能和内存占用的过程。
五、Save Every N Epochs
此参数决定了每训练多少个 Epoch 后保存一次模型。频繁保存模型有助于避免由于训练中断而丢失训练成果。
六、学习率(Learning Rate)
学习率决定了每次参数更新的步长,值越大,模型更新的步伐越大。合适的学习率对于训练过程至关重要,学习率太低会导致训练速度缓慢,学习率太高则可能导致训练过程不稳定,甚至无法收敛。
七、学习率调度器(Learning Rate Scheduler)
学习率调度器可以动态调整学习率,通常在训练初期使用较大的学习率来加速收敛,然后逐渐降低以便更精细地调整模型权重。常见的学习率调度器包括:
1、AdaFactor:自适应学习率调整。
2、Cosine:采用余弦函数进行学习率衰减。
3、Linear:学习率线性下降。
八、学习率预热比例(LR Warmup)
学习率预热技术帮助模型在训练初期使用较小的学习率,逐渐增加到预设值,从而避免因过大的学习率而导致训练不稳定。
九、优化器(Optimizer)
优化器的作用是根据模型的预测结果与目标值之间的误差调整模型权重。常见的优化器包括:
1、Adam:结合了动量和自适应学习率,常用于高维度的参数空间。
2、Adafactor:相比 Adam,减少了显存占用,适用于大规模训练。
3、Lion:比 Adam 和 Adafactor 更加高效,并节省了显存。
十、Text Encoder与UNet
1、Text Encoder:负责将文本数据(如提示词)转换为机器可理解的向量表示。
2、UNet:用于图像分割和修复任务,是生成图像的关键组件。可以为 Text Encoder 和 UNet 设置不同的学习率,以分别优化它们的文本理解和图像生成能力。
十一、Network Rank (Dimension)
Network Rank 或维度决定了神经网络模型的复杂度。维度越高,模型表达能力越强,但训练难度也相应增加。对于 LoRA(低秩适应)训练,维度一般建议设置为 64 或更低,以避免过拟合。
十二、Network Alpha
Network Alpha 是对过拟合的惩罚权重。提高该值可以增强模型的泛化能力,防止模型完全拟合训练集,从而提高对未知数据的表现。
十三、Caption Dropout
Caption Dropout 是一种防止模型过拟合的技术,它通过随机丢弃部分训练标签(标注)来迫使模型不会依赖某些特定的标签。在每个 Epoch 中,可以设置一个丢弃的比例,以增加模型的鲁棒性。
十四、Noise Offset
Noise Offset 用于调整训练过程中图像的亮度表现,使图像的亮暗层次更为明显。适当调整此参数可以帮助生成更具层次感的图像。
十五、Xformers
Xformers 是一个优化库,可以加速训练过程,并减少显存占用。如果显存紧张,开启 Xformers 可以帮助提高训练效率。
十六、Gradient Checkpointing
梯度检查点是一种减少显存占用的技术,它通过分批计算梯度来降低显存需求,虽然会增加训练时长,但能够使用更大的 Batch Size,从而可能提高训练效率。
十七、Shuffle Caption
开启此选项可以在训练过程中随机打乱训练标签的顺序,增强模型对标签顺序变化的鲁棒性,从而提升其泛化能力。
十八、Token
Token 参数设置了每次输入允许的最大 Token 数量。如果 Caption 较长,可以适当增加该值,确保模型能够处理完整的输入。
十九、Clip Skip
Clip Skip 控制是否跳过 Stable Diffusion 模型的 Clip 阶段。此参数对模型理解文本的过程有影响,调整该参数有时能改善模型的表现。