FLUX.1在LoRA训练方面的出色表现吸引了我的注意,因此我尝试了几种不同的策略来验证其效果。本文旨在分享我如何利用ComfyUI平台开展LoRA训练的经验,需要指出的是,目前我正对训练参数进行细致的调整与优化,后续将不断更新相关进展与心得。
训练 LoRA 的过程大体包括以下步骤:
-
收集和完善图像数据集
-
选择训练工具
-
设置训练参数并开始训练
-
测试模型
#01
/数据集
选择图片
在LoRA训练的过程中,数据集——即那些作为模型训练基础的图像,无疑扮演着至关重要的角色。我认为,这是整个训练流程中最需精心筹备的一环,它要求投入大量时间进行筛选、整理、清洗以及精确标注。优质的图像数据是确保生成效果更加卓越的关键,以下是一些值得参考的要素。特别地,当训练目标聚焦于人物LoRA时,初步估计使用10至30张精心挑选的图片便已足够。
-
分辨率: 原始图片的分辨率最好为 1024 x 1024 或以上,后期有需要可以转换为 512 x 512。
-
比例: 在 Flux.1 上训练时,可以使用 1:1 的比例,还可以添加其他比例的图片来增加多样性。
-
清晰度: 尽量使用清晰的图像。
-
多样性: 使用不同的角度、光线和服装,使模型更加灵活。
标注
选择好图片后,我们还需要对图片进行标注。如果只是制作人物的 LoRA,标注倒不是必须的,看网上的评论,FLUX.1 对人物能很好地处理,有时仅仅简单的使用一两个单词反而能得到更好的效果,所以我这边也做了多个 LoRA 来对比一下(无标注、简单标注、复杂标注),对比结果可以看后面的测试模型部分。
简单标注
你可以使用一个触发词加人物的特征,比如 satomiishihara, a woman.,其中 satomiishihara 为触发词(trigger)。
复杂标注
我使用的是 ComfyUI 里面的 Joy Caption 节点来进行复杂标注的操作,它利用的是 Meta 的 Llama 模型来对图片进行描述,更佳符合自然语言的表达。这个节点来自于 Comfyui_CXH_joy_caption[1] 这款插件,链接里面有详细的中文安装指南和工作流文件。以下图为例,可以看到它生成的标注非常详细,我们可以在前面添加触发词。当然,你可以对生成的字段进行修改,在图片不多的情况下,每个标注都可以再修改一下,以这个为例,我最后改为了 satomiishihara, a photograph of a women with long…,其中 satomiishihara 为触发词。
这个是最终的文件结构,每张图片(来自于互联网)对应一个 txt 的标注文件,保持文件名一致。
#02
/训练工具
当前,进行FLUX.1 LoRA训练的方式已日益丰富,云端服务亦不乏其选,如Replicate.com、Fal.ai、Civitai.com、RunPod等平台均提供了便捷的解决方案。这些服务通常预设有训练模板,用户只需上传图像并完成基础设置,即可轻松生成LoRA模型。然而,值得注意的是,这些服务往往伴随着费用支出,且可能限制了用户对LoRA模型进行更深层次、更精细化的调整与优化。对于渴望深入探索此领域的朋友,建议自行搜索更多相关信息,以满足个性化需求。
本地训练的话也有一些工具可以进行操作了,比如下面这些。其中前面两个需要在本地安装 Python 环境以及相应的依赖,ai-toolkit 需要使用 HuggingFace 账号的阅读权限并下载 20GB 多的 fp16 FLUX-Dev 模型,相对来说不是很方便。而 Kohya‘s GUI 的话,关于 sd3-flux.1 的分支目前还没正式上线,并且不时地更新,所以后期的本地部署可能也要做调整。而 ComfyUI-FluxTrainer 是利用 ComfyUI 工作流的方式来训练模型,并且可以使用 fp8 等模型,它的本质虽然也是基于 Kohya 的代码,但是这个插件的作者比较勤奋,制作了比较多的 ComfyUI 的插件,他也会根据 Kohya 的更新来做相对的调整,那么我们后期就不太需要做太多的调整,只要使用他的工作流就可以进行本地训练了。所以这篇文章会具体介绍如何使用这个 ComfyUI 的插件来进行 FLUX.1 LoRA 的训练。
-
• AI-Toolkit
-
• Kohya’s GUI
-
• ComfyUI-FluxTrainer
要使用 FLUXTrainer 这个插件的话,在 ComfyUI Manager 里面搜索名字安装后重启即可,工作流可以在这里下载 ComfyUI-FluxTrainer/examples
(需要相关工作流的同学可自行扫描获取)
#03
/工作流
接下来,让我们聚焦于工作流中的图片设置环节。在此部分,您可以指定图像数据集的存储文件夹路径,并设定触发词,以引导模型生成特定风格的图像。目前使用的是16GB容量的RTX4080显卡,为了优化性能与效率,建议主要处理512像素的图像。当然,如果您的数据集包含其他分辨率的图像,系统同样支持添加,但在此场景中,您选择了忽略它们(如紫色区域所示)。至于batch_size和num_repeat这两个参数,您可以根据个人需要灵活调整,以达到最佳的训练效果。
在模型选择环节,我们还需要关注采样过程中所需的关键参数配置。我个人倾向于采用fp8精度的模型,因为这一选择往往能在保持计算效率的同时,提供较为理想的生成效果。值得注意的是,一旦您选定了fp8模型,那么在后续保存LoRA模型时,也应确保选择与之相匹配的fp8格式,以确保数据的兼容性和准确性。
接下来是整个训练过程最重要的参数设置,左边部分是选择相应的优化器(Optimizer),Adafactor 相对来说对显存的要求更低一点,16GB 及以下显存的可以选择 Adafactor。右边部分则是更多参数的设置,其中比较重要的是训练学习率(learning_rate)、总的训练步数(max_train_steps) 以及下面的保存类别(save_dtype)。训练学习率我一般就直接用默认的 0.0004(4e-4),更精细的话可以用 0.0001(1e-4)。训练步数我一般是用图片的张数乘上 100,比如我这次使用了 20 张参考图,所以使用 2000 这个步数,但是有时步数越高可能得到的结果并不是最好的,效果可以看后面的模型测试部分。
另外如果你的显存低于 16GB 的话,可以将 split_mode 设为 true,并且在最底部的额外参数部分填上 train_blocks=single。这个设置下,我的显存只要占用约 8GB,当然训练时间变长了,我的电脑上面差不多是不打开 split_mode 的三倍左右。
经过上述一系列细致的设置后,我们的工作流已基本就绪,准备投入运行。不过,在此之前,若您的显卡性能并非顶尖,我强烈建议您暂时禁用后续的Flux Train Validate节点及其关联的图片展示节点。以我个人的经验为例,在仅拥有16GB显存的环境下,尝试启用Flux Train Validate往往会导致显存资源耗尽,进而引发训练中断,不得不从头再来。因此,请根据您的实际硬件条件灵活调整。另外,若您决定彻底放弃Flux Train Validate的使用,也别忘了将工作流最右侧的图片保存节点区域一并禁用,以避免不必要的资源消耗。
目前,我已经成功配置了LoRA的生成流程。基于计算机硬件配置(配备16GB显存的RTX4080显卡以及64GB的内存),在不启用split_mode的情况下,采用fp8模型进行2000步的训练,整个过程大约耗时50至60分钟,期间显存占用率约为14.5GB。而若开启split_mode模式,虽然显存占用降至约8GB,但训练时间则显著延长至3个多小时。
#04
/模型测试
尽管FLUXTrainer的工作流程内已集成了模型测试功能,特别是通过Flux Train Validate节点来直观展示效果图的生成,但鉴于显卡资源有限,我额外设计了一个独立的工作流来执行更为详尽的对比分析。这个对比分析聚焦于以下四种特定情况,现在,让我们一同审视它们各自呈现出的效果。
-
不使用 LoRA
-
无标注
-
简单标注
-
复杂标注
首先,我们来探究模型在不同训练步数下的表现差异,这里以“简单标注”模型为例进行说明。个人观察发现,当训练步数达到约1000步时,模型已能呈现出较为理想的效果。然而,随着步数的进一步增加,生成的图片质量似乎并未持续提升,反而出现了某种程度的模糊现象,特别是人物面部的细节,如笑容等变得生硬乃至消失,这可能与模型过拟合或参数调整不当有关。在与“无标注”和“复杂标注”两个模型进行对比时,我们也观察到了类似的现象,因此,在后续的比较中,我们决定统一采用1000步训练完成的模型作为基准。
我们再来看一下 4 种情况下在 1000 步的效果,比较出乎意料的是使用复杂标注的效果反而没有其他两种情况好,比如在第二张图片上,虽然它能保存一部分人物的特征,但是出来的结果仍旧是动漫风格的,我个人觉得是复杂标注里面过多的特征描述反而束缚了模型的发挥,其实 FLUX.1 已经非常聪明了,在训练的时候它已经知道图片的很多特征,没有必要继续进行过多的描述。相对来说,我觉得最好的是简单标注的效果,比如在第四张图片中,简单标注相比无标注更能保持铠甲的外观。以 satomiishihara, a woman. 这个标注为例,我的理解是 FLUX.1 在训练的时候,能够将触发词 satomiishihara 和 woman 关联起来,同时又没有过多特征描述的干扰,所以能保持模型的灵活性。
资料软件免费放送
次日同一发放请耐心等待
关于AI绘画技术储备
学好 AI绘画 不论是就业还是做副业赚钱都不错,但要学会 AI绘画 还是要有一个学习规划。最后大家分享一份全套的 AI绘画 学习资料,给那些想学习 AI绘画 的小伙伴们一点帮助!
感兴趣的小伙伴,赠送全套AIGC学习资料和安装工具,包含AI绘画、AI人工智能等前沿科技教程,模型插件,具体看下方。
需要的可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
**一、AIGC所有方向的学习路线**
AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、AIGC必备工具
工具都帮大家整理好了,安装就可直接上手!
三、最新AIGC学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、AIGC视频教程合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
这份完整版的学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】