ComfyUI模型训练:自定义数据集微调指南

ComfyUI模型训练:自定义数据集微调指南

【免费下载链接】ComfyUI 最强大且模块化的具有图形/节点界面的稳定扩散GUI。 【免费下载链接】ComfyUI 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI

你是否曾想让AI模型生成更符合特定风格的图片?比如公司LOGO、个人肖像或特定场景的图像?手动调整参数效果有限,而自定义数据集微调(Fine-tuning)能让模型"学习"新风格,生成更精准的结果。本文将带你用ComfyUI完成从数据准备到模型训练的全流程,无需复杂代码,只需简单配置即可让AI为你"量身定制"。

读完本文你将学会:

  • 如何规范整理训练数据集
  • 使用ComfyUI节点加载和预处理数据
  • 配置LoRA模型训练参数
  • 监控训练过程并评估结果
  • 导出和使用微调后的模型

一、数据集准备

1.1 数据结构要求

ComfyUI支持两种数据集格式,推荐使用带文本描述的文件夹结构,便于模型学习图像与文字的关联:

input/
└── my_dataset/          # 数据集根目录
    ├── image1.png       # 训练图像
    ├── image1.txt       # 对应图像的文本描述
    ├── image2.jpg
    ├── image2.txt
    └── ...

技术细节:LoadImageTextSetFromFolderNode节点会自动匹配图像文件与其同名文本文件作为描述。

1.2 图像预处理规范

  • 尺寸统一:所有图像建议调整为相同尺寸(如512×512像素)
  • 格式支持:.png、.jpg、.webp等常见格式
  • 数量建议:最少20张图像,越多效果越好
  • 文本描述:简洁明确,包含关键特征(如"a photo of a red cat, high resolution")

1.3 数据集存放位置

将整理好的数据集文件夹放入ComfyUI的输入目录:

GitHub_Trending/co/ComfyUI/input/

二、训练流程节点配置

2.1 核心节点组合

ComfyUI采用节点式工作流,训练LoRA模型需要以下关键节点:

mermaid

2.2 数据加载节点

使用LoadImageTextSetFromFolderNode加载数据集:

参数推荐值说明
foldermy_dataset数据集文件夹名称
resize_methodStretch图像尺寸不一时的处理方式
width/height512统一图像尺寸

代码参考:加载图像和文本会自动编码文本描述为模型可理解的向量。

2.3 模型加载节点

使用CheckpointLoaderSimple加载基础模型:

模型路径: models/checkpoints/
推荐模型: v1-5-pruned-emaonly.safetensors

三、关键训练参数配置

3.1 基础参数设置

TrainLoraNode中配置核心训练参数:

参数推荐值适用场景
batch_size2-4根据GPU显存调整
steps1000-5000小数据集用较小值
learning_rate0.0001-0.0005学习率过高易过拟合
rank8-32数值越大细节保留越多
optimizerAdamW主流优化器,收敛稳定

代码定义:TrainLoraNode参数包含完整参数说明。

3.2 高级参数调优

  • gradient_checkpointing: 启用可减少显存占用
  • training_dtype: bf16比fp32训练速度更快
  • loss_function: MSE适合风格迁移,Huber对噪声数据更鲁棒
# 训练参数示例代码
{
    "batch_size": 2,
    "steps": 2000,
    "learning_rate": 0.0003,
    "rank": 16,
    "optimizer": "AdamW",
    "loss_function": "MSE"
}

四、启动训练与监控

4.1 开始训练

连接好所有节点后,点击Queue Prompt开始训练。训练过程中会显示进度条:

Training LoRA: 100%|██████████| 2000/2000 [10:30<00:00, loss=0.0234]

进度显示实现:TrainSampler使用tqdm库生成进度条。

4.2 训练过程监控

训练时关注损失值(loss)变化,正常情况下应逐渐降低并趋于稳定:

mermaid

损失可视化:draw_loss_graph会生成训练损失曲线图。

4.3 常见问题排查

问题原因解决方案
显存溢出batch_size过大减小batch_size或启用gradient_checkpointing
loss不下降学习率过高降低learning_rate至0.0001以下
过拟合数据量少或steps过多增加数据量或提前停止训练

五、模型导出与使用

5.1 保存训练结果

训练完成后,使用SaveLora节点将模型保存到:

GitHub_Trending/co/ComfyUI/models/loras/

文件名建议包含关键参数:my_style_lora_rank16_steps2000.safetensors

5.2 在生成中使用LoRA

在图像生成工作流中添加LoraLoader节点:

mermaid

5.3 参数调整建议

LoRA强度效果适用场景
0.5-0.7风格融合适中大多数创意生成
0.8-1.0风格强烈需要突出训练特征

六、高级优化技巧

6.1 混合训练策略

可加载现有LoRA继续训练:

existing_lora: "pretrained_lora.safetensors"  # 在TrainLoraNode中设置

6.2 学习率调度

通过代码自定义学习率衰减:

# 在TrainLoraNode中添加学习率调度器
scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=steps)

6.3 训练结果评估

使用相同提示词对比训练前后效果:

提示词: "a photo of a cat in the style of my_dataset"

总结

通过自定义数据集微调LoRA模型,你可以让AI生成更符合特定风格的图像。关键步骤包括:准备规范的数据集、配置合理的训练参数、监控训练过程并调整。ComfyUI的节点式设计让这一过程无需编写代码,只需简单连接和配置即可完成。

扩展学习:查看script_examples中的API示例,了解如何通过代码控制训练过程。

祝你的模型训练顺利!如有问题,可参考项目官方文档或提交issue获取帮助。

【免费下载链接】ComfyUI 最强大且模块化的具有图形/节点界面的稳定扩散GUI。 【免费下载链接】ComfyUI 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI

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

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值