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
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.
Il video seguente mostra il flusso di lavoro di Klein LoRa su Deadline Cloud FLUX.2 .
Tempo stimato: 30-60 minuti (inclusi 15-45 minuti di allenamento).
Panoramica di
L'esempio è costituito da due pacchetti di lavoro:
-
lora_training — Fine-tunes FLUX.2Klein
sul tuo set di dati di immagini usando LoRa, producendo un file adattatore. .safetensors -
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
Per completare questo esempio, segui questi passaggi:
-
Completare i prerequisiti .
-
Preparare i dati di allenamento.
-
Invia il lavoro di formazione.
-
Invia il lavoro di generazione di immagini.
-
Eliminare le risorse.
Prerequisiti
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
installata sulla tua workstation. -
20-50 immagini di allenamento del soggetto (
.jpg,,,.pngo)..jpeg.webp
Struttura del Job bundle
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
Per preparare i dati di allenamento
-
Crea una cartella contenente immagini del soggetto. Per ottenere risultati ottimali, usa 20-50 immagini con pose, luci e sfondi diversi.
-
Facoltativamente, fornisci un file di
.txtdidascalie 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.
-
Scegliete una parola chiave univoca (ad esempio).
ohwxCiò lega il concetto appreso a un token che non è in conflitto con la conoscenza del modello esistente.
Invia il lavoro di formazione
Per inviare il lavoro di formazione
-
Passa alla
flux2_klein_loradirectory del tuo repository clonato.deadline-cloud-samples -
Per inviare il lavoro di formazione con la GUI, esegui il seguente comando:
deadline bundle gui-submit ./lora_trainingOppure, per inviare il processo di formazione direttamente con la CLI, esegui il seguente comando:
deadline bundle submit ./lora_training \ --queue-idgpu-queue-id\ --parameter DatasetPath=~/training_images \ --parameter InstancePrompt="a photo of ohwx dog" \ --parameter OutputDir=/tmp/lora_output \ --parameter MaxTrainSteps=1500 \ --parameter Resolution=512 -
Monitora lo stato del lavoro nella console Deadline Cloud o utilizzando il
deadline job getcomando.
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
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-idtraining-job-id\ --queue-idgpu-queue-id
Inviate il processo di generazione dell'immagine
Per inviare il lavoro di generazione di immagini
-
Vai alla
flux2_klein_loradirectory del tuo repository clonato.deadline-cloud-samples -
Per inviare il processo di generazione dell'immagine con la GUI, esegui il seguente comando:
deadline bundle gui-submit ./image_generationOppure, per inviare il processo di generazione dell'immagine direttamente con la CLI, esegui il seguente comando:
deadline bundle submit ./image_generation \ --queue-idgpu-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 -
Monitora lo stato del lavoro nella console Deadline Cloud o utilizzando il
deadline job getcomando.
Quando NumImages è maggiore di 1, Deadline Cloud distribuisce il lavoro tra più lavoratori per una generazione più rapida.
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
Le immagini vengono salvate come image_0001.pngimage_0002.png, e così via. Per scaricarle, esegui il seguente comando:
deadline job download-output \ --job-idgeneration-job-id\ --queue-idgpu-queue-id
Varianti del modello
| 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
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
Per evitare addebiti continui, ripulisci le risorse che hai creato per questo esempio:
Per ripulire le risorse di esempio
-
Nella console Deadline Cloud, interrompi o elimina la flotta di GPU che hai usato per questo esempio.
-
Elimina qualsiasi oggetto Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) creato dagli allegati del lavoro se non è più necessario.
-
Rimuovi i file di output locali se non sono più necessari:
rm -rf /tmp/lora_output /tmp/generated_images
Risorse correlate
Le seguenti risorse forniscono informazioni aggiuntive: