Das ich mich schon länger mit Stablediffusion beschäftige und auch an dem neuen FLUX Modell Gefallen gefunden habe wollte ich hier einmal beschreiben wie ihr selber eine LoRa Erweiterung für FLUX.1 DEV erstellen könnt. Daher hier diese kleine Anleitung für Ubuntu die euch hoffentlich alles run um die Installation und Konfiguration erklärt. Wie ihr die Bilder für das Training aufbereitet und in einer *.txt Datei beschreibt werde ich hier nicht erklären.

Schritt für Schritt Anleitung der Software-Installation

Die jetzt folgenden Schritte beschreiben die Installation des AI-Toolkits auf einem Ubuntu Rechner in einer Anaconda Umgebung. Wie ihr Anaconda unter Unbuntu installiert habe ich hier beschrieben (Installation von Anaconda auf Ubuntu LTS Version).

Prüft bitte das ihr CUDA 12.X installiert habt. Ich habe die folgende Version bei mir installiert. Eine etwas ausführlichere Anleitung wie ihr CUDA installiert habe ich hier CUDA Treiber Installation unter Ubuntu veröffentlicht.

Jetzt folgt ihr am besten der Installation wenn ihr die einzelnen Befehle einen nach dem anderen ausführt. Jetzt wird mit git clone das AI-Toolkit von GitHub herunter geladen.

Befehl: git clone https://github.com/ostris/ai-toolkit.git

Als nächstes wechselst Du in den Ordner ai-toolkit

Befehl: cd ai-toolkit

Jetzt müssen mit dem folgenden git Befehl noch weitere notwendige Module installiert werden.

Befehl: git submodule update --init --recursive

Da ich immer Anaconda verwende für meine virtuellen Umgebungen werde ich das auch diesmal machen. Ob es die beste Lösung ist und die Abweichung zur offiziellen Installationsanleitung des AI-Toolkits an dieser Stelle wirklich gut ist müsst ihr selber beurteilen.

Befehl: conda create -y --name ai-toolkit python=3.11

Jetzt habt ihr eure Conda Umgebung soweit angelegt und müsst diese aktivieren.

Befehl: conda activate ai-toolkit

Jetzt seid ihr in der aktiven virtuellen Umgebung. Das erkennt ihr daran, dass am Anfang des Terminal-Fenster in Klammern ai-toolkit steht.

Im jetzt folgenden Schritt wird Torch und Torchvision mit Cuda 12.1 innerhalb der Conda Umgebung installiert. Die Installation dieser Pakete dauert etwas da ein paar GB an Daten herunter geladen werden müssen.

Befehl: pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121

Hier einmal ein Screenshot von meinem Ubuntu System nach der abgeschlossenen Installation des obingen Befehles.

Ostris - AI-Toolkit installation conda

Ostris – AI-Toolkit installation conda

Nach diesem Schritt sind soweit die Grundlagen geschaffen. Jetzt müssen noch die für das AI-Toolkit selber notwendingen Komponenten über die requirements.txt installiert werden. Diese Installation benötigt jetzt auch noch einmal etwas Zeit.

Befehl: pip install -r requirements.txt

Konfiguration des AI-Toolkits und starten des ersten LoRa Trainings

Jetzt müssen wir noch das AI-Toolkit einrichten. Dazu wechselt ihr zunächst einmal in den Installationsordner ai-toolkit/config/examples wenn ihr da nicht ohnehin schon seid. Dort kopiert ihr jetzt die Beispieldatei train_lora_flux_24gb.yaml Datei in den Ordner config der eine Ebene höher liegt.

Die folgenden drei Parameter solltest Du in der Konfigurtion anpassen. Alle andere Parameter habe ich so gelassen wie diese gesetzt waren.

# this name will be the folder and filename name
name: "<Gib hier den Namen ein wie Dein LoRa Modell heißen soll>"
….
….
# if a trigger word is specified, it will be added to captions of training data if it does not already exist
# alternatively, in your captions you can add [trigger] and it will be replaced with the trigger word
trigger_word: "<Gebe hier das Wort / den Begriff ein mit dem Du das LoRa Modell ansprechen möchtest>"
…..
…..
# “C:\\path\\to\\images\\folder”
- folder_path: "<Gib hier den Pfad zu Deinen Bildern mit der dazugehörigen beschreibenen *.txt Datei ein>"

Hinweis: Jedes Bild das ihr für das Training verwenden möchtet muss auch eine *.txt Datei mit gleichen Namen haben in dem der Inhalt des Bildes beschrieben ist.

Hier noch ein Bild der Konfigurationsdatei von mir mit den drei genannten Anpassungen.

Ostris AI Toolkit config

Ostris AI Toolkit config

Das war es soweit mit der Konfiguration und jetzt muss noch FLUX.1 DEV von Huggingface herunter geladen werden.

Huggingface API-Key

Damit das FLUX.1-DEV Modell automatisch von Huggingface herunter geladen wird muss noch der API Key von Huggingface gesetzt werden. Dazu legst Du im Installationsordner des ai-toolkit’s eine .env Datei an. In dieser legst Du eine Zeile wie folgt an.

HF_TOKEN=<Dein API Key>

Den API-Key bekommst Du wenn Du Dich bei Huggingface anmeldest und unter Deinen persönlichen Eintellungen auf “Access Tokens” links im Menü klickst. Dann klickst Du rechts oben auf “Create new token” und benennst den neu erzeugten Key mit einem sprechenden Namen.

Huggingface access token

Huggingface access token

Von der Berechtigungen habe ich nur die drei Haken gesetzt unter “Repositories”. Bei solchen Einstellungen gilt immer so wenig wie möglich setzen.

Huggingface access token permissions

Huggingface access token permissions

Jetzt sollte alles soweit konfiguriert sein das wir das Training starten können.

LoRa Training starten

Um das Training starten zu können muss der folgende Befehl im Terminal Fenster innerhalb des Installationsverzeichnisses ausgeführt werden. Wird das Training das erste Mal ausgeführt wird noch das FLUX Modell herunter geladen. Das dauert noch mal eine Zeit lang das es sich hier um ca. 22GB handelt. Da das Modell über den HuggingFace Hub Service herunter geladen wird findet ihr das Modell anschließend im Pfad /home/<Euer_Username>/.cache/huggingface/hub/models--black-forest-labs--FLUX.1-dev/.

Befehl: python run.py config/train_lora_flux_24gb.yaml

Jetzt sollte das Training starten. Bei mir hat es ca. 3 Std. gedauert wobei ich nicht wirklich die Zeit gestoppt hatte. Wenn das Training durchgelaufen ist dann findet ihr all trainierten LoRa Modelle im /ai-toolkit/output Verzeichnis. Dazu gehören auch die Modelle die alle 250 Schritte als ein Zwischenstand gespeichert wurden. Diese Einstellung ist wieder in der Konfiguration zu finden.

Zusammenfassung