微调 FLUX.1:自定义您的 AI 图像生成器


11 个月前

近年来,AI 生成艺术成为一个引人入胜的领域,提供了无尽的创造可能性。其中一个突出的模型是 Flux,这是一个尖端的图像生成器,可以根据文本提示创建高质量的视觉效果。

使用 Flux.1 生成的图像

什么是 FLUX.1?

Flux 是一个强大的 AI 模型,可以根据文本提示生成图像。你可以输入类似“悟空在天空中飞翔”的内容,Flux 会根据这个提示创建一幅图像。但是,如果你想让 Flux 以不同的风格生成图像,比如让悟空看起来像手绘动漫风格或 3D 角色呢?这就是微调的用武之地。

什么是微调?

微调就像是在教 Flux 新的技巧。通过向它展示大量特定风格或特定主题的图像,你可以训练 Flux 创建符合该风格或专注于该主题的图像。这就像给 Flux 上了一门专业的艺术课!

开始之前

在我们深入之前,你需要:

  • 一台配备良好显卡(GPU)的电脑
  • 一些基本的计算机使用和命令运行知识
  • 耐心(训练可能需要一些时间!)

第一步:设置环境

  1. 首先,我们需要获取 AI 工具包。这就像是一个用于处理 AI 的工具箱:

bash git clone https://github.com/ostris/ai-toolkit cd ai-toolkit

bash pip install torch peft pip install -r requirements.txt git submodule update --init --recursive

第二步:准备训练数据

在这里,你决定想教 Flux 什么。假设你想教它创建《龙珠 Z》风格的图像:

  1. 在你的 AI 工具包文件夹中创建一个名为 dataset 的文件夹。
  2. 添加你希望 Flux 学习的图像。例如:
  3. goku1.jpg:悟空超级赛亚人形态的图像
  4. goku2.jpg:悟空与弗利萨战斗
  5. vegeta1.jpg:贝吉塔做出标志性姿势
  6. 为每个图像创建一个同名的文本文件,描述该图像。例如:
  7. goku1.txt: “悟空在超级赛亚人形态中,周围环绕着闪电。”
  8. goku2.txt: “悟空在那美克星与弗利萨战斗,能量光环交错。”
  9. vegeta1.txt: “贝吉塔自信地双臂交叉,微笑着站立。”

高质量数据的重要性

你用于训练的图像和描述的质量直接影响输出。如果你提供多样且描述清晰的图像,Flux 将更有效地学习并产生更好的结果。确保你的数据集足够大,以代表你希望 Flux 学习的风格。提供的多样性越多,Flux 在生成新图像时的泛化能力就越强。

第三步:设置训练

现在我们需要告诉 AI 工具包如何训练 Flux。我们通过编辑 config/examples 文件夹中的 train_lora_flux_24gb.yaml 文件来完成。以下是需要更改的主要内容:

  • name:给你的项目起个酷炫的名字,比如 “dbz_style_flux”
  • folder_path:指向你的 dataset 文件夹
  • steps:训练的时长。可以先从 500 开始,看看效果如何!

理解训练步骤

训练步骤是模型处理整个数据集以学习的次数。更多的步骤通常意味着更好的微调,因为模型有更多机会学习数据的细微差别。然而,更多的步骤也意味着更长的训练时间和对 GPU 的更高要求。如果你在强大的 GPU 上训练,可以选择更高的步骤(例如 1000-2000),但如果你的 GPU 较为普通,从 500 步骤开始可能是一个不错的平衡。

第四步:开始训练

是时候开始教 Flux 了!运行以下命令:

python run.py config/examples/train_lora_flux_24gb.yaml

现在,坐下来让你的电脑工作吧。可能需要一段时间,所以也许可以吃点零食或看一集《龙珠 Z》!

训练是如何工作的

在训练过程中,Flux 将从你的数据集中获取图像及其对应的描述,并学习将它们关联起来。它将根据检测到的模式更新其内部参数(如权重)。这个过程计算量大,可能需要几个小时到一天或更长时间,具体取决于你的 GPU 和数据集的大小。

第五步:测试你的微调 Flux

训练完成后,你可以测试你新改进的 Flux!创建一个名为 test_flux.py 的文件,内容如下:

import torch
from diffusers import FluxPipeline

# 加载 Flux
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", torch_dtype=torch.float16).to("cuda")

# 加载你的微调模型
pipe.load_lora_weights("/path/to/your/fine_tuned_model.safetensors", adapter_name="default")

# 生成图像
prompt = "悟空和贝吉塔进行融合舞"

image = pipe(prompt, height=512, width=512).images[0]

# 保存图像
image.save("fusion_dance.png")

运行这个脚本,你就可以得到一幅新的《龙珠 Z》风格的图像。

理解关键术语

  • LoRA 权重:LoRA(低秩适应)是一种高效微调 AI 模型的技术。它并不调整模型的所有参数,而是仅修改其中的一小部分,从而加快过程并提高资源效率。
  • 适配器:在这个上下文中,适配器指的是经过微调以调整模型行为的特定权重(LoRA 权重)。当你加载适配器时,你就是在将训练期间所做的自定义应用到原始 Flux 模型上。

结论

恭喜你!你刚刚自定义了 Flux,以创建《龙珠 Z》风格的图像。但为什么要止步于此呢?你可以微调 Flux 以创建任何你喜欢的风格的图像——也许是像素艺术、水彩画,甚至是你自己独特的风格!

记住,你用于训练的图像越多样且质量越高,结果就会越好。尽情享受使用你个性化的 Flux 探索 AI 图像生成的无尽可能性吧!

本地运行 Flux 的最低配置

  • 最低 GPU:NVIDIA RTX 3090 或同等显卡
  • 推荐 GPU:NVIDIA RTX A6000
  • 显存要求:32GB(基础模型)

为什么这些配置很重要

Flux 是一个大型 AI 模型,需要大量内存和处理能力才能高效运行。像 RTX 3090 或 A6000 这样的高端 GPU 确保你有足够的显存来处理生成图像所需的复杂计算。显存越多,你可以生成的图像就越大、越详细,训练速度也会更快。

FluxAI 中文

© 2025. All Rights Reserved