ComfyUI LoRA Training 是一份用于指导角色 LoRA 训练的技能文档,目标是通过数据集准备、训练配置和评估,让模型稳定复现某个角色形象。
一、用途与适用判断 文档首先给出「训练 LoRA 还是零样本」的决策表:需要在大量图像中保持绝对一致性、或构建角色系列与长期项目时,建议训练 LoRA;快速一次性生成、参考图仅 1-5 张、或仅测试概念时,建议使用零样本方案(InstantID/PuLID),确认要长期投入后再训练。
二、训练流程 整体分为五步:数据集准备、配置训练、训练、评估、集成。
- 数据集准备:收集或生成 15-30 张参考图,进行裁剪、缩放、风格多样化等预处理,并用触发词加描述进行标注。
- 配置训练:选择训练工具(Kohya/AI-Toolkit/FluxGym),按模型类型设置超参数,配置检查点保存。
- 训练:监控损失曲线,每 250-500 步保存一次检查点。
- 评估:用相同提示词测试各检查点,检查身份准确度、灵活性与过拟合,选出最佳检查点。
- 集成:复制到 ComfyUI 的 models/loras/ 目录,更新角色档案中的触发词与强度,并在完整工作流中测试。
三、数据集准备 图像要求方面,数量最少 10-15 张、最佳 20-30 张、最多 50 张以上;分辨率最低 512x512、最佳 1024x1024;格式建议 PNG 或高质量 JPEG,最佳为 PNG。内容多样性清单包括:多角度(正面、3/4、侧面、背面)、多种表情、不同光照、不同背景、多套服装与场景、近景与中景混合。 针对 3D 渲染素材,文档指出直接训练会把「3D 质感」烘焙进去,建议先用 img2img 生成风格变体,按 60% 风格变体加 40% 原始渲染混合,让模型学习身份而非风格;并给出写实、油画、数字插画、铅笔素描、水彩等风格提示词示例。 标注规则要求触发词始终作为第一个词,且必须是唯一 token(如 sage_character、ohwx_sage、sks_person),避免使用 woman、redhead 等泛化词。标注结构为:触发词、主体类型、服装、姿势、场景、光照、风格。不要描述面部特征(让模型自行学习),但要描述服装、姿势、背景、光照、表情等其他内容。 文件夹结构为 dataset/{character_name}/{repeats}_{trigger_word}/,图片与同名 txt 配对;文件夹名中的数字表示每张图在每个 epoch 重复的次数。
四、训练配置 FLUX LoRA(AI-Toolkit,推荐):网络类型 lora,linear 16(角色建议 16-32),linear_alpha 16;batch_size 1,梯度累积 4,步数 1500,学习率 4e-4,优化器 adamw8bit,dtype bf16;分辨率 1024;每 250 步采样。文档说明 FLUX 收敛比 SDXL 快 2-3 倍,1000-2000 步通常足够,需注意过拟合;标准需 24GB 显存,SimpleTuner 使用 NF4 量化可降至 9GB。 SDXL LoRA(Kohya_ss):预训练模型 RealVisXL_V5.0.safetensors,network_dim 32(16-64),network_alpha 16(通常为 dim 的一半),分辨率 1024x1024,batch_size 1,梯度累积 4,学习率 0.0001,调度器 cosine_with_restarts 且 3 个周期,最多 10 个 epoch,优化器 AdamW8bit,混合精度 bf16,启用 bucket,min_snr_gamma 5。步数计算公式为(图像数 × 重复数 × epoch 数)/ batch_size,SDXL 目标 1500-3000 步。 低显存训练(FluxGym/SimpleTuner,12-16GB):use_8bit_adam、gradient_checkpointing、cache_latents_to_disk 均开启,max_data_loader_n_workers 0,batch_size 1,梯度累积 8,SimpleTuner 可设 quantize_base_model 为 nf4。
五、评估协议 用相同提示词测试每个检查点,包括中性表情、微笑户外、正式西装办公室,以及一个不含触发词的对照提示(不应生成该角色)。良好训练的标志:仅凭触发词即可识别角色、能响应不同提示与场景、不会总是同一姿势表情、对照提示不产生角色。过拟合迹象:无论提示如何都是同一姿势表情、训练背景出现在输出中、忽略服装与场景提示、对照提示也生成角色。文档给出检查点经验:250 步通常欠拟合,500-750 步常是 FLUX 的最佳区间,1000-1500 步可能过拟合,应结合身份与提示灵活性目视比较选择。
六、训练后集成与组合使用 将最佳检查点复制到 {ComfyUI}/models/loras/,更新角色档案(trained、model_file、trigger_word、best_strength 如 0.8),在完整工作流中测试 LoRA(0.7-0.9)加 PuLID/IP-Adapter(0.5-0.7),并记录成功设置。组合使用时建议以 LoRA 作为身份基础、零样本方法做增强,两者权重都调低以避免冲突。
七、故障排查 文档列出常见问题与对策:LoRA 未激活检查触发词拼写并确保在 KSampler 前加载;角度身份漂移增加角度多样性并降低 network_dim;过拟合减少 epoch、增加数据、降低 network_dim;风格污染提升标注多样性且不在标注中描述风格;质量差或有伪影检查训练图压缩并降低学习率。
八、参考 文档提及 references/lora-training.md 提供完整参数参考,references/models.md 提供训练工具下载链接,projects/ 中的角色档案保存触发词与参考图。