View a markdown version of this page

FLUX.2 Ottimizzazione e generazione di immagini di Klein LoRa - Deadline Cloud

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 di 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 da un set di dati di immagini di piccole dimensioni. Quindi utilizza tale adattatore per generare nuove immagini a partire dai prompt di testo, il tutto orchestrato come job Deadline Cloud su una flotta di GPU.

Il codice sorgente per 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 Klein LoRa su Deadline Cloud FLUX.2 .

Tempo stimato: 30-60 minuti (inclusi 15-45 minuti per la formazione).

Panoramica di

L'esempio è costituito da due pacchetti di offerte di lavoro:

  1. lora_training — Fine-tunes FLUX.2 Klein sul set di dati di immagini utilizzando LoRa, producendo un file adattatore. .safetensors

  2. image_generation — Carica il modello base con l'adattatore addestrato e genera immagini a partire da istruzioni di testo. Quando si generano più immagini, il lavoro viene parallelizzato tra i lavoratori.

LoRa è una tecnica di messa a punto efficiente dal punto di vista dei parametri che addestra un piccolo adattatore invece di modificare i pesi dell'intero modello. Questo approccio rende l'addestramento rapido (15-45 minuti su una singola GPU) e l'adattatore risultante è portatile e facile da modificare.

I job bundle utilizzano i diffusori e le librerie left per l'addestramento e l'inferenza.

Per completare questo esempio, segui questi passaggi:

  1. Completare i prerequisiti .

  2. Prepara i dati di allenamento.

  3. Invia il lavoro di formazione.

  4. Invia il lavoro di generazione delle immagini.

  5. Eliminare le risorse.

Prerequisiti

Prima di iniziare, assicurati di disporre di:

  • Una farm Deadline Cloud con una flotta di GPU (si consiglia una GPU NVIDIA A10GLinux, 13 GB+ di VRAM, 64 GiB+ di memoria di sistema).

  • Una coda associata al parco GPU.

  • L'interfaccia a riga di comando di Deadline Cloud installata sulla tua workstation.

  • 20-50 immagini di allenamento del soggetto (.jpg,.png, .jpeg o). .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
  1. Crea una cartella contenente le immagini del soggetto. Per ottenere risultati ottimali, utilizza 20-50 immagini con pose, illuminazione e sfondi diversi.

  2. Facoltativamente, fornisci un file di .txt didascalie insieme 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 training 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.

  3. Scegli 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

Per inviare il lavoro di formazione
  1. Accedi alla flux2_klein_lora directory nel tuo repository clonato. deadline-cloud-samples

  2. Per inviare il job di formazione con la GUI, eseguite il comando seguente:

    deadline bundle gui-submit ./lora_training

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

    deadline bundle submit ./lora_training \ --queue-id gpu-queue-id \ --parameter DatasetPath="$HOME/training_images" \ --parameter InstancePrompt="a photo of ohwx dog" \ --parameter OutputDir=/tmp/lora_output \ --parameter MaxTrainSteps=1500 \ --parameter Resolution=512
  3. Monitora lo stato del lavoro nella console Deadline Cloud o utilizzando il deadline job get comando.

Parametri di formazione

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 Nessuno
Richiesta di istanza Testo che descrive l'argomento Nessuno
Risoluzione Risoluzione dell'immagine di allenamento in pixel 512
Rete Dim Rango LoRa (più alto = maggiore capacità) 16
Rete Alpha Fattore di scala alfa LoRa 16
Fasi massime di allenamento Numero di iterazioni di allenamento 1500
Directory di output Dove salvare i pesi allenati Nessuno

Output di addestramento

Il lavoro di addestramento produce i seguenti artefatti:

  • flux2_klein_lora.safetensors— L'adattatore LoRa addestrato con metadati incorporati.

  • Punti di controllo salvati ogni 300 passaggi.

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

deadline job download-output \ --job-id training-job-id \ --queue-id gpu-queue-id

Invia il processo di generazione delle immagini

Per inviare il processo di generazione delle immagini
  1. Accedi alla flux2_klein_lora directory nel tuo repository clonato. deadline-cloud-samples

  2. Per inviare il processo di generazione delle immagini con la GUI, eseguite il comando seguente:

    deadline bundle gui-submit ./image_generation

    Oppure, per inviare il lavoro 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
  3. 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

Parametri di generazione
Parametro Description Predefinita
Percorso LoRa Percorso del file addestrato .safetensors Nessuno
Prompt Descrizione testuale (includi la parola chiave) Nessuno
Numero di immagini Totale delle immagini da generare 1
Larghezza Larghezza di output in pixel 1.024
Altezza Altezza di output in pixel 1.024
Fasi di inferenza Numero di fasi 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 comando seguente:

deadline job download-output \ --job-id generation-job-id \ --queue-id gpu-queue-id

Varianti del modello

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 riduzione del rumore)

Consigli per la formazione

I seguenti consigli possono aiutarti a ottenere i migliori risultati:

  • Dimensioni del set di dati: 20-50 immagini di alta qualità sono adatte alla maggior parte dei soggetti.

  • Risoluzione: utilizza 512 per le GPU con 24 GB di VRAM. Risoluzioni più elevate richiedono più memoria.

  • Fasi dell'allenamento: inizia con 1500. Aumentate se le immagini non assomigliano al soggetto.

  • Diminuzione della rete: 16 è un valore predefinito valido. Usa 32 per concetti complessi o astratti.

  • Velocità di apprendimento: l'impostazione predefinita 1e-4 funziona bene nella maggior parte dei casi.

Eliminazione

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

Per ripulire le risorse di esempio
  1. Nella console Deadline Cloud, interrompi o elimina il parco di GPU che hai utilizzato per questo esempio.

  2. Elimina tutti gli oggetti Amazon Simple Storage Service (Amazon S3) creati dagli allegati di lavoro se non sono più necessari.

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

    rm -rf /tmp/lora_output /tmp/generated_images

Le seguenti risorse forniscono informazioni aggiuntive: