

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# FLUX.2 Ottimizzazione e generazione di immagini Klein LoRa
<a name="flux2-klein-lora"></a>

Questo esempio dimostra come ottimizzare un modello di generazione di immagini FLUX.2 Klein utilizzando LoRa (Low-Rank Adaptation) e generare immagini su larga scala su Deadline Cloud. Il flusso di lavoro addestra un adattatore leggero a partire da un piccolo set di dati di immagini. Quindi utilizza quell'adattatore per generare nuove immagini a partire da istruzioni di testo, il tutto orchestrato come job di Deadline Cloud su una flotta di GPU.

[Il codice sorgente di questo esempio è disponibile nel repository deadline-cloud-samples su.](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/flux2_klein_lora) GitHub

Il video seguente mostra il flusso di lavoro di Klein LoRa su Deadline Cloud FLUX.2 .

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


**Tempo stimato:** 30-60 minuti (inclusi 15-45 minuti di allenamento).

## Panoramica di
<a name="examples-flux2-overview"></a>

L'esempio è costituito da due pacchetti di lavoro:

1. **lora\_training** — Fine-tunes [FLUX.2Klein](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4B) sul tuo set di dati di immagini usando [LoRa, producendo un file](https://huggingface.co/docs/peft/conceptual_guides/adapter#low-rank-adaptation-lora) adattatore. `.safetensors`

1. **image\_generation** — Carica il modello base con l'adattatore addestrato e genera immagini da istruzioni di testo. Quando si generano più immagini, il lavoro viene parallelizzato tra i lavoratori.

LoRa è una tecnica di regolazione fine efficiente in termini di parametri che addestra un piccolo adattatore invece di modificare i pesi completi del modello. Questo approccio rende l'allenamento veloce (15-45 minuti su una singola GPU) e l'adattatore risultante è portatile e facile da utilizzare.

I job bundle utilizzano le librerie [diffuser](https://github.com/huggingface/diffusers) e [left per l'addestramento e l'inferenza](https://github.com/huggingface/peft).

Per completare questo esempio, segui questi passaggi:

1. Completare i prerequisiti .

1. Preparare i dati di allenamento.

1. Invia il lavoro di formazione.

1. Invia il lavoro di generazione di immagini.

1. Eliminare le risorse.

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

Prima di iniziare, assicurati di disporre di:
+ Una cloud farm Deadline con una flotta di GPU (GPU NVIDIA A10GLinux, 13 GB\+ VRAM, 64 GiB\+ memoria di sistema consigliata).
+ Una coda associata alla flotta di GPU.
+ La CLI [Deadline Cloud](https://github.com/aws-deadline/deadline-cloud) installata sulla tua workstation.
+ 20-50 immagini di allenamento del soggetto (`.jpg`,,, `.png` o). `.jpeg` `.webp`

## Struttura del Job bundle
<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
```

## Preparare i dati di formazione
<a name="examples-flux2-training-data"></a>

**Per preparare i dati di allenamento**

1. Crea una cartella contenente immagini del soggetto. Per ottenere risultati ottimali, usa 20-50 immagini con pose, luci e sfondi diversi.

1. Facoltativamente, fornisci un file di `.txt` didascalie accanto a ciascuna immagine per una formazione più dettagliata:

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

   Se non sono presenti file di didascalie, lo script di formazione li genera automaticamente utilizzando il parametro instance prompt. Le didascalie personalizzate producono risultati di qualità superiore perché insegnano al modello associazioni più specifiche tra la parola chiave e le caratteristiche visive.

1. Scegliete una parola chiave univoca (ad esempio). `ohwx` Ciò lega il concetto appreso a un token che non è in conflitto con la conoscenza del modello esistente.

## Invia il lavoro di formazione
<a name="examples-flux2-submit-training"></a>

**Per inviare il lavoro di formazione**

1. Passa alla `flux2_klein_lora` directory del tuo repository clonato. `deadline-cloud-samples`

1. Per inviare il lavoro di formazione con la GUI, esegui il seguente comando:

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

   Oppure, per inviare il processo di formazione direttamente con la CLI, esegui il seguente comando:

   ```
   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. Monitora lo stato del lavoro nella console Deadline Cloud o utilizzando il `deadline job get` comando.

### Parametri di allenamento
<a name="examples-flux2-training-params"></a>


**Parametri di allenamento**  

| Parametro | Description | Predefinita | 
| --- | --- | --- | 
| Versioni del modello | flux.2-klein-base-4b o flux.2-klein-4b | flux.2-klein-base-4b | 
| Percorso del set di dati | Directory contenente immagini di allenamento | — | 
| Richiesta di istanza | Testo che descrive l'argomento | — | 
| Risoluzione | Risoluzione dell'immagine di addestramento in pixel | 512 | 
| Network Dim | Rango LoRa (più alto = maggiore capacità) | 16 | 
| Network Alpha | Fattore di scala LoRa alpha | 16 | 
| Numero massimo di fasi di allenamento | Numero di iterazioni di allenamento | 1500 | 
| Directory di output | Dove salvare i pesi allenati | — | 

### Output di addestramento
<a name="examples-flux2-training-output"></a>

Il lavoro di formazione produce i seguenti artefatti:
+ `flux2_klein_lora.safetensors`— L'adattatore LoRa addestrato con metadati incorporati.
+ Checkpoint salvati ogni 300 passaggi.

Per scaricare l'output al termine dell'allenamento, esegui il seguente comando:

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

## Inviate il processo di generazione dell'immagine
<a name="examples-flux2-submit-generation"></a>

**Per inviare il lavoro di generazione di immagini**

1. Vai alla `flux2_klein_lora` directory del tuo repository clonato. `deadline-cloud-samples`

1. Per inviare il processo di generazione dell'immagine con la GUI, esegui il seguente comando:

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

   Oppure, per inviare il processo di generazione dell'immagine direttamente con la CLI, esegui il seguente comando:

   ```
   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. Monitora lo stato del lavoro nella console Deadline Cloud o utilizzando il `deadline job get` comando.

Quando `NumImages` è maggiore di 1, Deadline Cloud distribuisce il lavoro tra più lavoratori per una generazione più rapida.

### Parametri di generazione
<a name="examples-flux2-generation-params"></a>


**Parametri di generazione**  

| Parametro | Description | Predefinita | 
| --- | --- | --- | 
| Percorso LoRa | Percorso del file addestrato .safetensors | — | 
| Prompt | Descrizione testuale (includi la parola chiave) | — | 
| Numero di immagini | Immagini totali da generare | 1 | 
| Larghezza | Larghezza di uscita in pixel | 1.024 | 
| Altezza | Altezza di uscita in pixel | 1.024 | 
| Fasi di inferenza | Numero di passaggi di riduzione del rumore | 50 | 
| Scala di orientamento | Classifier-free scala di orientamento | 4.0 | 

### Uscita di generazione
<a name="examples-flux2-generation-output"></a>

Le immagini vengono salvate come `image_0001.png``image_0002.png`, e così via. Per scaricarle, esegui il seguente comando:

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

## Varianti del modello
<a name="examples-flux2-model-variants"></a>


**FLUX.2 Varianti del modello Klein**  

| Modello | Parameters | Ideale per | 
| --- | --- | --- | 
| flux.2-klein-base-4b | 4B | Fine-tuning, uso commerciale | 
| flux.2-klein-4b | 4B | Inferenza rapida (4 fasi di denoising) | 

## Consigli per la formazione
<a name="examples-flux2-recommendations"></a>

I seguenti consigli possono aiutarti a ottenere i migliori risultati:
+ **Dimensioni del set** di dati: da 20 a 50 immagini di alta qualità funzionano bene per la maggior parte dei soggetti.
+ **Risoluzione**: usa 512 per GPU con 24 GB di VRAM. Le risoluzioni più elevate richiedono più memoria.
+ **Fasi dell'allenamento**: inizia con 1500. Aumenta se i risultati non assomigliano al soggetto.
+ **Network dim** — 16 è una buona impostazione predefinita. Usa 32 per concetti complessi o astratti.
+ **Tasso di apprendimento**: l'impostazione predefinita di 1e-4 funziona bene nella maggior parte dei casi.

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

Per evitare addebiti continui, ripulisci le risorse che hai creato per questo esempio:

**Per ripulire le risorse di esempio**

1. Nella console Deadline Cloud, interrompi o elimina la flotta di GPU che hai usato per questo esempio.

1. Elimina qualsiasi oggetto Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) creato dagli allegati del lavoro se non è più necessario.

1. Rimuovi i file di output locali se non sono più necessari:

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

## Risorse correlate
<a name="examples-flux2-related"></a>

Le seguenti risorse forniscono informazioni aggiuntive:
+ [Codice sorgente di esempio su GitHub](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/flux2_klein_lora)
+ [FLUX.2Klein su Hugging Face](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4B)
+ [Specifiche di Open Job Description](https://github.com/OpenJobDescription/openjd-specifications)
+ [Documentazione sui diffusori](https://huggingface.co/docs/diffusers)
+ [Guida all'architettura cloud di Deadline](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/architecture-guidance.html)