

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# FLUX.2 Réglage fin et génération d'images Klein LoRa
<a name="flux2-klein-lora"></a>

Cet exemple montre comment affiner un modèle de génération d'images FLUX.2 Klein à l'aide de LoRa (Low-Rank Adaptation) et comment générer des images à grande échelle sur Deadline Cloud. Le flux de travail entraîne un adaptateur léger à partir d'un petit jeu de données d'images. Il utilise ensuite cet adaptateur pour générer de nouvelles images à partir d'instructions textuelles, toutes orchestrées sous forme de tâches Deadline Cloud sur un parc de processeurs graphiques.

Le code source de cet exemple est disponible dans le référentiel [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/flux2_klein_lora) sur. GitHub

La vidéo suivante montre le flux de travail FLUX.2 Klein LoRa sur Deadline Cloud.

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


**Durée estimée :** 30 à 60 minutes (dont 15 à 45 minutes d'entraînement).

## Présentation de
<a name="examples-flux2-overview"></a>

L'exemple comprend deux ensembles de tâches :

1. **lora\_training** — Fine-tunes [FLUX.2Klein](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4B) sur votre jeu de données d'images à l'aide de [LoRa, produisant un](https://huggingface.co/docs/peft/conceptual_guides/adapter#low-rank-adaptation-lora) `.safetensors` fichier adaptateur.

1. **image\_generation** — Charge le modèle de base avec votre adaptateur entraîné et génère des images à partir de messages texte. Lors de la génération de plusieurs images, le travail est parallélisé entre les collaborateurs.

LoRa est une technique de réglage fin efficace en termes de paramètres qui entraîne un petit adaptateur au lieu de modifier le poids complet du modèle. Cette approche accélère l'entraînement (15 à 45 minutes sur un seul GPU) et rend l'adaptateur portable et facile à modifier.

Les ensembles de tâches utilisent les [diffuseurs](https://github.com/huggingface/diffusers) et les bibliothèques de [gauche à des fins de](https://github.com/huggingface/peft) formation et d'inférence.

Pour compléter cet exemple, procédez comme suit :

1. Respectez les conditions préalables de .

1. Préparez les données d'entraînement.

1. Soumettez le poste de formation.

1. Soumettez le travail de génération d'images.

1. nettoyer les ressources.

## Conditions préalables
<a name="examples-flux2-prerequisites"></a>

Avant de commencer, assurez-vous de disposer des éléments suivants :
+ Une ferme Deadline Cloud avec un parc de processeurs graphiques (LinuxGPU NVIDIA A10G, 13 Go de VRAM ou plus, 64 Go de mémoire système recommandés).
+ Une file d'attente associée au parc de GPU.
+ La [CLI Deadline Cloud](https://github.com/aws-deadline/deadline-cloud) installée sur votre poste de travail.
+ 20 à 50 images d'entraînement de votre sujet (`.jpg`, `.png``.jpeg`, ou`.webp`).

## Structure du lot de tâches
<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
```

## Préparer les données d'entraînement
<a name="examples-flux2-training-data"></a>

**Pour préparer vos données d'entraînement**

1. Créez un répertoire contenant des images de votre sujet. Pour de meilleurs résultats, utilisez 20 à 50 images avec des poses, des éclairages et des arrière-plans variés.

1. Vous pouvez éventuellement fournir un fichier de `.txt` légende à côté de chaque image pour un apprentissage plus nuancé :

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

   Si aucun fichier de sous-titrage n'est présent, le script d'apprentissage les génère automatiquement à l'aide du paramètre instance prompt. Les légendes personnalisées produisent des résultats de meilleure qualité car elles enseignent au modèle des associations plus spécifiques entre le mot déclencheur et les caractéristiques visuelles.

1. Choisissez un mot déclencheur unique (tel que`ohwx`). Cela lie le concept appris à un jeton qui n'entre pas en conflit avec les connaissances existantes sur les modèles.

## Soumettre le poste de formation
<a name="examples-flux2-submit-training"></a>

**Pour soumettre le poste de formation**

1. Accédez au `flux2_klein_lora` répertoire de votre `deadline-cloud-samples` dépôt cloné.

1. Pour soumettre le travail de formation à l'aide de l'interface graphique, exécutez la commande suivante :

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

   Ou, pour soumettre le travail de formation directement à l'aide de la CLI, exécutez la commande suivante :

   ```
   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. Surveillez l'état de la tâche dans la console Deadline Cloud ou à l'aide de la `deadline job get` commande.

### Paramètres d'entraînement
<a name="examples-flux2-training-params"></a>


**Paramètres d'entraînement**  

| Paramètre | Description | Par défaut | 
| --- | --- | --- | 
| Version de modèle | flux.2-klein-base-4b ou flux.2-klein-4b | flux.2-klein-base-4b | 
| Chemin du jeu de données | Répertoire contenant des images de formation | — | 
| Invite d'instance | Texte décrivant votre sujet | — | 
| Résolution | Résolution de l'image d'entraînement en pixels | 512 | 
| Réseau Dim | Rang LoRa (plus élevé = plus de capacité) | 16 | 
| Réseau Alpha | Facteur d'échelle LoRa alpha | 16 | 
| Nombre maximal d'étapes d'entraînement | Nombre d'itérations de formation | 1 500 | 
| Répertoire de sortie | Où économiser des poids entraînés | — | 

### Sortie de l'entraînement
<a name="examples-flux2-training-output"></a>

La tâche de formation produit les artefacts suivants :
+ `flux2_klein_lora.safetensors`— L'adaptateur LoRa entraîné avec métadonnées intégrées.
+ Points de contrôle enregistrés toutes les 300 étapes.

Pour télécharger le résultat une fois l'entraînement terminé, exécutez la commande suivante :

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

## Soumettre la tâche de génération d'images
<a name="examples-flux2-submit-generation"></a>

**Pour soumettre la tâche de génération d'images**

1. Accédez au `flux2_klein_lora` répertoire de votre `deadline-cloud-samples` dépôt cloné.

1. Pour soumettre la tâche de génération d'image à l'aide de l'interface graphique, exécutez la commande suivante :

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

   Ou, pour soumettre la tâche de génération d'image directement à l'aide de la CLI, exécutez la commande suivante :

   ```
   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. Surveillez l'état de la tâche dans la console Deadline Cloud ou à l'aide de la `deadline job get` commande.

Lorsque cette `NumImages` valeur est supérieure à 1, Deadline Cloud répartit le travail entre plusieurs collaborateurs pour une génération plus rapide.

### Paramètres de génération
<a name="examples-flux2-generation-params"></a>


**Paramètres de génération**  

| Paramètre | Description | Par défaut | 
| --- | --- | --- | 
| Sentier LoRa | Chemin d'accès au .safetensors fichier entraîné | — | 
| Invite | Description du texte (incluez votre mot déclencheur) | — | 
| Nombre d'images | Nombre total d'images à générer | 1 | 
| Width | Largeur de sortie en pixels | 1 024 | 
| Height | Hauteur de sortie en pixels | 1 024 | 
| Étapes d'inférence | Nombre d'étapes de débruitage | 50 | 
| Échelle de guidage | Classifier-free échelle de guidage | 4.0 | 

### Sortie de génération
<a name="examples-flux2-generation-output"></a>

Les images sont enregistrées au `image_0001.png` format,`image_0002.png`, et ainsi de suite. Pour les télécharger, exécutez la commande suivante :

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

## Variantes du modèle
<a name="examples-flux2-model-variants"></a>


**FLUX.2 Variantes du modèle Klein**  

| Modèle | Parameters | Idéal pour | 
| --- | --- | --- | 
| flux.2-klein-base-4b | 4B | Fine-tuning, usage commercial | 
| flux.2-klein-4b | 4B | Inférence rapide (4 étapes de débruitage) | 

## Recommandations en matière de formation
<a name="examples-flux2-recommendations"></a>

Les recommandations suivantes peuvent vous aider à obtenir les meilleurs résultats :
+ **Taille du jeu de données** : 20 à 50 images de haute qualité conviennent à la plupart des sujets.
+ **Résolution** — Utilisez 512 pour les GPU dotés de 24 Go de VRAM. Les résolutions plus élevées nécessitent plus de mémoire.
+ **Étapes de formation** — Commencez par 1500. Augmentez si les sorties ne ressemblent pas à votre sujet.
+ **Network dim** — 16 est une bonne valeur par défaut. Utilisez 32 pour les concepts complexes ou abstraits.
+ **Taux d'apprentissage** — La valeur par défaut de 1e-4 fonctionne bien dans la plupart des cas.

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

Pour éviter des frais récurrents, nettoyez les ressources que vous avez créées pour cet exemple :

**Pour nettoyer les exemples de ressources**

1. Dans la console Deadline Cloud, arrêtez ou supprimez le parc de GPU que vous avez utilisé pour cet exemple.

1. Supprimez tous les objets Amazon Simple Storage Service (Amazon S3) créés par des pièces jointes à des tâches s'ils ne sont plus nécessaires.

1. Supprimez les fichiers de sortie locaux s'ils ne sont plus nécessaires :

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

## Ressources connexes
<a name="examples-flux2-related"></a>

Les ressources suivantes fournissent des informations supplémentaires :
+ [Exemple de code source sur GitHub](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/flux2_klein_lora)
+ [FLUX.2Klein sur Hugging Face](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4B)
+ [Spécification de la description du poste ouvert](https://github.com/OpenJobDescription/openjd-specifications)
+ [Documentation sur les diffuseurs](https://huggingface.co/docs/diffusers)
+ [Conseils sur l'architecture cloud de Deadline](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/architecture-guidance.html)