当前位置: 首页 > news >正文

kohya _ss训练stable-diffusion-LoRA模型保姆级教程(详细)

kohya _ss的安装部署在上一篇文章https://blog.csdn.net/a2428083131/article/details/160373649?spm=1001.2014.3001.5501

一、三种微调方式对比

方法修改对象模型大小显存需求特点当前地位
Textual Inversion文本编码器的嵌入向量~10KB极低不修改 U-Net,兼容性最好,但无法教会模型新知识特定场景备用
Dreambooth整个 U-Net + 文本编码器2-7GB8-16GB(优化后)全参数微调,概念注入最深,可独立使用深度概念修改首选
LoRA插入低秩适配层10-200MB6-12GB轻量、快速、效果依赖基础模型当前主流

为啥本文以Lora为例,详细描述各参数含义。

  • 性价比最高:10-200MB 的模型文件,6-12GB 显存即可训练

  • 生态最完善:Kohya-ss、AI-Toolkit 等工具链成熟

  • 效果可控:通过调整权重(0.6-1.2)灵活控制影响强度

  • 2026 年新进展:LoRA+、fused backward pass 等技术进一步降低显存需求,消费级 GPU 即可训练高质量模型

结论:对于绝大多数个人用户,LoRA 是首选;若显存 ≥ 12GB 且追求极致概念注入,Dreambooth 仍不可替代。


二、LoRA 训练完整指南

工具选择

工具难度推荐场景显存优化
Kohya-ss GUI中等大多数用户,参数控制最全AdamW8bit、xformers、cache latents
AI-Toolkit中等FLUX.1 训练、特定层训练消费级 GPU 友好,支持 8GB 训练
WebUI 内置 Dreambooth简单快速上手,但灵活性差一般

数据集准备(最关键)

图像要求
  • 数量:20-80 张(角色 30-50 张为甜点区)

  • 质量> 数量:清晰、对焦准确、光线良好

  • 多样性

    • 角度:正面、3/4 侧脸、侧面、仰视、俯视

    • 景别:特写、半身、全身

    • 姿势:站、坐、躺、回眸

    • 光线:柔光、硬光、室内、黄金时刻

    • 背景:多样化,避免模型记住特定背景

    • 服装:多套衣服,防止过拟合到特定服饰

    • 表情:微笑、严肃、惊讶等(想要什么就训练什么)

触发词(Trigger Word)

使用罕见词组合,如zkw woman(3-5 字母 + 类别词),避免与模型已有概念冲突。

标注方式(.txt)注意一张图对应一个txt
001.jpg 001.txt → zkw woman, front view, detailed face, photorealistic, best quality 它不仅可以训练人物,还可以根据实际的需求训练(如果说想同时训多个分类,可以安排多个文件夹,每个文件夹下都是这种格式)

参数详解

Configuration和Accelerate launch模块配置

模块参数名称推荐值含义与作用注意事项
ConfigurationLoad/Save Config file-加载或保存你当前的所有训练配置参数。可以把常用的配置保存成文件,下次直接加载,不用重复设置。第一次训练,可以先不设置,配置好后点保存按钮存成.json文件,第二次如果训练参数不变直接加载
Accelerate launch混合精度fp16/bf16/nofp16:半精度,显存占用最低,速度最快,绝大多数显卡都支持,是最通用的选项bf16:半精度,比 fp16 更稳定,但需要支持 Tensor Core 的新显卡(RTX 20 系以上)no:全精度 fp32,显存占用极高,速度慢,一般不推荐优先bf16
Number of processes1/2/3/4并行启动的训练进程数,和分布式训练有关。单卡用户只需要 1,多卡用户设置卡数。
Number of machines1参与训练的机器数量,只有多台电脑组队训练时才需要修改多机训练才需要修改为其他值
每个核心的 CPU 线程数1~64每个训练进程使用的 CPU 线程数,主要影响数据加载的速度,数值越大,图片预处理越快,但占用的 CPU 资源越多建议根据 CPU 核心数设置,4-8 线程 / 进程足够,避免 CPU 成为瓶颈
Dynamo backendnoPyTorch 的 JIT 编译器后端,用来优化训练速度。no表示不启用优化,兼容性最好;其他选项可能会提升速度,但部分环境会报错。no(兼容性首选,避免踩坑)
Dynamo modedefaultDynamo 的优化模式,配合 Dynamo backend 使用。只有启用了 Dynamo backend 时才生效。default(配合 Dynamo 为no时不生效)
Dynamo use fullgraph不勾选是否使用完整图模式运行 Dynamo,优化训练速度。不勾选兼容性更好,勾选可能提升速度,但容易报错。不勾选
Dynamo use dynamic不勾选是否启用动态形状追踪,优化模型的动态输入。一般用户用不到,开启可能会带来不稳定。不勾选
Hardware SelectionMulti GPU✅ 勾选是否启用多 GPU 分布式训练。勾选后会在多张显卡上同时运行训练,勾选后会启用 DDP 多进程并行模式
GPU IDs0,1,2,3指定这台机器上要参与训练的显卡编号,用逗号分隔如果你只想用其中 1 张,就写0;写0,1,2,3就是让 4 张卡同时工作
Main process port29500多进程之间通信的端口,用于同步梯度更新端口0可能会和其他程序冲突,建议固定为29500
Extra accelerate launch arguments留空arguments给 Accelerate 启动命令附加额外参数单机 训练不需要额外参数,只有多机分布式训练才需要填写

Model

Model(基础模型与数据集配置)

这部分决定了你的 LoRA 基于哪个底模训练,以及用什么数据训练。

参数含义与作用推荐设置补充说明
Pretrained model name or path训练用的基础 SD 模型runwayml/stable-diffusion-v1-5(或本地模型路径)建议优先用本地模型,避免网络下载速度慢或失败
Image folder你的训练数据集文件夹路径你的数据集根目录,如D:\kohya\datasets\my_character文件夹内必须按[训练轮次]_[触发词]的格式建子文件夹,例如10_sks person
Dataset config file (Optional)数据集配置文件(.toml),用于复杂训练设置留空新手 / 普通训练无需配置,只有需要分分辨率、分触发词训练时才用得上
Trained Model output name训练完成的 LoRA 模型文件名自定义,如my_character_lora_v1训练结束后会生成my_character_lora_v1.safetensors
训练注释写入模型元数据的备注信息可填可不填,如训练了1500步,触发词:sks person方便后续管理 LoRA 时快速了解模型信息
保存训练模型为模型文件格式safetensorssafetensors更安全,无恶意代码风险,是社区通用标准;不推荐用ckpt
保存精度模型文件的数值精度✅ `bf16与上述精度保持一致

文件夹

参数含义与作用推荐设置补充说明
Output directory for trained model训练完成的 LoRA 模型文件(.safetensors)要保存到哪里训练结束后,生成的模型会自动存到这个文件夹里,方便你后续在 Stable Diffusion 里加载使用直接选一个固定的文件夹建议每个 LoRA 单独建一个子文件夹,方便管理。
Regularisation directory (Optional. containing regularisation images)正则化图片目录,是一个可选设置。用来防止模型过拟合(比如训练人脸时,防止模型只生成你的特定长相)。训练时,模型会同时学习你的训练图和正则化图片,保持模型的泛化能力。新手 / 普通训练直接留空即可;如果训练的是非常容易过拟合的主体(比如特定人脸),可以准备一批通用同类型图片放在这个目录里。正则化图片一般是和你训练主体同类型的通用图片,比如训练人物时,用其他人物的通用照片。对于大多数普通 LoRA 训练(尤其是风格、服饰类),留空不填也完全可以,不会影响训练,只是过拟合风险会稍微高一点。
Logging directory (Optional. to enable logging and output Tensorboard log)日志目录,用来保存训练过程的日志文件和 TensorBoard 数据新手可以先不填,等熟悉训练流程后,再设置一个日志目录来监控训练效果。如果要填,建议和输出目录分开,比如D:\kohya\logs训练时会生成 Loss 曲线、学习率变化等日志,你可以用 TensorBoard 打开这个目录,可视化监控训练过程,判断模型有没有过拟合或欠拟合。不填也不影响训练运行,只是无法查看详细的训练日志和曲线。

Metadata

字段名称作用填写说明 & 推荐设置
Metadata title模型的标题 / 名称模型的显示名称,默认会用你设置的Trained Model output name。可以自定义一个好记的名字,比如my_character_lora_v1
Metadata author模型作者填写你的名字 / 昵称即可,方便别人知道是谁训练的。不想填也可以留空。
Metadata description模型描述填写关于这个 LoRA 的说明,比如训练的主体、触发词、训练步数、适用场景等。示例:训练角色:XXX;触发词:sks person;适用底模:SD1.5
Metadata license模型许可证声明这个 LoRA 的使用许可,比如MITCC BY-NC-SA等。个人自用的话留空即可,公开分享时再根据需要填写。
Metadata tags模型标签用逗号分隔的关键词,比如character, anime, portrait,方便在模型管理器里按标签筛选。示例:角色, 二次元, 人像

数据集准备

字段名称作用填写示例
实例提示你的专属触发词,用来让 AI 记住你要训练的主体比如训练特定人物,写sks,后续生成时用sks person就能召唤这个主体
Class 类提示主体的通用类别词,用来让 AI 理解这个主体属于什么类别比如训练人物写person,训练猫写cat,训练衣服写clothes
Training images你自己准备好的训练图片所在的文件夹把所有训练图都放在这个文件夹里,工具会自动处理
重复(训练图)每张训练图片的重复次数,决定了单张图的训练轮次图里的40就是每张图会被训练 40 次
Regularisation images(可选)正则化图片文件夹,用来防止过拟合放和主体同类型的通用图片,比如训练人物就放通用人像
重复(正则图)每张正则图片的重复次数图里的1就是每张正则图只训练 1 次
Destination training directory工具处理后,生成的标准格式数据集的输出目录这里生成的文件夹,就是你训练时要填到Image folder里的路径

基础

模块参数名称当前值含义与作用推荐设置
基础LoRA typeStandardLoRA 的训练类型,Standard 是最通用的全层 LoRAStandard(保持默认,新手首选)
训练批次大小1单卡每一步同时处理的图片数量。多卡训练时,会按 GPU 数量翻倍。2~4(4 卡等效总批次 = 8~16,更稳定)
数量增加1批次大小的倍数,一般保持 1 即可1
每批数量(training epochs)0训练轮数,和最大训练步数二选一设置保持0,以最大训练步数为准
最大训练步数1600总训练步数,是控制训练时长的核心参数1000~2000(根据训练图数量调整)
每N个epochs保存1每训练完 1 个 epoch 保存一次模型,方便中途测试1(每轮都保存,方便对比不同步数的效果)
Seed0随机种子,0 代表完全随机0(保持随机,避免训练结果固化)
缓存潜变量✅勾选提前把图片编码成潜变量,大幅减少显存占用、提升速度✅必须勾选
学习率相关学习率调度器(LR Scheduler type)cosine控制学习率随训练步数变化的策略,cosine 是最常用的余弦退火策略cosine(新手首选,收敛稳定)
优化器AdamW8bit优化器类型,AdamW8bit 是低显存优化版,非常适合消费级显卡AdamW8bit(保持默认,省显存又稳)
学习率0.0001核心参数,决定模型学习的快慢人物 / 物体训练:1e-4(0.0001)风格训练:5e-4(0.0005)
LR warmup (%)10学习率预热比例,前 10% 的步数学习率会从 0 慢慢升到目标值5~10(保持默认即可,避免训练初期震荡)
LR cycles1余弦退火的重启次数,一般保持 1 即可1
数据与分辨率最大分辨率512,512训练图片的目标分辨率,SD1.5 用 512×512512,512(SD1.5 标准,不要改)
Stop TE (% of total steps)0文本编码器训练的停止比例,0 表示全程训练
启用数据缓存buckets✅勾选自动把不同长宽比的图片分组打包,提升训练效率✅必须勾选(处理竖图、横图必备)
最小/最大数据缓存存储桶分辨率256~2048数据桶的分辨率范围,保持默认即可保持默认,或按最大分辨率调整为512~1024
启用数据容器 buckets✅ 勾选自动将不同长宽比的图片分组打包,避免强制拉伸图片,提升训练效果✅ 必须勾选
最小数据容器存储桶分辨率256数据桶的最小分辨率,低于此尺寸的图片会被过滤256(默认即可,无需修改)
最大数据容器存储桶分辨率2048数据桶的最大分辨率,高于此尺寸的图片会被下采样10242048(默认即可,无需修改)
文本编码器学习率0控制 CLIP 文本编码器的学习速度,非 0 时会训练文本编码器0(新手强烈推荐,避免提示词崩坏;进阶用户可设为1e-5
T5XXL learning rate0用于大模型(如 SD3)的文本编码器学习率,SD1.5 不生效0(默认即可,无需修改)
Unet 学习率0.0001核心参数,控制扩散模型(UNet)的学习速度,决定模型学习快慢人物 / 物体训练:0.0001(1e-4)风格 / 简单物体训练:0.0005(5e-4)
LoRA+ learning rate ratio0LoRA+ 扩展功能的学习率比例,用于分层精细训练,非标准 LoRA 用不到0(默认即可,新手无需启用)
LoRA+ Unet learning rate ratio0LoRA+ 功能下 UNet 部分的学习率比例0(默认即可,新手无需启用)
LoRA+ TextEncoder learning rate ratio0LoRA+ 功能下文本编码器部分的学习率比例0(默认即可,新手无需启用)
LoRA 核心结构Network Rank (Dimension)8LoRA 的维度(秩),决定模型的容量,数值越高能记住的细节越多,文件也越大人物 / 复杂主体:8~32简单风格 / 物体:4~8
Network Alpha1LoRA 的缩放系数,控制效果强度,建议设置为 Rank 的一半设为Rank / 2,如 Rank=8 → Alpha=4
正则化与防过拟合缩放权重规范0权重范数限制,用于稳定训练、抑制过拟合0(默认关闭,新手无需开启)
网络丢失(dropout)0神经元级别的随机丢弃,用于防止过拟合0(默认即可,新手无需开启)
排名丢失(rank dropout)0随机丢弃部分 LoRA 秩,用于防止过拟合0(默认即可,新手无需开启)
模块丢失(module dropout)0随机丢弃部分网络模块,用于防止过拟合0(默认即可,新手无需开启)
加速技巧(组合可提速 70%+)
  1. Cache latents:预计算 VAE 编码,提速 60-70%

  2. xformers:注意力优化,提速 25%

  3. AdamW8bit:8 位优化器,省显存

  4. Gradient checkpointing:用时间换显存


训练监控与防过拟合

过拟合信号
  • 只能生成训练图中的特定姿势

  • 背景出现训练图中的固定元素

  • 换提示词后人物不变

  • Loss 值不再下降但图像质量下降

验证方法
  1. 每 5 个 epoch 保存检查点

  2. 生成对比网格:不同 epoch + 不同权重(0.6, 0.8, 1.0, 1.2)

  3. 测试多种提示词:简单和复杂都要试

  4. 检查边缘情况: unusual poses、极端光线

经验

:最佳 LoRA 通常出现在 epoch 8-20 之间,而非最后一个 epoch。


使用 LoRA

在 WebUI 或 ComfyUI 中:

<lora:zkw_woman:0.8>, zkw woman, masterpiece, best quality, ...

权重建议

  • 0.7-0.8:自然融合,基础模型风格保留多

  • 0.9-1.0:标准强度,平衡角色特征和灵活性

  • 1.1-1.3:强影响,可能覆盖基础模型风格


三、常见问题速查

问题原因解决
LoRA 无效果权重太低/触发词错误/兼容性问题提高权重至 1.0,检查触发词拼写,确认基础模型版本匹配
生成图像千篇一律过拟合减少 epoch,增加数据多样性,降低 rank
质量差训练图质量差/LR 过高换高清图,降低学习率至 3e-5
背景固定训练图背景单一增加不同背景图像,或使用正则化图像
http://www.jsqmd.com/news/699838/

相关文章:

  • GitHub 热门项目 | 2026年04月25日
  • 深度学习在计算机视觉中的核心优势与应用实践
  • Hermes Agent 整合 OpenCode CLI 的实战经验
  • Redisson 介绍
  • 朴素分类器概率评估与优化实战
  • D6.3 PriorityClass 常用实验(2个)
  • DeepSeek创始人专访:中国的AI不可能永远跟随,需要有人站到技术的前沿
  • AutoCAD字体缺失终结者:FontCenter插件完整使用指南
  • Apache Doris 4.1:面向 AI Search 的统一数据存储与检索底座
  • DeepBump:从单张图片智能生成法线贴图的终极指南
  • 基于LLM嵌入的语义搜索引擎构建与实践
  • C++编写超低延迟MCP网关的成本控制实战(腾讯/蚂蚁级网关架构师内部分享·仅限首批200位开发者)
  • 工业Modbus调试神器:5分钟掌握OpenModScan,告别通讯故障烦恼
  • 打破传统娱乐局限,超元力无限方舟重塑沉浸体验新范式
  • 2026深度分析罗兰艺境化工材料GEO技术案例,测评景县密封件制造企业景顺密封优化过程与效果验证 - 罗兰艺境GEO
  • 算法训练营第十二天| 多数元素
  • 【行业首曝】VSCode 2026内嵌Vector CANoe Bridge插件深度评测:实现“编辑→编译→CAN帧注入→ECU响应追踪”全链路毫秒级闭环,效率提升217%?
  • Windows Cleaner终极指南:如何快速解决C盘爆红难题,释放20GB+空间
  • Java CompletableFuture 链式任务实践
  • CUDA 13内存模型变更引发的AI训练死锁频发?——基于Nsight Compute 2024.1.1的17个真实trace分析(含修复补丁)
  • 终极指南:3步掌握XELFViewer - 全平台ELF文件分析与编辑神器
  • MySQL LPAD()函数详解
  • 侠客工坊如何将普通手机如何变成AI手机,进化为24小时在线的AI数字员工?
  • 从UPF1.0到UPF2.1:Power Intent编写中那些容易踩的‘坑’与升级指南
  • Day3 C基础
  • 别再只盯着SQL注入了!从“任意账号注册”漏洞,聊聊开发中容易被忽视的业务逻辑安全
  • 国产化替代倒计时90天!VSCode 2026与IDEA/Rider在飞腾2000+/申威SW64平台的启动耗时、内存驻留、插件加载成功率三维对比(附原始perf数据包)
  • 多智能体协同中的竞态问题与分布式锁优化实践
  • 【PaddleOCR实战指南:图像文字识别、实时摄像头与PyQt5 GUI开发】
  • 两层板与四层板核心区别