

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# FLUX.2 Klein LoRa 微调和图像生成
<a name="flux2-klein-lora"></a>

此示例演示如何使用 LoRa（Low-Rank 自适应）微调 FLUX.2 Klein 图像生成模型，并在 Deadline Cloud 上大规模生成图像。该工作流程训练来自小型图像数据集的轻量级适配器。然后，它使用该适配器根据文本提示生成新图像，所有这些图像都作为 GPU 队列上的 Deadline Cloud 作业编排。

此示例的源代码可在上的 de [adline-cloud-samples 存储库](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/flux2_klein_lora)中找到。 GitHub

以下视频演示了 Deadline Cloud 上的 FLUX.2 Klein LoRa 工作流程。

[![AWS Videos](http://img.youtube.com/vi/3ziQqB19RSw/0.jpg)](http://www.youtube.com/watch?v=3ziQqB19RSw)


**预计时间：**30—60 分钟（包括 15—45 分钟的训练时间）。

## 概述
<a name="examples-flux2-overview"></a>

该示例由两个任务捆绑包组成：

1. **lora\_tra Fine-tunes FLUX.2** [ining — 使用 [LoRa](https://huggingface.co/docs/peft/conceptual_guides/adapter#low-rank-adaptation-lora) 对你的图像数据集进行 Klein](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4B)，生成适配器文件。`.safetensors`

1. **image\_g** eneration — 使用经过训练的适配器加载基础模型，并根据文本提示生成图像。生成多张图像时，工作将在各个工作人员之间并行进行。

LoRa 是一种参数高效的微调技术，它可以训练小型适配器，而不是修改整个模型的权重。这种方法使训练速度更快（在单个 GPU 上使用 15-45 分钟），并且生成的适配器便于携带且易于版本控制。

作业捆绑包使用[扩散器](https://github.com/huggingface/diffusers)和 [peft](https://github.com/huggingface/peft) 库进行训练和推理。

要完成此示例，请执行以下步骤：

1. 完成先决条件。

1. 准备训练数据。

1. 提交训练作业。

1. 提交图像生成作业。

1. 清理资源。

## 先决条件
<a name="examples-flux2-prerequisites"></a>

开始之前，请确保您拥有：
+ 拥有 GPU 队列的 Deadline Cloud Farm（Linux，NVIDIA A10G GPU，13 GB\+ VRAM，推荐 64 GiB以上的系统内存）。
+ 与 GPU 队列关联的队列。
+ 您的工作站上安装了 De [adline Cloud CLI](https://github.com/aws-deadline/deadline-cloud)。
+ 20—50 张拍摄对象的训练图像（`.jpg`、`.png``.jpeg`、或`.webp`）。

## Job 捆绑包结构
<a name="examples-flux2-structure"></a>

```
flux2_klein_lora/
├── lora_training/
│   ├── template.yaml       # OpenJD job template
│   └── train_lora.py       # Training script
└── image_generation/
    ├── template.yaml       # OpenJD job template
    └── generate_image.py   # Inference script
```

## 准备训练数据
<a name="examples-flux2-training-data"></a>

**准备您的训练数据**

1. 创建一个包含拍摄对象图像的目录。为获得最佳效果，请使用 20-50 张姿势、光线和背景各不相同的图像。

1. 或者，在每张`.txt`图片旁边提供一个字幕文件，以便进行更细致入微的训练：

   ```
   training_images/
   ├── IMG_001.jpeg
   ├── IMG_001.txt    # "a photo of ohwx dog sitting on grass"
   ├── IMG_002.jpeg
   ├── IMG_002.txt    # "a photo of ohwx dog running on beach"
   ```

   如果不存在字幕文件，则训练脚本会使用实例提示参数自动生成字幕文件。自定义字幕可以产生更高质量的结果，因为它们可以教会模型在触发词和视觉特征之间更具体的关联。

1. 选择一个唯一的触发词（例如`ohwx`）。这会将学到的概念绑定到一个与现有模型知识不冲突的代币上。

## 提交训练作业
<a name="examples-flux2-submit-training"></a>

**提交培训作业**

1. 导航到克隆`deadline-cloud-samples`存储库中的`flux2_klein_lora`目录。

1. 要使用 GUI 提交训练作业，请运行以下命令：

   ```
   deadline bundle gui-submit ./lora_training
   ```

   或者，要直接使用 CLI 提交训练作业，请运行以下命令：

   ```
   deadline bundle submit ./lora_training \
     --queue-id {{gpu-queue-id}} \
     --parameter DatasetPath=~/training_images \
     --parameter InstancePrompt="a photo of ohwx dog" \
     --parameter OutputDir=/tmp/lora_output \
     --parameter MaxTrainSteps=1500 \
     --parameter Resolution=512
   ```

1. 在 Deadline Cloud 控制台中或使用`deadline job get`命令监控任务状态。

### 训练参数
<a name="examples-flux2-training-params"></a>


**训练参数**  

| 参数 | 说明 | 默认 | 
| --- | --- | --- | 
| 模型版本 | flux.2-klein-base-4b 或 flux.2-klein-4b | flux.2-klein-base-4b | 
| 数据集路径 | 包含训练图像的目录 | — | 
| 实例提示 | 描述您的主题的文字 | — | 
| 解决方案 | 训练图像分辨率（以像素为单位） | 512 | 
| 网络调光 | LoRa 等级（越高 = 容量越大） | 16 | 
| 网络 Alpha | LoRa α缩放系数 | 16 | 
| 最大训练步数 | 训练迭代次数 | 1500 | 
| 输出目录 | 在哪里保存训练过的重量 | — | 

### 训练输出
<a name="examples-flux2-training-output"></a>

训练作业会生成以下构件：
+ `flux2_klein_lora.safetensors`— 经过训练的 LoRa 适配器，带有嵌入式元数据。
+ 每 300 步保存一次检查点。

要在训练完成后下载输出，请运行以下命令：

```
deadline job download-output \
  --job-id {{training-job-id}} \
  --queue-id {{gpu-queue-id}}
```

## 提交图像生成作业
<a name="examples-flux2-submit-generation"></a>

**提交图像生成作业**

1. 导航到克隆`deadline-cloud-samples`存储库中的`flux2_klein_lora`目录。

1. 要使用 GUI 提交图像生成作业，请运行以下命令：

   ```
   deadline bundle gui-submit ./image_generation
   ```

   或者，要直接通过 CLI 提交图像生成作业，请运行以下命令：

   ```
   deadline bundle submit ./image_generation \
     --queue-id {{gpu-queue-id}} \
     --parameter LoRAPath=/tmp/lora_output/flux2_klein_lora.safetensors \
     --parameter Prompt="a photo of ohwx dog wearing a tuxedo" \
     --parameter OutputDir=/tmp/generated_images \
     --parameter NumImages=4
   ```

1. 在 Deadline Cloud 控制台中或使用`deadline job get`命令监控任务状态。

当大`NumImages`于 1 时，Deadline Cloud 会将工作分配给多个工作人员，以加快生成速度。

### 生成参数
<a name="examples-flux2-generation-params"></a>


**生成参数**  

| 参数 | 说明 | 默认 | 
| --- | --- | --- | 
| LoRa Path | 经过训练的.safetensors文件的路径 | — | 
| 提示 | 文字描述（包括你的触发词） | — | 
| 图像数量 | 要生成的图像总数 | 1 | 
| 宽度 | 以像素为单位的输出宽度 | 1024 | 
| 高度 | 以像素为单位的输出高度 | 1024 | 
| 推理步骤 | 降噪步骤数 | 50 | 
| 指导量表 | Classifier-free 指导量表 | 4.0 | 

### 发电输出
<a name="examples-flux2-generation-output"></a>

图像另存为`image_0001.png``image_0002.png`、等。要下载它们，请运行以下命令：

```
deadline job download-output \
  --job-id {{generation-job-id}} \
  --queue-id {{gpu-queue-id}}
```

## 型号变体
<a name="examples-flux2-model-variants"></a>


**FLUX.2 克莱因模型变体**  

| 模型 | 参数 | 适用于 | 
| --- | --- | --- | 
| flux.2-klein-base-4b | 4B | Fine-tuning，商业用途 | 
| flux.2-klein-4b | 4B | 快速推理（4 个降噪步骤） | 

## 培训建议
<a name="examples-flux2-recommendations"></a>

以下建议可以帮助您获得最佳结果：
+ **数据集大小** — 20—50 张高质量图像适用于大多数拍摄对象。
+ **分辨率** — 对于具有 24 GB 显存的 GPU，请使用 512。更高的分辨率需要更多的内存。
+ **训练步骤** — 从 1500 开始。如果输出与拍摄对象不相似，则增加。
+ **网络暗淡** — 16 是一个不错的默认设置。对于复杂或抽象的概念，使用 32。
+ **学习率** — 默认值 1e-4 适用于大多数情况。

## 清理
<a name="examples-flux2-cleanup"></a>

为避免持续收费，请清理您为此示例创建的资源：

**清理示例资源**

1. 在 Deadline Cloud 控制台中，停止或删除您在本示例中使用的 GPU 队列。

1. 如果不再需要任务附件创建的任何 Amazon Simple Storage Service 对象，请将其删除。

1. 如果不再需要本地输出文件，请将其删除：

   ```
   rm -rf /tmp/lora_output /tmp/generated_images
   ```

## 相关资源
<a name="examples-flux2-related"></a>

以下资源提供了更多信息：
+ [上的示例源代码 GitHub](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/flux2_klein_lora)
+ [FLUX.2Klein on Hugging Face](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4B)
+ [Open Job 描述规范](https://github.com/OpenJobDescription/openjd-specifications)
+ [扩散器文档](https://huggingface.co/docs/diffusers)
+ [截止日期云架构指南](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/architecture-guidance.html)