Jetzt bin ich an einem Punkt angekommen bei der Nutzung von Automatic1111 das ich auch etwas tiefer in die Konfiguration einsteige. Zu Beginn hatte ich Parameter beim Start der Software mit übergeben wie z. B. listen oder port. Aber es gibt noch viel mehr Möglichkeiten der Konfiguration um die eigene Hardware mit Automatic1111 auszureizen. Auf die Konfigurationen die ich selber ausprobiert habe gehe ich nachfolgend im Detail ein.
Multi-GPU Konfiguration
Hast Du in Deinem System mehrere NVIDIA GPUs verbaut so kannst Du festlegen auf welcher der GPUs die Prozesse für die Generierung der Bilder laufen sollen.
Hinweis: Es ist wichtig zu verstehen, dass ein Generierungsprozess nicht auf mehrere GPU aufgeteilt werden kann. Soll heißen ein Job läuft auf einer GPU und ist nicht multi GPU fähig.
Die Konfiguration beschreibe ich hier für Linux bzw. für Ubuntu aber auch unter Windows gibt es die gleichen Einstellungen aber dann eben in der entsprechenden *.bat Datei und nicht *.sh Datei.
Unter Ubuntu geht ihr jetzt in den Installationspfad von Automatic1111 und öffnet die Datei webui-user.sh
. In dieser Datei sucht ihr nach der Zeile #export COMMANDLINE_ARGS=""
. Diese Zeile ändert ihr z. B. wie folgt ab das der Rechenjob von Automatic1111 auf der GPU 1 läuft wenn ihr zwei Grafikkarten in eurem System verbaut habt. Bei mir als zwei Grafikkarten zählt ihr einfach hoch. In dem nachfolgenden Bild habe ich zwei gelbe Pfeile eingefügt die euch zeigen wie ihr auf die GPU ID kommt. Die Nummerierung startet mit 0, 1, 2, 3, usw.
Die angepasste Zeile sieht dann für die GPU 1 wie folgt aus: export COMMANDLINE_ARGS="--device-id=1"
Im jetzt folgenden Bild seht ihr das der Job für die Generierung der Bilder auf der GPU 1 läuft.
Hinweis: Ich hatte Probleme wenn ich mehrere Jobs auf der GPU 1 habe laufen lassen das PyTorch den Speicher nicht mehr frei gegeben hat. Das hatte ich so wenn die GPU 0 genutzt wird also die default Einstellung nicht bemerkt. Ich hatte hier dann allerdings auch nicht weiter geforscht warum und wieso das Verhalten so ist.
Automatisch starten
Da ich mich nicht immer am PC anmelden möchte um Automatic1111 zu starten habe ich mir ein kleines Shell Skript geschrieben welches genau diesen Startvorgang für mich vornimmt. Dazu bitte das folgende Start Skript auf dem Rechner in einem Ordner mit z. B. dem Namen scripts
anlegen. In diesem Ordner jetzt eine Datei mit dem Namen autostart_automatic1111.sh
ablegen. Nachfolgend jetzt die Befehle für das Terminal.
Befehl: mkdir ~/script
Befehl: cd ~/script
Befehl: nano autostart_automatic1111.sh
Hinweis: Achtet jetzt bitte im nachfolgenden Abschnitt darauf das ihr <user_name>
durch euren Usernamen des Linux-Systems erstezt. Sonst funktioniert das Start Skript nicht.
Jetzt müssen die nachfolgenden Zeilen in das Skript autostart_automatic1111.sh
eingefügt werden.
#!/bin/bash
# Autor: Ingmar Stapel
# Date: 20230501
# This script starts Automatic1111 in an Anaconda virtual environment
source /home/<user_name>/anaconda3/bin/activate stable-diffusion >> /home/<user_name>/stable-diffusion-anaconda.log 2>&1 &
sleep 1
bash /home/<user_name>/stable-diffusion-webui/webui.sh --listen --port 7860 >> /home/<user_name>/stable-diffusion-webui.log 2>&1 &
Anschließend die Datei abspeichern und die Dateirechte so ändern das diese ausgeführt werden kann.
Befehl: chmod +x autostart_automatic1111.sh
Jetzt muss noch ein Eintrag in der crontab
vorgenommen werden damit das Skript auch nach jedem Neustart ausgeführt wird. Dazu einfach einmal mit dem folgenden Befehl die crontab
öffnen.
Befehl: sudo nano /etc/crontab
Hier jetzt die folgende Zeile einfügen damit das Skript auch gestatet wird.
@reboot <user_name> /usr/bin/bash /home/<user_name>/start_stable_diffusion.sh >> /home/<user_name>/stable-diffusion-crontab.log 2>&1 &
Wenn ihr jetzt den Rechner neustartet sollte Automatic1111 automatisch starten. Wenn das nicht der Fall ist, dann könnt ihr in den beiden Log-Dateien nachlesen die einmal vom Start-Skript und einmal vom crontab Prozess angelegt werden. Diese beiden Log-Dateien findet ihr im User-Verzeichni auf eurem System mit den Namen stable-diffusion-webui.log
und stable-diffusion-crontab.log
Artikelübersicht - Stable Diffusion:
Stable Diffusion - AUTOMATIC1111 Ubuntu Installation Teil 1/2Stable Diffusion - AUTOMATIC1111 Ubuntu Installation Teil 2/2
Stable Diffusion - Bilder lokal generieren mit Prompt Beispielen
Stable Diffusion - AUTOMATIC1111 Experten Konfiguration
Stable Diffusion - Dreambooth Training Finetuning einrichten Teil 1/2
Stable Diffusion - Dreambooth Training Finetuning ausführen Teil 2/2
Hallo, ich habe ihre Anleitung befolgt und bekomme im letzten Schritt leider immer folgende Meldung im Terminal: bash <(wget -qO-…
Hi Dennis, vielen Dank für den Hinweis, ich habe die URLs angepasst so das diese wieder gehen. Ich bin gespannt…
Ich weiss, es ist noch im Aufbau. Aber hier ist ein Broken Link: https://www.ai-box.eu/smurf_training_data_small.zip Freue mich drauf, die ganze Serie…