图像LoRA训练

图片模型训练

Lora的概念

● Lora 允许在 Checkpoint 权重不变的情况下,对整幅图像进行微调。这样,只需要调整 Lora 就能生成特定的图像,而无需修改整个 Checkpoint。

● 目前训练的模型都是在官方训练好的模型(SD1.5、SDXL、PONY、ILLUSTRIOUS、FLUX、SD3.5)上进行的“精炼”。当然,也可以在其他人创建的模型上进行精炼。

● Lora 训练:AI 首先根据提示生成图像,然后将这些图像与训练集中的数据集进行比较。通过引导 AI 根据生成的差异不断微调嵌入向量,使生成的结果逐渐逼近数据集。最终,微调后的模型能够生成与数据集完全等价的结果,使 AI 生成的图像与数据集之间形成关联,使其越来越相似。

● 与 Checkpoint 相比,LoRA 的文件体积更小,节省时间和资源。此外,LoRA 可以在 Checkpoint 的基础上调整权重,从而达到不同的效果。

● 也可与Checkpoint融合,形成新的Checkpoint。

LoRA 训练过程

Five steps: Prepare dataset - Image preprocessing - Set parameters - Monitor Lora training process - Training completion

数据集

高质量的数据集是有效模型训练的关键.训练数据集是我们模型的来源,使用正确的大小、标记和编辑对于创建良好的数据集至关重要。

● 通常,20 到 40 张图片对于许多类型的 LoRA 来说已经足够,但风格模型训练需要更多图片来得到更好的泛化性。图片并非越多越好,低质量素材的加入反而会降低模型质量

● 通常寻找素材可以选择在图片网站中寻找,或者用AI 图像生成创建。但都需要避免使用出现问题的低质量素材图片

低质量素材一般有这些特点:画面太暗,不易识别到场景,构图不合理,画面不清晰,画面细节难以复刻,主次不明,画面细节难重复堆叠,无关元素的出现,主体不一且图片拼接,肢体错误或肢体错位

● 训练的角色风格最好与所选择的Checkpoint风格相近,即二次元角色就使用二次元的Checkpoint训练

所训练的角色通常 25-40 张图像就足够。使用相同的角色图像,但采用不同的姿势、角度、视图、衣服、表情、背景等

包含 30 张图片的数据集:12 张肖像照、4 张海滩背景照、4 张微笑表情照、6 张穿着原始衣服的照片、4 张背影照、6 张上半身照、8 张全身照、6 张坐姿照、8~10 张站姿照等。

● LoRA 风格数据集的选择

● 用的基准模型必须灵活或与所训练样式相似,插画的画风就使用平面类型的Checkpoint训练

所有图像必须具有相同的风格 (创建 LoRA 所需的风格)

编辑标签和触发词

● 必须使用触发词来实现最佳工作的 LoRA,它是提示阶段非常重要的部分。

● 触发词是 LoRA 的激活密钥,它本质上是标签,不会写入图像数据,而是显示在图像中。LoRA 的一致部分必须通过触发词来识别,而不是通过其自身的标签。

如:角色训练有固定头发特征就无需就无需在标签里标注,使其特征融合进触发词。风格训练,则需把带有风格词汇的标签删除

打标

名称

wd1.4

deepbooru

blip

joy2

llava

输出形式

单词

单词

自然语言

自然语言

自然语言

主要用途

二次元特化

动漫图像分类

通用图像描述

通用图像描述

通用图像描述

模型使用

1.5,il,pony

1.5,il,pony

flux,xl

flux,xl

flux,xl

阈值

0.3-0.6

0.3-0.6

/

/

/

阈值:值越小,描述越精细

图像预处理

裁剪图像

● 中心裁剪:裁剪图像的中心区域。

●焦点裁剪:自动识别图像的主要主题。

● 无需裁剪:即不裁剪图像,需要配合arb分桶使用

● 相比中心裁剪,焦点裁剪更容易保留数据集的主体,因此一般建议使用焦点裁剪。

● 对于稳定扩散 1.5 LoRA,建议使用 512x512, 512x768, 768x512 。如果您想创建高度详细的 LoRA,也可以使用 768x768 。

● 对于 SDXL、Flux 和 Stable Diffusion 3.5 训练,建议使用 1024x1024 。

数据集创建上传

可以选择上传已有数据集(即图片和文字标注相对应的总称)或者上传图片进行打标裁剪处理

已经上传完的数据集无法进行二次裁剪和自动打标,可以手动修改标签

上传完图片(一次批量上传数量小于50张),可选择裁剪方式以及尺寸和打标方法。选择完成后点击裁剪打标(待到完成处理即可开始调整参数训练)

训练参数设置

● 最上方是底模类型(即我们在这个类型的大模型下训练Lora)

● Base Model:每个类型的底模的不同选择

● Repeat:每张图片训练多少次。

● Epoch:所有图片训练多少轮

● Model Effect Preview Prompts:训练完成,每个模型会有一个样图,这个样图生成的提示词就是模型效果预览提示词

高级参数设置

● Batch size:指的是⼀次性送⼊模型的数据样本数量。设置为4时,意味着模型每 次处理4张图⽚。通过分批处理数据,可以提⾼内存的利⽤率与训练速度。通常,Batch Size值选择为2的n次⽅,提⾼了Batchsize,可以同步提⾼学习率,同倍数提⾼,⽐如2 倍的 batch_size 可以使⽤两倍的 UNet 学习率,但是TE学习率不能提⾼太多。

● Gradient Checkpointing:是⼀种⽤计算换显存的训练算法,可以节约显存 ,但会以牺牲⼀点速度。Batch Size是1,则关闭,Batch Size是2及以上则打开

● ARB Bucketing:⽤⾮固定宽⾼⽐的图像来训练(开启了ARB桶以后,无需裁剪。ARB 桶在⼀定程度上会增加训练时间。 ARB桶分辨率必须⼤于训练素材分辨率。)

● ARB Bucket Minimum Resolution:默认为256,上传图片分辨率不能小于256

● ARB Bucket Maximum Resolution:默认1024,上传图片分辨率不能大于1024,可以将数值改大,来添加更改分辨率的素材

● ARB Bucket Resolution Steps:默认64即可

● Save Every N Epochs:在循环次数的基础上保存模型,如:决定最终保存的 Lora 数量。如果设置为 2,且 Epoch 为 10,则最终将保存 5 个 Lora。

● Learning Rate:它表示 AI 学习数据集的强度。学习率越高,AI 学习能力越强,但也可能导致输出图像不一致。建议从较低的学习率逐渐增加,建议学习率为 0.0001。

● unet lr:设置 unet lr 后,学习率将不会生效。建议设置为 0.0001。

● text encoder lr: 决定对标签的敏感度。通常,文本编码器 lr 设置为 unet lr 的 1/2 或 1/10。

● Learning Rate & Optimizer:

AdamW8bit

prodigy

Learning Rate

总学习率1e-4

根据batchsize大小同倍数放大

所有学习率设置为1

实际学习率会自适应调整

Lr scheduler

Cosine with restart

重启次数不超过4

constant

Lr warm up

预热步数是总步数的5%~10%

/

● Network:常用数值

Network Rank Dim

32

64

128

Network Alpha

16

32

64

该值设置得太高会导致 AI 学习太深且模型会更大,捕获许多不相关的细节,类似于“过度拟合”

● Shuffle caption:启⽤后,训练过程中将随机打乱⽂本的token顺序,以增强⽣

成模型的泛化能⼒。建议打开。

● Keep N Tokens:⼀般选择1,以保持我们第⼀个填⼊的触发词,具有最⾼的权重。

● Noise Offset :在训练过程中加⼊全局的噪声,改善图⽚的亮度变化范围(就是能⽣成更⿊或者更⽩的图⽚)

● Multires Noise Iterations:定义迭代次数

● Multires Noise Discount:定义了噪声随迭代逐步减⼩的⽐例

注释:他们都需要更多步数以保证收敛,所以会影响训练时间。(针对Noise Offset,Multires Noise Iterations,Multires Noise Discount)

正则化

Regularization正则化就是规范化,就是规则,⼀个限制,正则化就是说给损失 函数加上⼀些限制,通过这种规则去规范他们在接下来的迭代中,不要⾃我膨胀。⽬的是 防⽌过拟合,增强模型的泛化能力

例如,在肖像数据集中,大多数图像都以长发为主,可以将短发图像添加到常规数据集中。同样,如果数据集完全由相同艺术风格的图像组成,您可以将不同风格的图像添加到常规数据集中,以丰富模型。常规数据集无需标记和裁剪。

训练记录查看

在创建数据集的右边查看训练记录

选择样图里没有问题的模型,进行保存

点击右上方个人账号的头像,跳转到个人作品界面,选择模型进行使用

模型测试

海艺会自动同步底模和所训练的Lora

在高级设置里将固定种子数打开,调整模型权重,即可测试模型在不同权重下的效果

Lora训练问题

过度拟合/欠拟合

过度拟合: 当数据集有限或 AI 与数据集的匹配过于精确时,会导致 Lora 生成的图像与数据集非常相似,从而导致模型的泛化能力较差。

右上角的图像在外观和姿势上都与左侧的数据集非常相似。

过度拟合的原因:

● 缺少数据集

● 参数设置不正确(标签、学习率、步数、优化器等)

防止过度拟合:

● 适当降低学习率。

● 减少Epoch

● 减少Repeat

● 利用正则化训练。

● 增加数据集。

欠拟合: 模型在训练过程中未能充分学习数据集的特征,导致生成的图像与数据集不太匹配。

拟合不足的原因:

● 模型复杂度低

● 特征数量不足

防止欠拟合:

● 适当提高学习率

● 增加Epoch

● 增加Repeat

● 减少正则化约束

● 向数据集添加更多特征素材(高质量)

Regular Dataset

避免图像过拟合的一种方法是添加额外的图像来增强模型的泛化能力。常规数据集不宜过大,否则 AI 会过度学习常规数据集,导致与原始目标不一致。建议使用 10-20 张图像。

例如,在肖像数据集中,大多数图像都以长发为主,将短发图像添加到常规数据集中。同样,如果数据集完全由相同艺术风格的图像组成,可以将不同风格的图像添加到常规数据集中,以丰富模型。常规数据集无需标记且无需裁剪。

图像模型类型划分

● SD1.5 :发布于22年10月,主流训练尺寸为512*512,作为训练底模,训练速度快,但出图质量相对一般

● 常用模型有:

majicMIX realistic

麦橘写实

Counterfeit-V3.0

GhostMix鬼混

XXMix_9realistic

● SDXL:发布于23年7月,主流训练尺寸为1024*1024,作为训练底模,训练速度一般,出图效果较好

● 常用模型:

Animagine XL V3 Series

XXMix_9realisticSDXL

Juggernaut XL

● Pony:发行很多版本,主流使用为V6 XL版本,发布于24年1月,主流训练尺寸为1024*1024,专注于卡通和动物风格图像生成的模型

● 常用模型:

WAI-ANI-NSFW-PONYXL

Prefect Pony XL

CyberRealistic Pony

● Illustrious:主流使用V1.0,发布于24年7月,主流训练尺寸为1024*1024,专注于提供高质量的动漫和插画风格图像生成能力。

● 常用模型有:

WAI-NSFW-illustrious-SDXL

Prefectious XL NSFW

Illustrious-Anime Artist

● 注:Illustrious和Pony底模训练出来模型,可以用在SDXL的模型下

● Flux:发布于24年8月,基于一种新颖的变压器架构,使用了 120 亿个参数,使其能够生成细致且逼真的图像。

主流训练尺寸为1024*1024,在512*512的训练尺寸下也有不错效果。

● 模型版本有:FLUX Pro,FLUX Dev,FLUX Schnell,FLUX GGUF,NF4

● 常用模型有:

名称

SeaArt Infinity

STOIQO NewRealit

MajicFlus麦橘超然

Last updated