Lazy loaded image
技术分享
Lazy loaded image模型训练
Words 3476Read Time 9 min
2025-6-15
2026-1-13
type
summary
status
category
tags
slug
date
password
icon
状态
子标签
标签
日期
Jan 13, 2026 08:03 AM
CONTENT
 

LoRA模型训练

60分钟速通LORA训练!绝对是你看过最好懂的AI绘画模型训练教程!StableDiffusion超详细训练原理讲解+实操教学,LORA参数详解与训练集处理技巧_哔哩哔哩_bilibili
📕参考资料:gf66fxi6ji.feishu.cn/wiki/CEQgw0Bfdi1HBRktnIxcNg7CnRf(施工中)训练器安装全流程指引:gf66fxi6ji.feishu.cn/wiki/Q4EYwQl2riWw25kdN3hc5xuEnIe🔗练习素材:度盘:pan.baidu.com/s/1W4ha-dMcoaCqF4ltyDNf7A?pwd=nely Quark:pan.qu, 视频播放量 694805、弹幕量 3402、点赞数 32231、投硬币枚数 31258、收藏人数 64236、转发人数 4554, 视频作者 Nenly同学, 作者简介 不会画画的设计师,兴趣爱好是做一点教程 | (站内只有这一个账号) ( • ̀ω•́ )✧,相关视频:【AI绘画】模型训练器发布!专业的LoRA模型/大模型训练一键包 SD-Trainer,【AI绘画】深入理解Stable Diffusion!站内首个深入教程,30分钟从原理到模型训练 买不到的课程,真人LORA训练全攻略 !手把手教你 这还不简单?真人LORA全面教程 stablediffusion教程 SD教程 零基础入门教程 AI绘画,训练真人脸部lora教程stablediffusion,【AI绘画】秋叶Lora模型训练器,如何使用和训练LoRA模型?你想要的都在这!--人人都可以当炼金术士!,「AI动画终极教程」Lora炼制宝典!解决AI一致性痛点!操作最简单!最实用lora训练全流程教程!AI进阶教程!赋能AI智能体教学!在线comfyui工作流!,【AI绘画】最佳画风/人物模型训练!保姆式LoRA模型训练教程 一键包发布,“LoRA已死,新王当立”参数再砍95%!LoRI【论文精读】,生成用于训练Lora模型的一致性角色图像,【AI绘画模型】全网超强的5个SD涩涩大模型推荐(附SD模型下载)手摸着手教你用AI自由画涩图,小白也照样能搞定!
60分钟速通LORA训练!绝对是你看过最好懂的AI绘画模型训练教程!StableDiffusion超详细训练原理讲解+实操教学,LORA参数详解与训练集处理技巧_哔哩哔哩_bilibili
 
 
 
 
 

 

第一课_原理

Part1:原理

notion image
prompt→tags→词元vector→加噪→去噪→VAE→像素组合图片
 

Part2:训练对象

  1. 三个模型(主要训练的就是前两个)
    1. 文本编码器 Text Encoder
    2. 噪声预测器 Noise Predictor
    3. 变分自编码器 Variational Auto Encoder
    4. reference(embeddings和lora只是挂载的)
      notion image
 
  1. 训练对象:
    1. 微调模型Fine Tuned Model
      1. ref
        notion image
    2. 底模选择:可以是官方的预训练模型如SD1.5,SDXL,也可以是别人已经微调过的模型
 
 

Part3:训练方法

  1. Dreambooth
    1. 对应checkpoint
  1. LoRA
    1. 对应LoRA
  1. Textual Inversion
    1. 对应Embeddings
ref:LoRA性价比高
notion image
 
  1. 模型融合Merge
    1. 对应市面上80%以上的Checkpoint和LoRA等
 

Part4:文本反演Textual Inversion_Embeddings训练

文件格式一般为.pt或者.safetensors,比较小,以KB为单位可能
步骤:

Step1 准备训练集

10-20张图片即可
 

Step2 图片预处理

  1. 裁剪:将图片裁剪为合适大小,比如SD1.5的训练集是512*512的,那这里也裁一样大
    1. 可以在webui里用后期处理部分的功能批处理,自动面部焦点对齐
  1. 打标:基本的打标在webui里有自动化的caption,两种deepbooru(二次元)和blip,能自动识别图像内容并以词库tag对其进行标注
 
 

Step3 调节训练参数

ref
notion image
  1. 底模:默认为webui里正在出图的checkpoint
    1. 尽量选择最原始的,保证学习效果和泛用性
  1. 模板:根据训练的类型如人(subject),风格(style)等随机加入相关tag,加深记忆
 
 

Note:训练逻辑

ref
notion image
  1. 是按词自画,不断接近训练图片。按照提示词生成图片→vector,对比预训练图集的图片→vector,不对就修改vector,使之不断靠近
  1. 步数:1~2万步,根据预览图实时跟踪
 
 
 
 
 
 
 

 

第二课_LoRA

 
引入:

Part1:原理

  1. 冻结原来的预训练模型的权重,另起一个微调权重
    1. 原来模型的数据可以理解为类似于空间向量组成的矩阵,所以后面算法的优化可以用到线性代数的知识,这个算法来源于微软工程师针对gpt作训练优化的研究。
  1. 优化微调权重的训练方法,降本增效:具体就是把原来的满矩阵提取出横纵两行的数据,其它留空,只训练这个转化后的矩阵。即对训练数据集(矩阵)的处理:满秩→低秩→满秩。
    1. ref
      notion image
  1. 低秩的数据也能降低存储需求,即LoRA模型会小很多
 
 

Part2:训练工具

  1. 硬件:GPU,显存,内存等;云服务器
  1. 丹炉:训练启动器
    1. KOHYA
    2. 国内up主封装的
  1. 前置训练环境配置:
    1. git:版本控制,用于拉取代码在线仓库的程序文件
    2. python:编程语言
    3. visual studio:集成开发环境工具包
 
 
 

Part3:基本流程

Step1:训练集收集

多样化

Step2:图片预处理

更好地辨析intention
  1. 裁剪
    1. 手动检查
    2. 也不是必须严格512
  1. 打标
    1. 除了自带那俩deepbooru和blip,还能用其他的插件,比如WD1.4Tagger,择优
    2. 附加标签:比如角色名,可以作为触发词trigger

Step3:设置训练参数

  1. 底模
    1. 下载到本地,custom选本地比从启动器提供的链接下载快
      1. ref:一直在变,比如最近的SD3.5,FLUX等
        notion image
    2. 相对来说,1.5配置要求低,好训练,社区内容也更多
    3. 二次元底模一般用NovelAI泄露的模型NAI,江湖流传的名一般为anime_full.ckpt
    4. ref:底模的选择灵活,老的效果一般一般,可以考虑融合的
      notion image
      SD二次元基因的注入者Novel AI,其相关关系
      notion image
  1. 文件夹
    1. Name:
      image
      repeattimes(训练次数)_concept(概念,trigger)
      log
      model
      名字用纯英文字母,训练图片放在image文件夹里,不是那个概念文件夹
      ref
      notion image
  1. 参数
    1. 预设模板presets
    2. 跟着跑通,能有个基本效果
 
 
 

Part4:参数意义

6大参数板块
 

LoRA类型

ref
notion image
  1. standard传统版,稳妥
  1. LoCon版,综合素质高,但慢一点
  1. IA^3版,省事便捷,但无法迁移
 
 

训练步长

  1. Epoch(时期,纪元,轮次),一个epoch就是走完一个轮次,比如文件夹为 6_name,里面30张图,一轮就是训练6 * 30 = 180 步,一个轮次即一个Epoch就是180步。
  1. 总步长 = 总的图片训练次数 = 每张训练次数 * 图片数量
    1. 一张图片完成一次从模型生成到比对调整的流程,为一步
    2. 文件夹前面的repeattimes就是每张图片训练次数
  1. Epoch的合适区间:很重要,少了欠拟合,多了过拟合;1200~1500步是个模糊的大致参考区间
  1. 控制总步数的变量:有很多,比如可以设置一个较大的轮次epoch,但后面设置总步数,使得训练在这里停下
  1. 输出结果:不是最后才有的,中间会有阶段性模型产出。可以设置每隔 ? epoch保存一次
  1. 批次跟生图一样,就是一次几张图
 
 

学习率

  1. 常见的:1e_4 = 0.0001
  1. 学习率过高会导致过拟合,overfitting
  1. 没有标准答案,涉及到模型,步数,训练集图片数据等,只能根据结果调试
  1. 文本编码器学习率更敏感,一般是Unet(噪声预测器)学习率0.1~0.5倍
    1. 默认不填下面俩的话,一般默认Unet学习率等同学习率,TE学习率为其一半。
    2. 填了的话,上面的就不生效了,Unet学习率就是学习率
 

优化器

  1. 常用:老牌的AdamW8bit,谷歌新出的Lion,Meta和三星出的神童Prodigy(无参数自适应学习率方法)
  1. 学习率数值:可以从7e-5,8e-6之类的开始试;选神童Prodigy的话,设置3个1就行,会自适应
  1. 调度器scheduler,控制学习率衰减,用cos就行,影响不大
 
 
 

网格维度

  1. Network Rank(Dimension)
    1. 即秩,越大,从原来的满秩里抽出来的行列就越多
    2. 理论最大为128,此时LoRA模型大小约为144MB
    3. 最小为8,此时LoRA大小不到10MB
    4. 如拟真的复杂的调大,如二次元的简单的调小
    5. 一般从低秩试起
  1. Network Alpha:alpha for LoRA weight scaling
    1. 调节LoRA对原模型起作用的大小
    2. 但:值越大(最大与rank一样大),LoRA起的作用越小;值越小,LoRA起的作用越大
    3. 一般设的较小,比如1,使其发挥最大作用,去微调
  1. 选择带有”卷积层“的变量的LoRA类型时,会多出相应的卷积层Convoluation的Rank和Alpha,逻辑跟Network是一样的
    1. ref of value(for anime style),times 3 in real world style
      notion image
 
 
 

训练性能

  1. 混合精度MIX Precision,保存精度Save Precision
    1. no:即默认,其实是FP32,单精度浮点数,深度学习主力军
    2. FP16:半精度浮点数。加快速度,节约算力。也是社区市面上绝大多数模型的选择。
    3. BF16:Brain Floating Point。与FP16差距不大。
    4. 精度粗糙一点,对最终模型产出效果影响不是特别大
 
  1. 缓存潜空间变量Cache Latents,缓存潜空间变量到磁盘Cache Latents to Disk
    1. Latents即潜空间图像,也是图像,但是是由VAE把像素图像解码转化为Vector向量形式存储的,用于训练的图像
    2. Cache Latents打勾就在训练前提前转换,存到显存里,不打勾就训练中逐张转换
    3. to Disk就是存硬盘里方便连续训练,不用反复缓存到内存,即调试同一个训练集的参数时打勾;打勾会稍微变慢,可能由于从disk里比从ram里调取要慢
    4.  
  1. 交叉注意力 Cros Attention(在进阶参数中)
    1. Nvidia:xformers,一种学习机制,起优化和降低配置需求作用
    2. 内存高效注意力 Memory Efficient Attention,降低显存需求,效果不如xformers,而且会使训练边慢很多
 
ref when overfitting or underfitting:多试试
notion image
 
 
 
 
 
 

Part5:(重点)训练集清洗

前言

Kohya中有Bucket Resolution,即分辨率桶,会把预训练图片集里的不同分辨率的图片分到不同的容器桶中,分开训练。默认开启,但太多的桶,可能会对训练效果造成负面影响。
  1. 所以还是要尽量把预训练集的图片处理成统一分辨率的,或裁剪,或填充,或尽量少分组。

打标

之前的思考总结:
57:35
ref
notion image
  1. 模型是AI可理解的向量合辑,向量是图片的视觉特征即像素分布特征对应文字tag的指向;
  1. 为了后期出图的可操作性更大,模型应该具有更强的专一性,例如某一角色模型,只保留某一角色最本质的特征
  1. 训练模型,即炼丹就是AI在原有的基础上吸纳新的向量合辑;
  1. 所以炼丹时,预期模型包含的是新的特征,不需要拆分成很细的tag。除了预期模型的凝练tag,其他的都应该是旧的,库里包含的,从而避免预期模型中的必要特征与之前的向量建立联系,弱化预期模型应有的特征。
    1. 模型是动漫人物,那这个向量应该包含脸部特征,头发特征,装饰品特征,服装特征(当然可以按需去除),所有这些合在一起才是这个人物;所以在打标的时候,需要把所有非特征的部分tag出来,如背景特征,光照特征等,让AI与之前的向量建立联系,那剩下的新的向量合辑就是这个模型,也就炼出来了。
    2. 模型是画风,那这个向量应该包含线稿走向,配色,突出元素等(其它专业的画风分类的名词)特征;在打标的时候,这个画风tag应该包含的特征不打出来,不包含的打出来,比如同人角色,普通元素等。
  1. 暂时这个阶段的理解

标注的清洗

用插件Dataset Tag Editor,加boorutag词库查询
  1. 整体审核:删
    1. 非角色特征tag,如1boy
    2. 角色锚点tag,如hair ornament,white hair,long hair;
    3. 替换
  1. 批量调整
    1. 批量增标:添加未识别但影响到出图效果的tag,如:夜色night(会使图偏暗)
  1. 单张修改
    1. 遍历
    2. 根据上面的逻辑,增删改tag
      1. ref
        notion image
记得保存,也记得勾选备份,这插件不是很人性化
 

找图

  1. 多样化:官方图,模型图,同人图,模型图等等
  1. 找,或者造:自己截3D模型的不同角度
  1. AI图反哺,类似于给deepseek喂chatgpt
 
 

Part6:实践

 

案例1 小金人奖杯

  1. 训练集清洗
 

案例2 Arcane风格

  1. 训练集量要求比人物多
  1. 步数业会相应增多
 
 
 

Part7:补充知识

底模

  1. 底模
    1. 下载到本地,custom选本地比从启动器提供的链接下载快
      1. ref:一直在变,比如最近的SD3.5,FLUX等
        notion image
    2. 相对来说,1.5配置要求低,好训练,社区内容也更多
    3. 二次元底模一般用NovelAI泄露的模型NAI,江湖流传的名一般为anime_full.ckpt
    4. ref:底模的选择灵活,老的效果一般一般,可以考虑融合的
      notion image
      SD二次元基因的注入者Novel AI,其相关关系
      notion image
 

监控训练进程

  1. 查看命令行
    1. it/s,iteration per second,每秒的步数;s/it,second per iteration,每步消耗秒数
    2. loss值:预测值与样本值的差异,理想的训练过程中avr_loss的震荡幅度会从大到小,表示生图与训练图接近。 看趋势。
      1. Loss = Non,即爆了
    3. Tensor board:将命令行数据转化为可视化图表的监测看板插件
      1. 看损失值avr_loss
      2. 看学习率lr:开启学习率预热LR Warm Up的话(一般10%),前端曲线会突出来,一种学习策略
      ref
      notion image
      notion image
 
  1. 现场跑一个
    1. 在参数-样例里面,即sample
    2. 一般设置每100步采样一次
    3. 出图参数直接在prompt输入框里按格式标出
    4. 输出会在sample文件夹里
  1. 每隔200步数(以1200为总步数)存档一个LoRA,就能有6个LoRA模型,一般是中间的某一个效果比较好
  1. X/Y/Z plot,对比图表;类型填变量名,值用”,“分隔
    1. 改模型名字,统一后缀,救能在prompt里用文字调用,也能在图表里借助表达式分别调用
      1. ref
        notion image
        notion image
        notion image
        notion image
  1. 训练参数在训练output问价夹里的.json文件中,下一次训练直接在Kohya中导入,就能直接套用上一次的训练参数了
 
 
 
 
 
 
 

 
 
 
上一篇
项目产出
下一篇
ComfyUI