AI Image

本地微调Flux LoRA,最简单的方法

2024-10-14

只需要12G显存,你就可以在自己的电脑上微调Flux LoRA,打造完全可以以假乱真的虚拟模特。

Fluxgym这个项目支持从12G显存到24G显存的GPU,对配置的要求挺宽容的。操作起来非常简单,就三步:

根据你的需求填写参数、设定触发关键词,然后上传训练用的素材图片,最后点击开始,等着就可以了。

LoRA训练好之后,把它放到ComfyUI对应的文件夹里边,在工作流里加一个LoRA节点就可以使用了。是不是超级简单?

Fluxgym前端fork了AI- toolkit这个项目,所以才会这么直观、好用。而它后端用的是Kohya Sripts这个项目,可以做非常多进阶的调整。如果你懂的话,点开Advanced Tab就会看到一大堆选项。

这就是我为什么说Fluxgym是微调LoRA最简单也是最好的方法。

哈喽大家好,欢迎来到我的频道。谦虚地说,我是国内少数几个能把关于AI的Why和How讲明白的博主。记得点一波关注,只要有一个视频你看进去了,就赚大了。如果想链接我,就来newtype社群。已经有500多位小伙伴付费加入啦!

回到今天的主题:Fluxgym。

我在上上上期视频介绍过微调Flux LoRA的基本概念和方法。在视频中,当时我用的是部署在云端的项目。在H100的帮助下,只花20分钟就把LoRA训练出来。成本大概是两三美元。

说真的,我觉得这个价格其实很OK了。不过,如果你有闲置的本地算力的话,不用白不用,以及要训练的数量比较大的话,可以使用我今天要介绍的方法。

Fluxgym的安装有三种方式。你可以一键安装,可以通过Docker安装,也可以完全手动安装。我这边演示一下手动安装。其实超级简单,就无脑按照官方流程操作就好。

第一步,把项目下载到本地。记得要用cd命令进入Fluxgym文件夹,把sd-scripts也下载下来。

第二步,在根目录下,创建环境,并且启动。

第三步,下载、安装需要的各种依赖。大家注意,这里其实有两个部分:一是进入sd-scripts文件夹,通过pip install、按照requirements这个txt安装;二是返回上一级目录,同样通过pip install安装。

第四步也是最后一步,安装Pytorch。

我在家里和公司的PC上都安装了Fluxgym,没遇到任何问题。大家如果安装过程中遇到什么报错,记住:别问我,问ChatGPT——这一定是最有效的方法。你问我,我要么问GPT,要么Google一下,看看别人是怎么解决的。你有问我的功夫,还不如直接上手呢,对吧?

要启动Fluxgym,记得是在环境启动的状态下,在根目录下边执行这行命令。这时我们打开这个本地链接,就能看到UI了。

作为演示,在参数配置这边,我不做任何调整,就用默认参数。

在模型选择上,Fluxgym提供了三个模型:dev、schnell,以及一个他们微调后的dev模型。我这边就用官方的dev模型。

在训练素材方面,我还是用上次的图片,这样咱们一会儿可以对比不同项目训练出来的LoRA的效果。

都配置完毕后,咱们点击开始。

第一次使用,Fluxgym会下载模型文件,包括unet、clip、vae,一共有四个文件,加起来得有30G。如果你之前已经下载过了,那就把文件拷过来,放到对应的文件夹里。

整个训练过程咱们等着就好。我演示用的是公司的PC,4090显卡,64G内存,i9的CPU。即使是这种消费级的顶配,我都能明显感觉到,放在脚边的机箱发热多了非常多。

等训练完成,可以看到,这次一共花了70分钟。具体需要花多久,除了看配置,也取决于你前边的配置,比如你的步数需求。

把这个LoRA文件拷到ComfyUI的LoRA文件夹里,就可以在工作流里使用了。咱们来做个测试,提示词很简单。从生成结果来看,这个微调挺成功的,跟素材图片基本一致。

作为对比,咱们再来看看之前我在云端用AI-Toolkit训练的LoRA。还是同样的提示词。这次生成结果和刚才的基本一样。

前边我提到,Fluxgym默认支持三个模型,其中一个是微调后的。他们建议,最好是用这个微调后的模型来训练。原因在于:

dev模型是从pro模型蒸馏过来的。在蒸馏的过程中,某些能力或输入条件被削弱或去掉了。比如,可能会有一些美学嵌入条件在简化过程中被限制,或者模型在训练过程中只使用了更小的数据集。这就导致用dev模型训练LoRA,效果有可能不太好。

为了把丢失的能力补回来,开发者使用大规模、高质量的数据对dev进行微调。这样一来,用这个定制版的dev模型再去微调,就能避免模型崩溃或输出质量下降的情况。大家使用的时候,我建议还是优先用它。

通过LoRA,咱们可以达到直接生成指定外观的人物或者物品的目的。我知道肯定会有人说,不用LoRA也可以。确实,比如你用PuLID,让模型根据参考图,也可以生成指定长相的人物。

但是,这是有限制的。比如,生成人物的朝向会受到参考图像的限制。还有,你经常会发现,一张图作为参考不够,还得多加几张。然后还需要对图像做个裁切,把脸的位置给单独拎出来。

所以,在我看来,图生图或者换脸都只是权宜之计。如果你要长期、稳定生成虚拟模特或者物品的话,还是搞个LoRA吧。训练成本和使用成本都很低,挺划算的。

OK,以上就是本期内容。想进一步交流AI就来newtype社群。那咱们下期见!