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


9 个月前

近年来,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