

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# FLUX.2 Feinabstimmung und Bildgenerierung von Klein LoRa
<a name="flux2-klein-lora"></a>

Dieses Beispiel zeigt, wie man ein FLUX.2 Klein-Bildgenerierungsmodell mithilfe von LoRa (Low-Rank Adaptation) verfeinert und Bilder in Deadline Cloud maßstabsgetreu generiert. Der Workflow trainiert einen leichten Adapter anhand eines kleinen Bilddatensatzes. Anschließend verwendet er diesen Adapter, um anhand von Textansagen neue Bilder zu generieren, die alle als Deadline Cloud-Jobs auf einer GPU-Flotte orchestriert werden.

Der Quellcode für dieses Beispiel ist im [Deadline-Cloud-Samples-Repository](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/flux2_klein_lora) unter verfügbar. GitHub

Das folgende Video zeigt den FLUX.2 Klein LoRa-Workflow auf Deadline Cloud.

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


**Geschätzte Zeit:** 30—60 Minuten (einschließlich 15—45 Minuten für das Training).

## -Übersicht
<a name="examples-flux2-overview"></a>

Das Beispiel besteht aus zwei Auftragspaketen:

1. **lora\_training** — Fine-tunes [FLUX.2Klein](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4B) auf Ihrem Bilddatensatz mithilfe von [LoRa](https://huggingface.co/docs/peft/conceptual_guides/adapter#low-rank-adaptation-lora), wodurch eine Adapterdatei erzeugt wird. `.safetensors`

1. **image\_generation** — Lädt das Basismodell mit Ihrem trainierten Adapter und generiert Bilder aus Texteingabeaufforderungen. Beim Generieren mehrerer Bilder wird die Arbeit zwischen den Mitarbeitern parallelisiert.

LoRa ist eine parametereffiziente Feinabstimmungstechnik, bei der ein kleiner Adapter trainiert wird, anstatt die gesamten Modellgewichte zu ändern. Dieser Ansatz macht das Training schnell (15—45 Minuten auf einer einzelnen GPU) und der daraus resultierende Adapter ist portabel und einfach zu versionieren.

Die Job-Bundles verwenden die [Diffusoren](https://github.com/huggingface/diffusers) und [PEFT-Bibliotheken für Schulungen](https://github.com/huggingface/peft) und Inferenz.

Gehen Sie wie folgt vor, um dieses Beispiel zu vervollständigen:

1. Sorgen Sie dafür, dass die -Voraussetzungen erfüllt sind.

1. Bereiten Sie die Trainingsdaten vor.

1. Reichen Sie den Schulungsjob ein.

1. Reichen Sie den Job zur Bilderzeugung ein.

1. Bereinigen Sie die Ressourcen.

## Voraussetzungen
<a name="examples-flux2-prerequisites"></a>

Stellen Sie vor dem Beginn sicher, dass Sie über Folgendes verfügen:
+ Eine Deadline Cloud-Farm mit einer GPU-Flotte (LinuxNVIDIA A10G-GPU, 13 GB\+ VRAM, 64 GiB und mehr Systemspeicher empfohlen).
+ Eine Warteschlange, die der GPU-Flotte zugeordnet ist.
+ Die [Deadline Cloud-CLI](https://github.com/aws-deadline/deadline-cloud) ist auf Ihrer Workstation installiert.
+ 20—50 Trainingsbilder Ihres Probanden (`.jpg`, `.png``.jpeg`, oder`.webp`).

## Struktur des Jobpakets
<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
```

## Bereiten Sie Trainingsdaten vor
<a name="examples-flux2-training-data"></a>

**Um Ihre Trainingsdaten vorzubereiten**

1. Erstellen Sie ein Verzeichnis mit Bildern Ihres Themas. Die besten Ergebnisse erzielen Sie, wenn Sie 20—50 Bilder mit unterschiedlichen Posen, Lichtverhältnissen und Hintergründen verwenden.

1. Für ein differenzierteres Training können Sie optional jedem Bild eine `.txt` Untertiteldatei beifügen:

   ```
   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"
   ```

   Wenn keine Untertiteldateien vorhanden sind, generiert das Trainingsskript sie automatisch mithilfe des Instanz-Prompt-Parameters. Benutzerdefinierte Beschriftungen führen zu qualitativ hochwertigeren Ergebnissen, da sie dem Modell spezifischere Assoziationen zwischen Ihrem Triggerwort und visuellen Merkmalen vermitteln.

1. Wählen Sie ein eindeutiges Auslösewort (z. B.). `ohwx` Dadurch wird das erlernte Konzept an ein Token gebunden, das nicht mit vorhandenem Modellwissen kollidiert.

## Reichen Sie den Ausbildungsjob ein
<a name="examples-flux2-submit-training"></a>

**Um den Ausbildungsjob einzureichen**

1. Navigieren Sie zu dem `flux2_klein_lora` Verzeichnis in Ihrem geklonten `deadline-cloud-samples` Repository.

1. Führen Sie den folgenden Befehl aus, um den Trainingsjob mit der GUI einzureichen:

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

   Oder führen Sie den folgenden Befehl aus, um den Trainingsjob direkt mit der CLI zu senden:

   ```
   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. Überwachen Sie den Jobstatus in der Deadline Cloud-Konsole oder mithilfe des `deadline job get` Befehls.

### Trainingsparameter
<a name="examples-flux2-training-params"></a>


**Trainingsparameter**  

| Parameter | Description | Standard | 
| --- | --- | --- | 
| Modellversion | flux.2-klein-base-4b oder flux.2-klein-4b | flux.2-klein-base-4b | 
| Datensatz-Pfad | Verzeichnis mit Trainingsbildern | — | 
| Instanz-Aufforderung | Text, der Ihr Thema beschreibt | — | 
| Auflösung | Auflösung des Trainingsbilds in Pixeln | 512 | 
| Netzwerk-Dim | LoRa-Rang (höher = mehr Kapazität) | 16 | 
| Netzwerk Alpha | LoRa-Alpha-Skalierungsfaktor | 16 | 
| Max. Trainingsschritte | Anzahl der Trainingsiterationen | 1500 | 
| Ausgabeverzeichnis | Wo kann man trainierte Gewichte speichern | — | 

### Trainingsausgaben
<a name="examples-flux2-training-output"></a>

Der Trainingsjob erzeugt die folgenden Artefakte:
+ `flux2_klein_lora.safetensors`— Der trainierte LoRa-Adapter mit eingebetteten Metadaten.
+ Checkpoints werden alle 300 Schritte gespeichert.

Führen Sie den folgenden Befehl aus, um die Ausgabe nach Abschluss des Trainings herunterzuladen:

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

## Reichen Sie den Job zur Imagegenerierung ein
<a name="examples-flux2-submit-generation"></a>

**Um den Job zur Bilderzeugung einzureichen**

1. Navigieren Sie zu dem `flux2_klein_lora` Verzeichnis in Ihrem geklonten `deadline-cloud-samples` Repository.

1. Führen Sie den folgenden Befehl aus, um den Job zur Image-Generierung mit der GUI einzureichen:

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

   Oder führen Sie den folgenden Befehl aus, um den Image-Generierungsjob direkt mit der CLI zu senden:

   ```
   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. Überwachen Sie den Jobstatus in der Deadline Cloud-Konsole oder mithilfe des `deadline job get` Befehls.

Wenn der `NumImages` Wert größer als 1 ist, verteilt Deadline Cloud die Arbeit auf mehrere Mitarbeiter, um die Generierung zu beschleunigen.

### Parameter der Generierung
<a name="examples-flux2-generation-params"></a>


**Generierungsparameter**  

| Parameter | Description | Standard | 
| --- | --- | --- | 
| LoRa-Pfad | Pfad zur trainierten Datei .safetensors | — | 
| Prompt | Textbeschreibung (schließen Sie Ihr Auslöserwort ein) | — | 
| Anzahl der Bilder | Gesamtzahl der zu generierenden Bilder | 1 | 
| Width | Breite der Ausgabe in Pixeln | 1024 | 
| Höhe | Ausgabehöhe in Pixeln | 1024 | 
| Schritte zur Inferenz | Anzahl der Schritte zur Rauschunterdrückung | 50 | 
| Orientierungsskala | Classifier-free Orientierungsskala | 4,0 | 

### Leistung der Erzeugung
<a name="examples-flux2-generation-output"></a>

Bilder werden gespeichert als `image_0001.png``image_0002.png`, und so weiter. Führen Sie den folgenden Befehl aus, um sie herunterzuladen:

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

## Modellvarianten
<a name="examples-flux2-model-variants"></a>


**FLUX.2 Modellvarianten von Klein**  

| Modell | Parameters | Am besten geeignet für | 
| --- | --- | --- | 
| flux.2-klein-base-4b | 4B | Fine-tuning, kommerzielle Nutzung | 
| flux.2-klein-4b | 4B | Schnelle Inferenz (4 Schritte zur Rauschuntersetzung) | 

## Empfehlungen für Schulungen
<a name="examples-flux2-recommendations"></a>

Die folgenden Empfehlungen können Ihnen helfen, die besten Ergebnisse zu erzielen:
+ **Datensatzgröße** — 20—50 qualitativ hochwertige Bilder eignen sich für die meisten Probanden.
+ **Auflösung** — Verwenden Sie 512 für GPUs mit 24 GB VRAM. Höhere Auflösungen erfordern mehr Speicher.
+ **Trainingsschritte** — Beginnen Sie mit 1500. Erhöhen Sie den Wert, wenn die Ergebnisse Ihrem Thema nicht ähneln.
+ **Netzwerk-Dimierung** — 16 ist eine gute Standardeinstellung. Verwenden Sie 32 für komplexe oder abstrakte Konzepte.
+ **Lernrate** — Die Standardeinstellung 1e-4 funktioniert in den meisten Fällen gut.

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

Um laufende Gebühren zu vermeiden, bereinigen Sie die Ressourcen, die Sie für dieses Beispiel erstellt haben:

**So bereinigen Sie die Beispielressourcen**

1. Stoppen oder löschen Sie in der Deadline Cloud-Konsole die GPU-Flotte, die Sie für dieses Beispiel verwendet haben.

1. Löschen Sie alle Amazon Simple Storage Service (Amazon S3) -Objekte, die durch Jobanhänge erstellt wurden, wenn sie nicht mehr benötigt werden.

1. Entfernen Sie lokale Ausgabedateien, wenn sie nicht mehr benötigt werden:

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

## Zugehörige Ressourcen
<a name="examples-flux2-related"></a>

Die folgenden Ressourcen bieten zusätzliche Informationen:
+ [Beispiel-Quellcode auf GitHub](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/flux2_klein_lora)
+ [FLUX.2Klein auf Hugging Face](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4B)
+ [Stellenbeschreibungsspezifikation öffnen](https://github.com/OpenJobDescription/openjd-specifications)
+ [Dokumentation zu Diffusoren](https://huggingface.co/docs/diffusers)
+ [Leitfaden zur Cloud-Architektur bis zum Stichtag](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/architecture-guidance.html)