训练 FLUX LoRA模型安装与部署

在如今日新月异的 AI 辅助设计领域,LoRA(Low-Rank Adaptation)技术的应用愈发广泛,它为模型的个性化训练提供了强大助力。此前,我曾专门撰写文章,详细记录了如何快速训练 SDXL 模型的 LoRA,感兴趣的朋友不妨回顾一下:# 【AI 辅助设计】记一次图标风格 LoRA 训练。而近期,我一直密切关注着 FLUX LoRA 的训练技术和相关动态。毕竟,随着 AI 技术的不断演进,FLUX 已逐渐成为行业发展的大势所趋,曾经辉煌一时的 SD 时代正悄然远去。

令人欣喜的是,开源社区的蓬勃发展与众多技术大佬的不懈努力,为我们带来了诸多便利。如今,即便是配备 16G VRAM 的普通家用电脑,也能够轻松胜任 FLUX 的 LoRA 训练任务。今天,我将亲自使用 fluxgym 这一方法进行 LoRA 训练,并详尽记录整个过程,希望能为大家提供一些参考和帮助。

一、fluxgym:一款卓越的前端 LoRA 训练 web 应用

fluxgym 是由才华横溢的 cocktail peanut 整合开发的一款易于使用的前端 LoRA 训练 web 应用,其背后依托的是强大的 Kohya Scripts。这款应用具备两大显著优点,使其在众多训练工具中脱颖而出:

  1. 显著降低显存占用:fluxgym 对硬件的要求相对较低,能够支持 12GB、16GB、20GB 等不同显存容量的显卡。这意味着,即使您的电脑配置并非顶级,也有机会进行 FLUX LoRA 的训练,极大地降低了技术门槛,让更多的爱好者能够参与其中。

  2. 超级简单的用户界面和流程:该应用的用户界面设计简洁直观,操作流程清晰明了。无论是新手还是有一定经验的用户,都能够快速上手,轻松完成训练任务。

不过,需要注意的是,目前 fluxgym 仅支持 NVIDIA 的显卡。如果您想进一步了解或使用该应用,可以访问其项目地址:GitHub - cocktailpeanut/fluxgym: Dead simple FLUX LoRA training UI with LOW VRAM support 。凭借其出色的易用性,在 X 平台上,越来越多的推友开始使用 fluxgym 来训练 LoRA,这也从侧面证明了它的受欢迎程度。

二、安装 fluxgym:详细步骤解析

1. 克隆项目:首先,我们需要克隆 Fluxgym 和 kohya-ss/sd-scripts 这两个项目。具体操作如下:

git clone https://github.com/cocktailpeanut/fluxgym cd fluxgym git clone -b sd3 https://github.com/kohya-ss/sd-scripts

注意是sd3版本的。

完成上述操作后,您的文件夹结构将呈现如下形式:

/fluxgym app.py requirements.txt /sd-scripts

2. 创建 conda 环境:官方推荐使用 venv 虚拟环境,但为了方便起见,我在这里选择直接使用 conda 环境进行安装。执行以下命令创建名为 fluxgym 的 conda 环境,并指定 Python 版本为 3.10:

conda create -n fluxgym python=3.10

3. 激活环境:环境创建完成后,使用以下命令激活 fluxgym 环境:

conda activate fluxgym

4. 进入 sd-scripts,并安装依赖:进入 sd-scripts 目录,并安装相应的依赖项:

cd sd-scripts pip install -r requirements.txt

5. 然后fluxgym目录下,在安装依赖:

cd .. pip install -r requirements.txt

6. 安装 pytorch:最后,安装 pytorch版本,以确保应用的正常运行(这是最关键的我的CUDA是11.2但是可以安装11.8的,因为是python3.10,所以torch的版本一定是2.0.0以上的,我的经验是尽量安装2.X.1的版本,我安装的是2.4.1+cu118)

pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu118

在下面链接找到适合自己的版本的,

Previous PyTorch Versions | PyTorch

安装完后,大概率,部分用户界面会出现提示告诉你,有一些库版本与pytorch不兼容,我的经验是重点关注这三个库即可(transformers,accelerate ,platform)安装界面给你提示,安装合适版本去兼容就行

最后可以用如下代码去验证一下自己的安装是否成功:

import torch 
import transformers 
import accelerate 
import platform 

# 检查 CUDA 是否可用 
def check_cuda(): 
    if torch.cuda.is_available(): 
        print("CUDA is available.") 
        print(f"Device name: {torch.cuda.get_device_name(0)}") print(f"CUDA version: {torch.version.cuda}") 
        print(f"Number of GPUs: {torch.cuda.device_count()}") else: print("CUDA is not available.") 

# 检查 PyTorch 版本 
def check_torch_version(): 
    print(f"PyTorch version: {torch.__version__}") 

# 检查 transformers 版本 
def check_transformers_version(): 
    print(f"Transformers version: {transformers.__version__}") 

# 检查 accelerate 版本 
def check_accelerate_version(): 
    print(f"Accelerate version: {accelerate.__version__}") 

# 检查操作系统信息 
def check_platform(): 
    print(f"Operating System: {platform.system()}") 
    print(f"Platform Version: {platform.version()}") 
    print(f"Platform Architecture: {platform.architecture()}") 

def main(): 
    # 执行检查 
    check_platform() 
    check_cuda() 
    check_torch_version() 
    check_transformers_version() 
    check_accelerate_version() 

if __name__ == "__main__": 
    main()

三、下载模型:确保训练的基础

在进行训练之前,我们需要下载相关的模型文件。fluxgym 的模型下载要求与 fp16 的 FLUX 模型组一致,如果您之前已经下载过相关模型,只需将其复制到对应的目录即可。具体的下载步骤如下:

1. 在 models/clip 文件夹下下载以下模型:

https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors?download=true https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp16.safetensors?download=true

2. 在 models/vae 文件夹下下载以下模型:

https://huggingface.co/cocktailpeanut/xulf-dev/resolve/main/ae.sft?download=true

3. 在 models/unet 文件夹下下载以下模型:

https://huggingface.co/cocktailpeanut/xulf-dev/resolve/main/flux1-dev.sft?download=true

完成下载后,将模型放入如下结构中所示:

/models 
        /clip 
                clip_l.safetensors 
                t5xxl_fp16.safetensors 
        /unet 
                flux1-dev.sft 
        /vae 
                ae.sft 
/sd-scripts 
/outputs 
/env 
app.py 
requirements.txt

启动服务之前,如果你用的是本地的部署的,可以跳过,如果用的是远程服务器需要修改 app.py 代码最后的部分如下:

四、运行:开启训练之旅

建议还是在前面增加外部连接HF_ENDPOINT=https://hf-mirror.com,后续训练过程会访问huggingface,正常没有代理访问huggingface,会连接超时。

HF_ENDPOINT=https://hf-mirror.com python app.py

五、训练过程:从准备到成果的蜕变

按照上面的步骤,依次进行就行了,下面我大概介绍一下,这些填的参数含义:

step 1

下面这个参数,和kohya_ss训练出现的参数是一个意思,“复制数据集几次”

step 2

上传自己的图片, 不必考虑图片之前尺寸问题。然后点击Florence反推打标。

点击后可能会出现一些报错问题:

RuntimeError:"erfinv_vml_cpu"notimplementedfor'Half' :表示erfinv_()(计算反误差函数)操作不支持torch.float16(半精度)。模型在进行权重初始化时似乎使用了torch.float16精度,而这个特定操作erfinv_()在这种精度下不可用。(这个问题跟torch版本有关,按理说高版本应该可以适配,但我2.4.1也不行,可能2.6.1没这个问题吧)

解决方法:

在app.py 279行:torch_dtype = torch.float16 改成 torch_dtype = torch.bfloat16

Step 3

就可以直接点击training

添加图片注释,不超过 140 字(可选)

但你如果跟我一样是低版本的CUDA,需要修改一个参数 在app.py 475行

将bf16改成fp16

运行后报错问题:

RuntimeError: GET was unable to find an engine to execute this computation

通常会认为是torch版本不兼容的问题,但如果是按照前面步骤去验证的话,torch能用cuda,并且torch和torchvision版本是兼容的,就没这个问题的,经过我的盘查发现是transformer版本不兼容的原因,

这个需要结合自己的CUDA版本,去调整是升级版本还是降低,我的CUDA11.2用的是transformers==4.37.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

T1.Faker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

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

抵扣说明:

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

余额充值