Kohya_ss Flux.1 LoRA 训练完整教程:一次跑通可用的 Flux.1 LoRA
2026/9/13 13:46:36 网站建设 项目流程

Kohya_ss Flux.1 LoRA 训练完整教程:一次跑通可用的 Flux.1 LoRA

【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss

本文讲清 Kohya_ss Flux.1 LoRA 训练的完整流程:10–50 张图就位、改几处参数、按下 Start,最终产出一个可直接插进生成工作流的 Flux.1 LoRA 文件。

先摆清预期:四份模型资产与显存预估

GUI 里 Flux.1 的全部设置集中在 "Flux.1" 面板,对应源码在 kohya_gui/class_flux1.py。开训前先把四个文件放到磁盘,再把路径填进对应字段:

要填的字段放什么文件备注
pretrained_model_name_or_pathflux1-dev.safetensorsFlux.1 基础模型
ae(VAE Path)ae.sft解码 latent 与采样
clip_l(CLIP-L Path)clip_l.safetensors选 chroma 模型时不需要
t5xxl(T5-XXL Path)t5xxl 的 fp16 版预设明确注明 "Use the fp16 version"

预设文件 presets/lora/flux1D - adamw8bit fp8.json 里这四处都写着 "put the full path to ... here",套用预设唯一要做的,就是把它们替换成真实路径。

Base Model Type 下拉有两项:flux 和 chroma。flux 是标准 Flux.1-dev,需要 CLIP-L;chroma 面向 schnell 系模型,不要 CLIP-L,且 guidance_scale 会自动归零。用 flux1-dev 训练就保持 flux。

显存预期:这套 fp8 基座 + bf16 + batch 1 是省显存组合。想调高分辨率或 batch,显存会跟着涨,动手前先按自己的显卡估一下。

训练数据先行:图片与同名标注的准备

目标人物(或风格)的图 10–50 张,每张图旁边放一个同名 .txt 标注文件。预设里 caption_extension 已是 .txt,图放进 train_data_dir 指到的文件夹即可。

![Kohya_ss Flux.1 LoRA 训练示例数据 512x512 图片](https://raw.gitcode.com/GitHub_Trending/ko/kohya_ss/raw/f44226cfccca008094f958d829c49c74a7e9289d/test/img/10_darius kawasaki person/Dariusz_Zawadzki.jpg?utm_source=gitcode_repo_files) 仓库 test/img 中的 512x512 示例图,是 Flux LoRA 训练数据的常见尺寸

![Kohya_ss Flux.1 LoRA 训练数据与同名标注配对示意](https://raw.gitcode.com/GitHub_Trending/ko/kohya_ss/raw/f44226cfccca008094f958d829c49c74a7e9289d/test/img/10_darius kawasaki person/Dariusz_Zawadzki_2.jpg?utm_source=gitcode_repo_files) 图片旁的同名 .txt 就是它的标注

标注文本不用讲究,一句英文描述风格加主体即可,仓库示例是 "a painting of a steam punk skull with a gas mask, by darius kawasaki"。

分辨率交给桶机制——它把图片按宽高比缩放进就近的预设档位。预设里 enable_bucket = true、max_resolution = 512,512、bucket_reso_steps = 64、bucket_no_upscale = true,含义是只缩不放、绝不上采样。max_resolution 别自己调高,显存会直接翻倍。

参数只需动这几处:预设加载与关键开关

第一次跑不要手写参数,在 GUI 预设区直接载入 flux1D - adamw8bit fp8 预设,它就是为 fp8 省显存训练准备的。正文真正要理解的只有七处:

  1. train_batch_size = 1:Flux 的双块(double blocks)体积很大,batch 1 是显存和收敛都成立的组合。
  2. optimizer = AdamW8bit:优化器状态用 8 位存储,比普通 AdamW 省显存。
  3. fp8_base = true:基座模型用 8 位精度(fp8,8 位浮点)参与训练,这是预设省显存的核心。
  4. mixed_precision = bf16:训练精度,与 fp8 基座配套使用。
  5. gradient_checkpointing = true:用重计算换显存,代价只是多花一点时间。
  6. learning_rate = 0.0003,network_dim = network_alpha = 16:10–50 张图规模下验证过的搭配。
  7. max_train_steps = 1000:1000 步足够练出一个可用 LoRA。

其余参数预设已写好,对照这张表确认即可:

参数预设值
discrete_flow_shift3
timestep_samplingsigmoid
model_prediction_typeraw
guidance_scale1(GUI 默认是 3.5)
flux1_cache_text_encoder_outputs / to_disk均 true,缓存文本编码器输出,免去每轮重算,落盘后中断恢复更快
train_blocksall,改 double / single 可只训部分块、省显存
max_grad_norm1,梯度裁剪,防 loss 尖峰
min_snr_gamma / loss_type7 / l2

启动训练、盯盘与挑出最好的一步

启动共四步:

  1. 填好并确认四个模型路径
  2. 加载数据集,确认 train_data_dir 指向图片文件夹
  3. 把 output_dir 和 output_name 改成自己的
  4. 点 Start

训练中盯两处:

  • Checkpoint(检查点快照):save_every_n_steps = 50,每 50 步落盘一个 safetensors(save_precision = bf16)。最终效果不理想,也能从中间挑最好的一步。
  • Loss 与样图:预设 sample_prompts 是一条带 --w 832 --h 1216 等参数的提示词,采样器为 euler。loss 应逐渐下降,样图逐步趋近目标人物,两者同时成立才算方向对。

出问题时按现象查

现象第一动作升级动作
训练中途显存爆 OOMtrain_blocks 从 all 改成 double 或 single,只训部分块打开 CPU Offload Checkpointing(实验性功能)
训练起不来、报模型加载错误逐个核对四个路径是否为完整绝对路径确认 T5-XXL 是 fp16 版而不是 fp8 版
loss 不降或上下震荡learning_rate 降到 0.0001,确认 max_grad_norm = 1 生效把 min_snr_gamma、loss_type 还原成预设值 7 / l2

fp8_base + bf16 已是保守方案,多数 OOM 靠减块就能解决。

启动前自检:六项逐条过一遍

  1. flux1-dev、ae.sft、CLIP-L、T5-XXL(fp16)四个文件就位,路径已填
  2. 预设已加载,LoRA_type 显示为 Flux1
  3. 显存开关打开:fp8_base、gradient_checkpointing、文本编码器缓存(含落盘)
  4. train_data_dir 有 10–50 张图,每张配同名 .txt
  5. output_dir、output_name 已改成自己的
  6. 样图 prompt 已写,TensorBoard 已打开

【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询