ComfyUI FL-Trainer 插件保姆级教程
1. 插件简介
插件原地址: https://github.com/filliptm/ComfyUI_FL-Trainer
这个插件就像是一个专业的AI画师培训学校!它能让你在ComfyUI里面训练自己的LoRA模型。什么是LoRA?你可以把它想象成给AI画师"上课"的过程,教它学会画特定的人物、风格或者物品。
能给我们带来什么效果?
- 训练专属的人物LoRA:比如训练你自己的脸,让AI能画出你的样子
- 训练风格LoRA:比如训练某个画家的风格,让AI学会那种画风
- 训练物品LoRA:比如训练你家的宠物,让AI能画出你的猫咪狗狗
- 一键式简单训练:不需要复杂设置,新手也能轻松上手
- 专业级高级训练:给高手用户提供各种细致的调节选项
想象一下:你有10张自己的照片,用这个插件训练后,AI就能画出各种风格的"你",比如动漫版的你、油画版的你、卡通版的你!
2. 如何安装
方法一:直接下载(推荐新手)
- 打开你的 ComfyUI 安装文件夹
- 找到
custom_nodes这个文件夹(就像是插件的家) - 在这个文件夹里,右键选择"在终端中打开"或者"Git Bash Here"
- 输入这个命令:
git clone https://github.com/filliptm/ComfyUI_FL-Trainer.git
方法二:手动下载
- 访问 https://github.com/filliptm/ComfyUI_FL-Trainer
- 点击绿色的 "Code" 按钮
- 选择 "Download ZIP"
- 解压到 ComfyUI 的
custom_nodes文件夹里
安装依赖包(重要!)
插件下载完成后,需要安装一些必要的工具包。在ComfyUI的环境中运行:
pip install -r requirements.txt
3. 节点详细解析
3.1 FL Kohya Workspace 节点
这个节点是干嘛的?
这个节点就像是给你的训练项目建立一个专门的工作室。就像画家需要一个画室一样,训练LoRA也需要一个专门的地方来存放所有的文件和设置。它会帮你下载训练需要的工具,创建文件夹,准备好一切。
3.2 参数详解
| 参数名 (界面显示) | 参数名 (代码里) | 参数类型 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| lora_name | lora_name | STRING | 自定义名称 | 给你的LoRA起个名字,就像给孩子起名字一样 | 定义LoRA模型的名称,用于文件夹和文件命名 | 比如输入"我的猫咪",训练出来的模型就叫这个名字 |
| branch | branch | STRING | 默认值 | 选择训练工具的版本,就像选择软件的版本号 | 指定Kohya训练脚本的Git分支版本 | 一般用默认值就行,除非你知道要用特定版本 |
| source | source | 选择列表 | github | 选择下载训练工具的网站,就像选择下载软件的网站 | 选择Git仓库的镜像源,影响下载速度 | 如果github慢就选其他的,比如521github |
| seed | seed | INT | 0 | 随机数种子,就像掷骰子的起始点 | 控制随机性的种子值,确保结果可重现 | 用0就行,想要完全相同的结果就用相同数字 |
3.3 FL Kohya Dataset Config 节点
这个节点是干嘛的?
这个节点就像是一个智能的图片整理员。你把要训练的图片和描述文字给它,它就会帮你整理好,调整大小,打上标签,准备好给AI学习用的"教材"。
3.4 参数详解
| 参数名 (界面显示) | 参数名 (代码里) | 参数类型 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| workspace_config | workspace_config | FL_TT_SS_WorkspaceConfig | 连接上个节点 | 连接工作室配置,就像告诉它在哪个房间工作 | 接收工作空间配置信息 | 从FL Kohya Workspace节点连过来 |
| images | images | IMAGE | 训练图片 | 你要训练的图片,就像给老师看的教学材料 | 输入的图像数据用于训练 | 连接你准备好的训练图片 |
| captions | captions | STRING | 图片描述 | 每张图片的文字描述,告诉AI这张图片是什么 | 图像的文本描述,用于训练时的条件输入 | 比如"一只橘色的猫在睡觉" |
| enable_bucket | enable_bucket | 选择列表 | enable | 智能分组功能,把相似大小的图片放一起 | 启用分桶功能,按图片尺寸分组处理 | 建议开启,能提高训练效果 |
| resolution | resolution | INT | 1024 | 图片的清晰度大小,就像调节照片的像素 | 训练图像的分辨率大小 | 512适合SD1.5,1024适合SDXL |
| num_repeats | num_repeats | INT | 1 | 每张图片重复学习的次数,就像背书要背几遍 | 每个图像在训练中重复的次数 | 图片少就设大一点,比如10-30 |
| caption_extension | caption_extension | 选择列表 | .caption | 描述文件的后缀名,就像文件的"姓氏" | 标注文件的扩展名格式 | .txt比较常用,.caption也可以 |
| batch_size | batch_size | INT | 1 | 一次处理几张图片,就像一次洗几件衣服 | 批处理大小,影响内存使用和训练速度 | 显存小就用1,显存大可以用2-4 |
| force_clear | force_clear | 选择列表 | disable | 是否清空之前的文件,就像是否要重新开始 | 强制清除已存在的训练数据 | 一般不开启,除非要完全重新开始 |
| force_clear_only_images | force_clear_only_images | 选择列表 | disable | 只清空图片文件,保留其他设置 | 仅清除图像文件,保留其他配置 | 想换图片但保留设置时用 |
| image_format | image_format | 选择列表 | jpg | 保存图片的格式,就像选择照片是JPG还是PNG | 训练图像保存的文件格式 | jpg文件小,png质量好,webp平衡 |
| dataset_config_extension | dataset_config_extension | 选择列表 | .json | 配置文件的格式,就像选择用什么格式记录 | 数据集配置文件的格式 | json比较通用,toml也可以 |
| conditioning_images | conditioning_images | IMAGE | 可选 | 额外的参考图片,就像给更多的学习材料 | 可选的条件图像输入 | 不是必须的,有的话可以提供更多信息 |
3.5 FL Kohya Adv Config 节点
这个节点是干嘛的?
这个节点就像是训练的"高级设置面板"。就像游戏里的高级选项一样,这里有很多专业的调节选项,可以让训练效果更好,速度更快,或者适应不同的电脑配置。
3.6 参数详解
| 参数名 (界面显示) | 参数名 (代码里) | 参数类型 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| xformers | xformers | 选择列表 | enable | 加速训练的工具,就像给汽车装涡轮增压 | 启用xformers优化,减少显存使用 | 有N卡建议开启,能节省显存 |
| sdpa | sdpa | 选择列表 | disable | 另一种加速方式,和上面的二选一 | 启用SDPA注意力优化 | 一般用xformers就够了 |
| fp8_base | fp8_base | 选择列表 | disable | 超级节省显存的模式,但可能影响质量 | 启用FP8精度训练 | 显存特别小才用,一般不建议 |
| mixed_precision | mixed_precision | 选择列表 | fp16 | 数字精度设置,就像选择计算的精确程度 | 混合精度训练设置 | fp16平衡效果和速度,bf16更稳定 |
| gradient_accumulation_steps | gradient_accumulation_steps | INT | 1 | 梯度累积步数,就像攒够了再一起处理 | 梯度累积的步数,模拟更大的批次 | 显存小可以设2-4,模拟更大批次 |
| gradient_checkpointing | gradient_checkpointing | 选择列表 | disable | 节省显存但会变慢,就像用时间换空间 | 启用梯度检查点以节省显存 | 显存不够时开启,会变慢但省显存 |
| cache_latents | cache_latents | 选择列表 | enable | 缓存处理过的图片,下次训练更快 | 缓存潜在空间表示以加速训练 | 建议开启,能大幅提升速度 |
| cache_latents_to_disk | cache_latents_to_disk | 选择列表 | enable | 把缓存保存到硬盘,节省内存 | 将潜在空间缓存保存到磁盘 | 建议开启,节省内存 |
| network_dim | network_dim | INT | 16 | LoRA的"容量"大小,就像书包的大小 | LoRA网络的维度大小 | 16-64都可以,越大越精细但文件越大 |
| network_alpha | network_alpha | INT | 8 | 学习强度控制,就像调节学习的"用力程度" | LoRA网络的alpha参数 | 一般是dim的一半,比如dim=32就用16 |
| network_module | network_module | 选择列表 | networks.lora | 选择训练的类型,就像选择学习的方法 | 网络模块类型选择 | lora最常用,dylora更灵活,oft是新方法 |
| network_train_unet_only | network_train_unet_only | 选择列表 | enable | 只训练画图部分,不训练文字理解部分 | 仅训练UNet部分,不训练文本编码器 | 一般开启,训练更稳定 |
| lr_scheduler | lr_scheduler | 选择列表 | cosine | 学习速度的变化方式,就像跑步的节奏 | 学习率调度器类型 | cosine比较稳定,constant简单直接 |
| lr_scheduler_num_cycles | lr_scheduler_num_cycles | INT | 1 | 学习节奏的循环次数 | 学习率调度器的循环次数 | 一般用1就够了 |
| optimizer_type | optimizer_type | 选择列表 | AdamW | 优化器类型,就像选择学习的"方法论" | 优化算法的选择 | AdamW稳定,AdaFactor省显存,Lion收敛快 |
| lr_warmup_steps | lr_warmup_steps | INT | 0 | 开始时慢慢加速,就像热身运动 | 学习率预热步数 | 一般用0,长时间训练可以设100-500 |
| unet_lr | unet_lr | STRING | 空 | 画图部分的学习速度 | UNet的学习率设置 | 留空用全局设置,或者设置如"1e-4" |
| text_encoder_lr | text_encoder_lr | STRING | 空 | 文字理解部分的学习速度 | 文本编码器的学习率 | 留空或设置比unet小一半的值 |
| shuffle_caption | shuffle_caption | 选择列表 | disable | 打乱描述文字的顺序,增加随机性 | 随机打乱标注文本的顺序 | 可以开启,增加训练的多样性 |
| save_precision | save_precision | 选择列表 | fp16 | 保存模型的精度,影响文件大小 | 模型保存时的精度格式 | fp16文件小,float质量好 |
| persistent_data_loader_workers | persistent_data_loader_workers | 选择列表 | enable | 保持数据加载进程,提高效率 | 持久化数据加载器工作进程 | 建议开启,能提高数据加载速度 |
| no_metadata | no_metadata | 选择列表 | enable | 不保存额外信息,减小文件大小 | 不在模型中保存元数据信息 | 建议开启,文件更小 |
| noise_offset | noise_offset | FLOAT | 0.1 | 添加噪声偏移,提高训练稳定性 | 噪声偏移量,改善训练稳定性 | 0.05-0.1比较合适,太大会影响质量 |
| no_half_vae | no_half_vae | 选择列表 | enable | VAE使用全精度,避免黑图问题 | VAE不使用半精度,避免数值问题 | 建议开启,避免生成黑色图片 |
| lowram | lowram | 选择列表 | disable | 低内存模式,适合内存小的电脑 | 启用低内存模式 | 内存不够16GB时可以开启 |
3.7 FL Kohya Train 节点
这个节点是干嘛的?
这个节点就是真正的"训练师"!它把前面准备好的所有材料(工作室、图片、设置)整合起来,开始正式训练你的LoRA模型。就像把学生、教材、教室都准备好后,开始正式上课一样。
3.8 参数详解
| 参数名 (界面显示) | 参数名 (代码里) | 参数类型 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| workspace_config | workspace_config | FL_TT_SS_WorkspaceConfig | 连接工作室节点 | 工作室的配置信息,告诉它在哪里工作 | 工作空间配置数据 | 从FL Kohya Workspace节点连过来 |
| train_config_template | train_config_template | 选择列表 | lora_sd1_5 | 训练模板,就像选择课程大纲 | 预设的训练配置模板 | SD1.5用lora_sd1_5,SDXL用lora_sdxl |
| ckpt_name | ckpt_name | 选择列表 | 选择模型 | 基础模型,就像选择在哪个"老师"基础上学习 | 基础检查点模型文件 | 选择你常用的底模,比如realistic或anime |
| max_train_steps | max_train_steps | INT | 0 | 最大训练步数,0表示用轮数控制 | 训练的最大步数限制 | 一般设0,用轮数控制比较直观 |
| max_train_epochs | max_train_epochs | INT | 100 | 训练轮数,就像学习要学几遍 | 训练的最大轮数 | 10-50轮比较常见,图片多可以少一点 |
| save_every_n_epochs | save_every_n_epochs | INT | 1 | 每几轮保存一次,就像定期存档 | 每隔多少轮保存一次模型 | 1表示每轮都保存,可以设5或10 |
| learning_rate | learning_rate | STRING | 0.0001 | 学习速度,就像学习的快慢程度 | 学习率参数 | 0.0001比较稳定,0.001学得快但可能不稳定 |
| base_lora | base_lora | 选择列表 | latest | 基础LoRA,可以在别的LoRA基础上继续训练 | 基础LoRA模型选择 | latest用最新的,empty从头开始 |
| sample_prompt | sample_prompt | STRING | 空 | 测试提示词,训练时会生成样图看效果 | 用于生成样本图像的提示词 | 比如"a photo of sks person",sks是触发词 |
| advanced_config | advanced_config | FL_TT_SS_AdvConfig | 连接高级配置 | 高级设置的配置信息 | 高级配置参数 | 从FL Kohya Adv Config节点连过来 |
| caption_completed_flag | caption_completed_flag | 任意类型 | 可选 | 标注完成标志,确保图片都处理好了 | 标注完成的标志信号 | 可选连接,确保数据准备完成 |
3.9 FL Kohya Data Loader 节点
这个节点是干嘛的?
这个节点就像是一个智能的文件管理员。你告诉它一个文件夹的路径,它就会自动找到里面的所有图片和对应的描述文件,然后整理好给其他节点使用。特别适合你已经准备好了一堆图片和描述文件的情况。
3.10 参数详解
| 参数名 (界面显示) | 参数名 (代码里) | 参数类型 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| directory | directory | STRING | X://path/to/images | 图片文件夹的路径,就像告诉它去哪里找图片 | 包含训练图像的目录路径 | 比如"C:/my_photos"或"/home/user/images" |
| caption_extension | caption_extension | 选择列表 | .txt | 描述文件的后缀名,告诉它找什么格式的描述文件 | 标注文件的扩展名 | .txt最常用,.caption也可以 |
3.11 FL Kohya Easy Train 节点
这个节点是干嘛的?
这个节点就像是一个"一键训练大师"!它把所有复杂的设置都简化了,你只需要提供最基本的信息(图片文件夹、模型名字等),它就会自动帮你完成整个训练过程。特别适合新手或者不想折腾复杂设置的用户。
3.12 参数详解
| 参数名 (界面显示) | 参数名 (代码里) | 参数类型 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| lora_name | lora_name | STRING | my_lora | LoRA的名字,就像给你的作品起个名字 | LoRA模型的名称标识 | 比如"我的猫咪"、"动漫风格"等 |
| resolution | resolution | INT | 512 | 图片分辨率,就像选择照片的清晰度 | 训练图像的分辨率大小 | 512适合SD1.5,1024适合SDXL |
| train_config_template | train_config_template | 选择列表 | lora_sd1_5 | 训练模板,选择适合的训练方案 | 预设的训练配置模板 | SD1.5用lora_sd1_5,SDXL用lora_sdxl |
| num_repeats | num_repeats | INT | 30 | 每张图片重复学习次数,图片少就多重复几次 | 每个图像的重复次数 | 图片少设30-50,图片多设10-20 |
| image_directory | image_directory | STRING | path/to/images+captions.txt | 图片和描述文件的文件夹路径 | 包含训练数据的目录路径 | 确保文件夹里有图片和对应的.txt描述文件 |
| ckpt_name | ckpt_name | 选择列表 | 选择模型 | 基础模型,选择你要在哪个模型基础上训练 | 基础检查点模型选择 | 选择你常用的底模 |
| sample_prompt | sample_prompt | STRING | Sampling prompt here | 测试提示词,训练时生成样图看效果 | 用于生成测试样本的提示词 | 写一个能触发你训练内容的提示词 |
| xformers | xformers | 选择列表 | disable | 加速优化开关,有N卡建议开启 | xformers优化开关 | 有NVIDIA显卡建议enable |
| lowvram | lowvram | 选择列表 | disable | 低显存模式,显存不够时开启 | 低显存模式开关 | 显存小于8GB时建议enable |
| learning_rate | learning_rate | FLOAT | 0.0001 | 学习速度,就像调节学习的快慢 | 学习率参数 | 0.0001比较稳定,可以微调 |
| epochs | epochs | INT | 10 | 训练轮数,就像要学习多少遍 | 训练的轮数 | 10-30轮比较合适,根据效果调整 |
3.13 FL Image Caption Saver 节点
这个节点是干嘛的?
这个节点就像是一个贴心的文件管理助手。它能把图片和对应的描述文字一起保存到指定的文件夹里,而且会自动给文件起名字,整理得整整齐齐。特别适合你想要批量保存图片和描述的时候。
3.14 参数详解
| 参数名 (界面显示) | 参数名 (代码里) | 参数类型 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | IMAGE | 连接图片 | 要保存的图片,就像要整理的照片 | 输入的图像数据 | 从其他节点连接过来的图片 |
| folder_name | folder_name | STRING | output_folder | 保存的文件夹名字,就像选择相册的名字 | 保存文件的目录名称 | 比如"我的训练数据"、"processed_images" |
| caption_text | caption_text | STRING | Your caption here | 图片的描述文字,会保存成txt文件 | 图像的文本描述内容 | 比如"一只可爱的橘猫在阳光下睡觉" |
| overwrite | overwrite | BOOLEAN | True | 是否覆盖同名文件,就像是否替换已有的照片 | 是否覆盖已存在的文件 | True会替换,False会重新命名 |
3.15 前端JavaScript功能 - FL_Trainer.js
这个功能是干嘛的?
这是一个前端的视觉效果功能,就像给节点加了一个漂亮的动画装饰。当你使用FL_KohyaSSDatasetConfig节点时,会在节点上方显示一个炫酷的动态效果,有彩色的小球在移动和连线,让界面更加生动有趣。
功能特点:
- 在FL_KohyaSSDatasetConfig节点上方显示动画
- 10个彩色小球随机移动
- 小球之间有连线效果
- 碰到边界会反弹并变色
- 固定大小的动画区域(50x60像素)
3.16 前端JavaScript功能 - appearance.js
这个功能是干嘛的?
这是一个外观美化功能,就像给所有FL开头的节点换了一套漂亮的"衣服"。它会自动识别所有以"FL_"开头的节点,然后给它们统一的颜色主题,让整个工作流看起来更加协调美观。
功能特点:
- 自动识别所有FL_开头的节点
- 统一设置节点颜色为青蓝色调(#16727c)
- 统一设置背景色为紫色调(#4F0074)
- 让所有FL插件节点有统一的视觉风格
4. 使用技巧和建议
4.1 新手推荐工作流
简单一键训练流程:
FL Kohya Easy Train → 完成
这是最简单的方式,只需要准备好图片文件夹和描述文件就能开始训练。
4.2 进阶用户工作流
完整专业训练流程:
FL Kohya Workspace → FL Kohya Dataset Config → FL Kohya Adv Config → FL Kohya Train
这个流程给你最大的控制权,可以精细调节每个参数。
4.3 数据准备工作流
从文件夹加载数据:
FL Kohya Data Loader → FL Kohya Dataset Config → ...
适合你已经准备好图片和描述文件的情况。
4.4 数据整理工作流
保存整理数据:
图片输入 → FL Image Caption Saver → 保存到文件夹
适合批量保存和整理训练数据。
4.5 训练参数建议
新手建议设置:
- 分辨率:SD1.5用512,SDXL用1024
- 训练轮数:10-20轮
- 学习率:0.0001
- Network Dim:16-32
- 重复次数:图片少用30-50,图片多用10-20
进阶用户设置:
- 可以尝试更高的Network Dim(64-128)
- 调节不同的优化器(AdaFactor省显存,Lion收敛快)
- 使用噪声偏移提高稳定性
- 开启各种加速优化
4.6 硬件配置建议
最低配置:
- 显存:6GB以上
- 内存:16GB以上
- 硬盘:至少10GB空闲空间
推荐配置:
- 显存:12GB以上
- 内存:32GB以上
- 硬盘:SSD,至少50GB空闲空间
优化建议:
- 显存不够:开启lowvram,使用gradient_checkpointing
- 内存不够:开启cache_latents_to_disk
- 速度慢:开启xformers,使用更大的batch_size
5. 常见问题解答
Q1: 训练出来的LoRA效果不好怎么办?
A: 可能的原因和解决方法:
- 图片质量问题: 确保训练图片清晰,主体明确
- 描述不准确: 检查caption是否准确描述了图片内容
- 参数设置: 尝试调整学习率、训练轮数、Network Dim
- 数据量问题: 图片太少可以增加重复次数,太多可以减少轮数
Q2: 训练过程中出现显存不足错误?
A: 解决方法:
- 开启lowvram模式
- 减小batch_size到1
- 开启gradient_checkpointing
- 降低分辨率
- 使用fp8_base(可能影响质量)
Q3: 训练速度很慢怎么办?
A: 加速方法:
- 开启xformers优化
- 开启cache_latents
- 增大batch_size(如果显存够用)
- 使用SSD硬盘
- 关闭不必要的采样生成
Q4: 生成的样图是黑色的?
A: 解决方法:
- 开启no_half_vae
- 检查VAE设置
- 确保基础模型正确加载
- 检查sample_prompt是否正确
Q5: 找不到训练好的LoRA文件?
A: 查找位置:
- 在ComfyUI的output文件夹下的FL_train_workspaces目录
- 每个项目有自己的文件夹
- LoRA文件在output子文件夹里
- 文件名包含轮数信息
Q6: 如何判断训练是否成功?
A: 判断标准:
- 训练过程没有报错
- 生成的样图质量逐渐提高
- Loss值逐渐下降并趋于稳定
- 最终生成的图片符合预期效果
Q7: 可以中断训练吗?
A: 可以的:
- 训练会定期保存检查点
- 可以从任意保存的轮数继续训练
- 使用base_lora参数选择继续的起点
6. 高级技巧和扩展
6.1 链式训练技巧
这个插件支持链式训练,你可以:
- 先训练一个基础LoRA
- 然后在这个基础上继续训练
- 逐步优化和改进效果
- 针对不同阶段使用不同的参数
6.2 多阶段训练策略
阶段一:基础训练
- 使用较低的学习率
- 训练更多轮数
- 建立基础特征
阶段二:精细调优
- 使用更高的学习率
- 减少训练轮数
- 针对特定细节优化
6.3 数据增强技巧
- 使用shuffle_caption增加随机性
- 适当的noise_offset提高泛化能力
- 合理设置重复次数平衡数据
6.4 质量控制建议
- 定期检查生成的样图
- 根据效果调整参数
- 保存多个版本进行对比
- 记录最佳参数组合
7. 总结
这个FL-Trainer插件是一个功能强大的LoRA训练工具集,包含了从简单一键训练到专业级精细控制的完整解决方案。
插件特点总结:
- ✅ 完整性强: 7个核心节点覆盖训练全流程
- ✅ 易用性好: 有简单的一键训练,也有专业的详细设置
- ✅ 功能丰富: 支持数据加载、配置、训练、保存等全套功能
- ✅ 界面美观: 自带动画效果和统一的视觉风格
- ✅ 扩展性强: 支持链式训练和多阶段优化
- ✅ 兼容性好: 支持SD1.5和SDXL两种模型
适用人群:
- 新手用户: 使用FL Kohya Easy Train一键训练
- 进阶用户: 使用完整的节点链进行精细控制
- 专业用户: 利用高级参数和链式训练优化效果
无论你是刚接触LoRA训练的新手,还是想要精细控制的专业用户,这个插件都能满足你的需求。记住,好的训练数据是成功的关键,合适的参数设置是效果的保证!