当前位置: 首页 > news >正文

训练 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

相关文章:

  • 高频 SQL 50 题(基础版)| 高级字符串函数 / 正则表达式 / 子句:1667. 修复表中的名字、1527. 患某种疾病的患者、196. 删除重复的电子邮箱、176. 第二高的薪水、...
  • 【UI自动化实现思路第二章】OCR 图片文字识别方法
  • NO2.C++语言基础|C++和Java|常量|重载重写重定义|构造函数|强制转换|指针和引用|野指针和悬空指针|const修饰指针|函数指针(C++)
  • 算法提升第一章:基础算法总结
  • 【JAVA架构师成长之路】【JVM实战】第1集:生产环境CPU飙高排查实战
  • DeepSeek本地调用,集成到自己的平台中,做二次集成
  • 2025-03-06 学习记录--C/C++-C 库函数 - strcat()、strncpy()
  • 【每日学点HarmonyOS Next知识】Web上传文件、监听上下左右区域连续点击、折叠悬停、字符串相关、播放沙盒视频
  • 微服务架构下的 Node.js
  • [项目]基于FreeRTOS的STM32四轴飞行器: 四.LED控制
  • vue基本功
  • Devart dbForge Studio for MySQL Enterprise 9.0.338高效数据库管理工具
  • 在线SQL转ArkTs
  • PTA 7-6 列出连通集
  • Terraform 中安全地更改 EC2 实例 instance_type 的指南
  • idea 复制代码时不带富文本背景色
  • 记录一个Circle CI出现的错误
  • 全员DeepSeek时代,前端能做些什么?
  • 捣鼓180天,我写了一个相册小程序
  • 快速从C过度C++(二):引用,内联函数,nullptr
  • 小型网站商城建设/抖音搜索优化
  • 深圳宝安网站建设学习网/营销型制作网站公司
  • 定制网站多少钱/今天重大新闻头条新闻军事
  • 免费写作网站/kol合作推广
  • 沈阳网红餐厅/南宁seo推广服务
  • 旅社网站建设/seo是什么?