View a markdown version of this page

FLUX.2 Klein LoRa Feinabstimmung und Bildgenerierung - Deadline Cloud

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 Klein LoRa Feinabstimmung und Bildgenerierung

Dieses Beispiel zeigt, wie ein FLUX.2 Klein-Bildgenerierungsmodell mithilfe von LoRa (Low-Rank Adaptation) optimiert und Bilder in großem Maßstab in Deadline Cloud generiert werden. Der Workflow trainiert einen leichten Adapter aus einem kleinen Bilddatensatz. Anschließend verwendet er diesen Adapter, um neue Bilder aus Textanfragen zu generieren, die alle als Deadline Cloud-Jobs auf einer GPU-Flotte orchestriert werden.

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

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

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

-Übersicht

Das Beispiel besteht aus zwei Jobpaketen:

  1. lora_training — Fine-tunes FLUX.2 Klein auf Ihrem Bilddatensatz mit LoRa, wobei eine Adapterdatei erzeugt wird. .safetensors

  2. image_generation — Lädt das Basismodell mit Ihrem trainierten Adapter und generiert Bilder aus Textanfragen. Bei der Generierung mehrerer Bilder erfolgt die Arbeit der einzelnen Mitarbeiter parallel.

LoRa ist eine parametereffiziente Methode zur Feinabstimmung, bei der ein kleiner Adapter trainiert wird, anstatt die gesamten Modellgewichte zu modifizieren. 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 Jobpakete verwenden die Diffusoren und linken Bibliotheken für Training und Inferenz.

Gehen Sie folgendermaßen vor, um dieses Beispiel abzuschließen:

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

  2. Bereiten Sie die Trainingsdaten vor.

  3. Reichen Sie den Trainingsjob ein.

  4. Reichen Sie den Job zur Bildgenerierung ein.

  5. Bereinigen Sie die Ressourcen.

Voraussetzungen

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+ Systemspeicher empfohlen).

  • Eine Warteschlange, die der GPU-Flotte zugeordnet ist.

  • Die Deadline Cloud-CLI ist auf Ihrer Workstation installiert.

  • 20—50 Trainingsbilder Ihres Probanden (.jpg, .png.jpeg, oder.webp).

Struktur des Jobpakets

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 die Trainingsdaten vor

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

  2. Fügen Sie optional zu jedem Bild eine .txt Untertiteldatei hinzu, um ein differenzierteres Training zu ermöglichen:

    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 Instance-Prompt-Parameters. Benutzerdefinierte Beschriftungen führen zu qualitativ hochwertigeren Ergebnissen, da sie dem Modell spezifischere Assoziationen zwischen Ihrem auslösenden Wort und visuellen Merkmalen vermitteln.

  3. Wählen Sie ein eindeutiges Triggerwort (z. B.). ohwx Dadurch wird das erlernte Konzept an ein Token gebunden, das nicht im Widerspruch zu vorhandenem Modellwissen steht.

Reichen Sie den Trainingsjob ein

Um den Ausbildungsjob einzureichen
  1. Navigieren Sie zu dem flux2_klein_lora Verzeichnis in Ihrem geklonten deadline-cloud-samples Repository.

  2. 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 einzureichen:

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

Parameter für das Training

Parameter für das Training
Parameter Description Standard
Modellversion flux.2-klein-base-4b oder flux.2-klein-4b flux.2-klein-base-4b
Pfad des Datensatzes Verzeichnis, das Trainingsbilder enthält Keine
Instance Prompt Text, der Ihr Thema beschreibt Keine
Auflösung Auflösung des Trainingsbildes in Pixeln 512
Netzwerk Dim LoRa-Rang (höher = mehr Kapazität) 16
Netzwerk Alpha LoRa-Alpha-Skalierungsfaktor 16
Maximale Trainingsschritte Anzahl der Trainingswiederholungen 1500
Ausgabeverzeichnis Wo kann man trainierte Gewichte speichern Keine

Trainingsausgaben

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

Senden Sie den Auftrag zur Image-Generierung

Um den Auftrag zur Image-Generierung einzureichen
  1. Navigieren Sie zu dem flux2_klein_lora Verzeichnis in Ihrem geklonten deadline-cloud-samples Repository.

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

    deadline bundle gui-submit ./image_generation

    Oder führen Sie den folgenden Befehl aus, um den Job zur Image-Generierung 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
  3. Überwachen Sie den Jobstatus in der Deadline Cloud-Konsole oder mithilfe des deadline job get Befehls.

Wenn NumImages der Wert größer als 1 ist, verteilt Deadline Cloud die Arbeit zur schnelleren Generierung auf mehrere Mitarbeiter.

Parameter für die Generierung

Parameter für die Generierung
Parameter Description Standard
LoRa-Pfad Pfad zur trainierten Datei .safetensors Keine
Prompt Textbeschreibung (einschließlich Ihres Triggerworts) Keine
Anzahl der Bilder Gesamtzahl der zu generierenden Bilder 1
Width Breite der Ausgabe in Pixeln 1024
Höhe Ausgabehöhe in Pixeln 1024
Schritte der Inferenz Anzahl der Schritte zur Rauschunterdrückung 50
Orientierungsskala Classifier-free Orientierungsskala 4,0

Leistung der Erzeugung

Bilder werden gespeichert unter image_0001.pngimage_0002.png, usw. Führen Sie den folgenden Befehl aus, um sie herunterzuladen:

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

Varianten des Modells

FLUX.2 Modellvarianten von Klein
Modell Parameters Am besten geeignet für
flux.2-klein-base-4b 4B Fine-tuning, gewerbliche Nutzung
flux.2-klein-4b 4B Schnelle Inferenz (4 Schritte zur Rauschunterdrückung)

Empfehlungen für das Training

Die folgenden Empfehlungen können dir helfen, die besten Ergebnisse zu erzielen:

  • Datensatzgröße — 20—50 qualitativ hochwertige Bilder eignen sich für die meisten Motive gut.

  • 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 die Anzahl, wenn die Ausgaben nicht Ihrem Motiv entsprechen.

  • Netzwerk-Dim — 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

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

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

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

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

    rm -rf /tmp/lora_output /tmp/generated_images

Die folgenden Ressourcen bieten zusätzliche Informationen: