Lora-Training-in-Comfy 插件完全教程 - ComfyUI内置LoRA训练神器
1. 插件简介
插件地址: https://github.com/LarryJane491/Lora-Training-in-Comfy
Lora-Training-in-Comfy 是一个革命性的插件,就像把专业的AI训练工厂搬到了ComfyUI里面!它让你可以直接在ComfyUI中训练自己的LoRA模型,不需要复杂的命令行操作,就像用美图秀秀一样简单。
这个插件能给我们带来什么效果?
- 在ComfyUI内直接训练LoRA:不用切换软件,一站式完成
- 自动保存到LoRA文件夹:训练完直接刷新就能用
- 可视化训练过程:通过Tensorboard看到训练进度
- 支持多种模型:SD1.5、SD2.0、LCM、SD Turbo等
- 简化操作流程:复杂的训练参数变成简单的滑块和选项
想象一下,你想训练一个自己的角色LoRA,以前需要装一堆软件、敲命令行,现在只需要准备好图片,在ComfyUI里点几下就能开始训练,就像做菜一样简单!
2. 如何安装
方法一:通过 ComfyUI Manager 安装(推荐)
- 打开 ComfyUI Manager
- 搜索 "Lora-Training-in-Comfy" 或 "LoRA Training"
- 点击安装
- 重启 ComfyUI
方法二:手动安装
- 打开终端/命令提示符
- 进入 ComfyUI 的 custom_nodes 文件夹
- 运行以下命令:
git clone https://github.com/LarryJane491/Lora-Training-in-Comfy.git
- 安装依赖:
- Windows用户:
pip install -r requirements_win.txt - 其他系统:
pip install -r requirements.txt
- Windows用户:
- 重启 ComfyUI
重要提醒:
- 这个插件需要安装很多依赖,可能会与其他插件冲突
- 确保你的显卡支持CUDA(建议RTX系列)
- 至少需要6GB显存才能正常训练
3. 节点详细解析
3.1 Lora Training in ComfyUI 节点(基础训练器)
这个节点就像一个"简化版的AI训练工厂",它把复杂的LoRA训练过程变成了几个简单的参数设置,让新手也能轻松训练自己的LoRA模型。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| ckpt_name | ckpt_name | 下拉选择 | 无 | 选择基础模型,就像选择画画的底稿 | 选择用于训练的基础检查点模型 | 选择你常用的模型,比如"v1-5-pruned-emaonly.ckpt" |
| data_path | data_path | 文本输入 | "Insert path of image folders" | 图片文件夹的路径,就像告诉机器去哪找素材 | 包含训练图片的文件夹路径 | 填入"C:/training_data",里面要有"5_character"这样的文件夹 |
| batch_size | batch_size | 整数输入 | 1 | 每次喂给AI多少张图,就像每次吃几口饭 | 每个训练批次处理的图片数量 | 显存大用2-4,显存小用1 |
| max_train_epoches | max_train_epoches | 整数输入 | 10 | 训练多少轮,就像练字要写多少遍 | 训练的总轮数 | 新手用10-20轮,复杂内容用50-100轮 |
| save_every_n_epochs | save_every_n_epochs | 整数输入 | 10 | 每隔几轮保存一次,就像定期存档 | 每隔多少轮保存一次模型 | 设置为5-10,这样可以选择最好的版本 |
| output_name | output_name | 文本输入 | "Desired name for LoRA." | LoRA的名字,就像给作品起名 | 输出LoRA文件的名称 | 填入"my_character_v1"这样有意义的名字 |
| clip_skip | clip_skip | 整数输入 | 2 | 跳过几层处理,就像调节理解深度 | CLIP模型跳过的层数 | 一般用2,某些模型可能需要1 |
| output_dir | output_dir | 文本输入 | "models/loras" | 保存位置,就像选择存放作品的文件夹 | LoRA模型的输出目录 | 默认保存到ComfyUI的loras文件夹 |
3.2 Lora Training in Comfy (Advanced) 节点(高级训练器)
这个节点就像一个"专业级的AI训练工厂",提供了更多精细的控制选项,让有经验的用户可以调节更多参数来获得更好的训练效果。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| ckpt_name | ckpt_name | 下拉选择 | 无 | 选择基础模型,就像选择画画的底稿 | 选择用于训练的基础检查点模型 | 选择你常用的模型 |
| v2 | v2 | 下拉选择 | "No" | 是否使用SD2.0模型,就像选择新版还是旧版工具 | 是否启用Stable Diffusion 2.0模式 | 用SD2.0模型时选"Yes",其他选"No" |
| networkmodule | networkmodule | 下拉选择 | "networks.lora" | 训练方式,就像选择不同的学习方法 | 选择网络训练模块类型 | 一般用"networks.lora",高级用户可选"lycoris.kohya" |
| networkdimension | networkdimension | 整数输入 | 32 | 网络大小,就像调节学习能力的强弱 | LoRA网络的维度大小 | 32适合大多数情况,复杂内容用64-128 |
| networkalpha | networkalpha | 整数输入 | 32 | 学习强度,就像调节记忆的深浅 | LoRA网络的alpha值 | 通常与dimension相同,或者用一半 |
| trainingresolution | trainingresolution | 整数输入 | 512 | 训练图片大小,就像选择画布尺寸 | 训练时图片的分辨率 | 512适合大多数情况,高质量用768 |
| data_path | data_path | 文本输入 | "Insert path of image folders" | 图片文件夹路径,就像告诉机器去哪找素材 | 包含训练图片的文件夹路径 | 同基础版本 |
| batch_size | batch_size | 整数输入 | 1 | 每次处理图片数量,就像每次吃几口饭 | 每个训练批次的图片数量 | 同基础版本 |
| max_train_epoches | max_train_epoches | 整数输入 | 10 | 训练轮数,就像练字要写多少遍 | 训练的总轮数 | 同基础版本 |
| save_every_n_epochs | save_every_n_epochs | 整数输入 | 10 | 保存间隔,就像定期存档 | 每隔多少轮保存一次 | 同基础版本 |
| keeptokens | keeptokens | 整数输入 | 0 | 保留关键词数量,就像记住重要信息 | 在打乱标签时保留前N个不变 | 一般用0,有特殊需求时用1-2 |
| minSNRgamma | minSNRgamma | 小数输入 | 0 | 信噪比调节,就像调节信号清晰度 | 最小信噪比伽马值 | 一般用0,高级用户可尝试5-20 |
| learningrateText | learningrateText | 小数输入 | 0.0001 | 文字理解学习速度,就像调节理解文字的快慢 | 文本编码器的学习率 | 0.00005-0.0001之间,不要太大 |
| learningrateUnet | learningrateUnet | 小数输入 | 0.0001 | 图像生成学习速度,就像调节画画学习的快慢 | UNet的学习率 | 0.0001-0.0005之间 |
| learningRateScheduler | learningRateScheduler | 下拉选择 | "cosine_with_restarts" | 学习节奏,就像选择学习的时间安排 | 学习率调度器类型 | 推荐用"cosine_with_restarts" |
| lrRestartCycles | lrRestartCycles | 整数输入 | 1 | 重启周期,就像学习中的休息次数 | 余弦重启的周期数 | 一般用1,长时间训练可用2-3 |
| optimizerType | optimizerType | 下拉选择 | "AdamW8bit" | 优化器类型,就像选择学习方法 | 训练优化器的类型 | "AdamW8bit"省显存,"Lion8bit"效果好 |
| output_name | output_name | 文本输入 | "Desired name for LoRA." | LoRA名称,就像给作品起名 | 输出LoRA文件的名称 | 同基础版本 |
| algorithm | algorithm | 下拉选择 | "lora" | 算法类型,就像选择不同的训练策略 | LoRA训练算法类型 | 一般用"lora",高级用户可尝试"loha" |
| networkDropout | networkDropout | 小数输入 | 0 | 随机丢弃率,就像故意忘记一些东西防止死记硬背 | 网络dropout概率 | 一般用0,过拟合时用0.1-0.3 |
| clip_skip | clip_skip | 整数输入 | 2 | 跳过层数,就像调节理解深度 | CLIP跳过的层数 | 同基础版本 |
| output_dir | output_dir | 文本输入 | "models/loras" | 保存位置,就像选择存放作品的文件夹 | LoRA模型输出目录 | 同基础版本 |
3.3 Tensorboard Access 节点(训练监控器)
这个节点就像一个"训练过程的监视器",它能打开一个网页让你实时看到训练的进度和效果,就像看体检报告一样直观。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|
此节点无输入参数,点击执行后会在命令行显示一个网址,复制到浏览器即可查看训练日志
4. 使用技巧和建议
4.1 数据准备技巧
- 图片数量:至少10-20张,最好20-50张
- 图片质量:高清、构图好、主体明确
- 文件夹命名:必须用"数字_名称"格式,如"20_character"
- 标签文件:每张图片对应一个.txt文件,描述图片内容
4.2 参数调优建议
- 新手设置:使用基础节点的默认参数即可
- 显存优化:batch_size设为1,降低训练分辨率
- 质量优化:增加训练轮数,使用高级节点精细调节
- 速度优化:减少保存频率,使用较小的网络维度
4.3 训练监控
- 使用Tensorboard:训练前先点击Tensorboard Access节点
- 观察损失曲线:损失应该逐渐下降
- 定期检查:每隔几轮测试一下效果
4.4 常见设置组合
- 人物LoRA:dimension=32, alpha=32, 20-30轮
- 风格LoRA:dimension=64, alpha=32, 50-100轮
- 物体LoRA:dimension=16, alpha=16, 15-25轮
5. 常见问题解答
Q1:训练时提示"No module found"错误?
A:
- 检查是否正确安装了requirements.txt中的依赖
- 如果使用虚拟环境,确保在正确的环境中安装
- 尝试重新安装:
pip install -r requirements.txt
Q2:显示"cuda.dll missing"错误?
A:
- 需要安装CUDA支持的PyTorch
- 访问pytorch.org获取安装命令
- 例如:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
Q3:训练过程中显存不足?
A:
- 将batch_size设为1
- 降低训练分辨率到512或更低
- 关闭其他占用显存的程序
- 考虑使用梯度累积
Q4:训练完找不到LoRA文件?
A:
- 检查output_dir路径是否正确
- 确认训练是否完成(没有报错)
- 查看ComfyUI的models/loras文件夹
- 刷新ComfyUI的LoRA列表
Q5:训练效果不好怎么办?
A:
- 检查训练数据质量和数量
- 调整学习率(降低或提高)
- 增加训练轮数
- 使用更合适的网络维度
6. 数据准备详细指南
6.1 文件夹结构
training_data/
├── 20_character/
│ ├── image1.jpg
│ ├── image1.txt
│ ├── image2.jpg
│ ├── image2.txt
│ └── ...
6.2 标签文件编写
- 简洁描述:1girl, long hair, blue eyes, school uniform
- 避免过长:不要写成小说
- 突出特征:重点描述要学习的特征
- 一致性:相同特征用相同词汇
6.3 图片要求
- 分辨率:至少512x512
- 格式:JPG、PNG都可以
- 内容:主体清晰,背景不要太复杂
- 多样性:不同角度、表情、姿势
7. 高级训练策略
7.1 学习率调节
- 文本编码器:通常比UNet低一个数量级
- 动态调整:使用cosine_with_restarts调度器
- 观察收敛:通过Tensorboard监控损失
7.2 网络结构选择
- LoRA:最常用,效果稳定
- LoHa:更适合风格训练
- LoCon:适合复杂特征学习
7.3 正则化技巧
- Dropout:防止过拟合
- 数据增强:自动应用各种变换
- 早停策略:观察验证损失
8. 性能优化建议
8.1 硬件优化
- 显卡:RTX 3060以上推荐
- 显存:至少6GB,推荐12GB+
- 内存:至少16GB系统内存
- 存储:SSD可以加快数据加载
8.2 软件优化
- 关闭不必要程序:释放显存和内存
- 使用混合精度:fp16可以节省显存
- 批量大小:根据显存调整
- 缓存潜在空间:加速训练过程
9. 故障排除指南
9.1 安装问题
- 依赖冲突:尝试在新的虚拟环境中安装
- 权限问题:使用管理员权限运行
- 网络问题:使用国内镜像源
9.2 训练问题
- 内存泄漏:定期重启ComfyUI
- 训练中断:检查磁盘空间
- 效果异常:检查数据质量
10. 总结
Lora-Training-in-Comfy 是一个功能强大的LoRA训练插件,它把复杂的AI训练过程简化成了可视化的操作。虽然对硬件有一定要求,但它让普通用户也能轻松训练出高质量的LoRA模型。
记住这几个要点:
- 准备高质量的训练数据是成功的关键
- 从基础节点开始,熟悉后再用高级节点
- 善用Tensorboard监控训练过程
- 根据硬件条件合理设置参数
- 多实验、多测试,找到最适合的设置
现在就开始你的LoRA训练之旅吧!让AI学会你想要的任何风格和特征!