Bildmontage
Bilder-KI Stable Diffusion lokal installieren und betreiben
Es gibt zahlreiche Bilder-KIs im Internet, doch man hat bei Midjourney & Co. nur wenige Versuche frei, bevor man bezahlen muss. Mit Stable Diffusion kann die ganze Familie spielerisch den Umgang mit bilderzeugender künstlicher Intelligenz erlernen. Dafür genügt sogar ein ausrangierter Spiele-PC oder ein älteres Gaming-Notebook.
Wie sag ichs nur der KI? Der Umgang mit bilderzeugender künstlicher Intelligenz will gelernt sein, es liegen oft nur wenige Wörter zwischen einer tollen Illustration für eine PowerPoint-Präsentation und einer albtraumhaften Dystopie. Mit dem Open-Source-Tool Stable Diffusion WebUI, ohne Cloud-Anbindung im eigenen Heimnetz installiert, kann die ganze Familie nach Herzenslust Bilder generieren und Erfahrungen im Umgang mit der KI sammeln, ohne dass Sie dafür Abonnements abschließen oder Cloud-Server anmieten müssen.
Dank neuer, auf Größe optimierter KI-Modelle genügt für den Betrieb einer Bildgenerator-KI inzwischen ein ausrangierter Spiele-PC oder Mac. Wie Sie StableDiffusion unter Windows und Linux installieren, erfahren Sie nachfolgend in diesem Artikel. Apple-Besitzer sollten zu Seite 58 weiterblättern, dort stellen wir die App Draw Things für Macs, iPhones und iPads vor, die Sie kostenlos in Apples Stores herunterladen und mit den gleichen KI-Modellen und Optionen betreiben können wie Stable Diffusion auf dem PC. Ab Seite 60 erklären wir, wie Sie schon mit wenigen Worten und den richtigen Einstellungen tolle Bilder erhalten und die Formulierungen so wählen, dass das Ergebnis zu Ihren Wünschen passt.
Für den Anfang genügt sogar ein betagter Gaming-Rechner. Der Knackpunkt ist die Grafikkarte, denn die GPU und der besonders schnell angebundene Grafikkartenspeicher tragen die Hauptlast für die nötige Rechenarbeit. Selbst sechs Jahre alte Grafikkarten wie die Nvidia GTX-1070Ti sind um den Faktor 80 bis 100 schneller als eine CPU.
Sofern in Ihrem Rechner eine GeForce- oder Radeon-Grafikkarte mit mindestens 4 GByte Video-RAM steckt und er mindestens 8 GByte RAM hat, ist er für Stable Diffusion geeignet. Künftig dürften sogar 2 GByte Grafikkartenspeicher ausreichen. Wie viel mehr Leistung Sie mit mehr Grafikspeicher erwarten dürfen, haben wir ab Seite 64 verglichen.
Gut vorbereitet
Stable Diffusion ist in Python geschrieben, wir empfehlen die Version mit WebUI, die im GitHub-Repository von Automatic1111 gepflegt und mit Python Version 3.10.6 weiterentwickelt wird. Für die Installation benötigen Sie deshalb Python 3.10 und eine aktuelle Version von Git. Die Download-Links für Windows finden Sie auf ct.de/yhyk. Außerdem muss unter Windows Microsoft Visual C++ Redistributable für Visual Studio 2022 (siehe ct.de/yhyk) installiert sein. Meist ist das schon der Fall, da sehr viele Programme die gleiche C++-Runtime verwenden.
Unter Linux bedienen Sie sich in der Paketverwaltung, sofern Python nicht ohnehin standardmäßig installiert ist. Bei kleinen Versionsunterschieden, etwa Python 3.10.9 statt 3.10.6, können Sie die Installation auch ohne Anpassung riskieren. Haben Sie eine andere Major-Version, müssen Sie die Version 3.10 nachinstallieren.
Unter Linux benötigen Sie außerdem das virtuelle Python-Environment venv, das Sie meist unter dem Namen „python3-venv“ in der Paketverwaltung finden.
Aufgespielt
Die von den Entwicklern vorgesehene Methode zur Installation von Stable Diffusion WebUI ist, lediglich das Skript webui.sh für Linux beziehungsweise webui.bat für Windows herunterzuladen und direkt auszuführen. Dieses soll dann automatisch das Git-Repository klonen und die für den jeweiligen Grafikkartentreiber benötigte Version des PyTorch-Frameworks ermitteln, das für die Kommunikation mit dem Grafiktreiber zuständig ist und die Berechnungen von der GPU durchführen lässt. Unter Linux versagte das Installationsskript in unseren Tests jedoch häufig bei der Versionsbestimmung, weshalb wir empfehlen, die Version von Hand zu bestimmen und den notwendigen Installationsbefehl in die Konfigurationsdatei einzutragen. Dazu klonen Sie zunächst das komplette Git-Repository, indem Sie folgenden Befehl unter Linux im Terminal und unter Windows in der mit Git zusammen installierten Shell eingeben:
git clone https://github.com/automatic1111/stable-diffusion-webui.git
Damit landet die neueste Version von Stable Diffusion WebUI im Unterverzeichnis stable-diffusion-webui des aktuellen Verzeichnisses.
Die Konfiguration der Software erfolgt über verschiedene Umgebungsvariablen, unter Windows setzen Sie diese in der Datei webui-user.bat und unter Linux in der Datei webui-user.sh.
Radeon für Linux
Welche Torch-Version installiert wird, legen Sie mit der Variablen TORCH_COMMAND fest – dort tragen Sie den Installationsbefehl ein. Wie dieser Befehl lautet, finden Sie über die Versionsmatrix auf der Seite pytorch.org unter „Get Started“ heraus; er ist von Grafikkarte, Grafiktreiber und Betriebssystem abhängig.
Die kniffligste Frage ist die nach der „Compute Platform“: Bei Radeon-Grafikkarten wählen Sie hier „ROCm“ (Radeon Open Compute Platform) aus, allerdings gab es diese Bibliothek bei Redaktionsschluss noch nicht für Windows. Wer eine Radeon-Grafikkarte hat, muss für Stable Diffusion WebUI also derzeit noch Linux installieren.
Den Installationsbefehl tragen Sie in Anführungszeichen in der Datei webui-user.sh hinter TORCH_COMMAND= ein, ändern pip3 install jedoch in pip install. Danach entfernen Sie das Kommentarzeichen (Raute) am Anfang der Zeile.
Für den Betrieb benötigen Sie in jedem Fall den proprietären Radeon-Treiber von AMD, den Sie auf amd.com/en/support finden. Für Ubuntu spielen Sie mit den folgenden Befehlen das DEB-Paket von der AMD-Website ein, aktualisieren die Paketverwaltung und installieren dann den Treiber:
sudo dpkg -i ~/Downloads/amdgpu-install*.deb sudo apt update sudo amdgpu-install --usecase=dkms,graphics,rocm,rocmdevtools,hip,hiplibsdk,mllib,mlsdk
Nach einem Neustart des Rechners sollte Ihnen der Befehl rocminfo ohne Root-Rechte die technischen Daten Ihrer Radeon-Grafikkarte anzeigen. Klappt das nicht, liegt das meist daran, dass Sie nicht zu den Gruppen „video“ und „render“ gehören. Das holen Sie mit folgendem Befehl nach:
sudo usermod -a -G \ render,video $LOGNAME
Danach müssen Sie noch einmal neu starten. Mit rocminfo | grep Name ermitteln Sie die Architektur Ihrer Grafikkarte. Suchen Sie nach einer Angabe wie gfx90c oder gfx1031. Daraus leiten Sie die Architekturversion ab: Aus gfx90c wird Version 9.0.0 und aus gfx1031 die Version 10.3.0 – die letzte Stelle dürfen Sie also ignorieren. Diese Versionsnummer setzen Sie unterhalb der TORCH_COMMAND-Befehlszeile als zusätzliche Umgebungsvariable:
export HSA_OVERRIDE_GFX_VERSION=10.3.0
Außerdem müssen Sie mit folgender Umgebungsvariable verhindern, dass der Speicher der Grafikkarte zu stark fragmentiert und die Bildverarbeitung deshalb abbricht:
export PYTORCH_HIP_ALLOC_CONF="max_split_size_mb:512"
Bei der Variablen COMMANDLINE_ARGS müssen Sie ebenfalls einige Parameter ergänzen:
export COMMANDLINE_ARGS="--skip-torch-cuda-test --no-half"
Der erste Parameter überspringt die sonst obligatorische Suche nach einer Nvidia-Grafikkarte, der andere erzwingt 32-Bit-Fließkommaberechnungen.
Nvidia für alle
Auch bei Nvidia-Grafikkarten benötigen Sie in jedem Fall den (proprietären) Treiber des Herstellers. Windows-Anwender laden ihn direkt von der Nvidia-Website herunter, Linux-Nutzer hingegen bemühen die Paketverwaltung ihrer Distribution. Unter Ubuntu finden Sie den proprietären Nvidia-Treiber zum Beispiel unter „Zusätzliche Treiber“. Hat die Installation geklappt und Sie haben den Rechner neu gestartet, muss das Kommando nvidia-smi sowohl unter Windows wie unter Linux die Temperatur und die Auslastung Ihrer Grafikkarte anzeigen – und außerdem rechts oben die CUDA-Version des Treibers.
Die angezeigte CUDA-Version (Compute Unified Device Architecture) ist entscheidend dafür, wie das PyTorch-Installationskommando lautet. Die Matrix auf der Homepage des PyTorch-Projekts listet nur die aktuelle stabile Torch-Version sowie die letzten beiden unterstützten CUDA-Versionen auf. Unmittelbar oberhalb der Matrix finden Sie aber den Link zu älteren PyTorch-Versionen. Dort ist auch der Installationsbefehl für Torch Version 1.13.1 mit CUDA Version 11.7 aufgelistet, die Sie später für die Optimierungs-Bibliothek Xformers benötigen – PyTorch 2.0.0 mit CUDA 11.8 wurde bei Redaktionsschluss noch nicht unterstützt.
Sollten Sie keinen Befehl für Ihre CUDA-Version finden, dann versuchen Sie es zunächst mit dem Befehl für die vorherige oder vorletzte Version. Für CUDA 12 empfehlen wir PyTorch 1.13.1 mit CUDA 11.7. Der Befehl muss auf jedem Fall mit pip3 install beginnen, sonst wurde die falsche Programmiersprache ausgewählt. Wichtig, unter Linux müssen Sie pip3 install in pip install abändern. Tragen Sie den Installationsbefehl unter Windows in der Datei webui-user.bat hinter TORCH_COMMAND= ein. Unter Linux ist es die Datei webui-user.sh, wo Sie bereits ein Beispiel für TORCH_COMMAND finden, das Sie lediglich anpassen müssen. Bevor Sie speichern, entfernen Sie noch das Kommentarzeichen (Raute) am Anfang der Zeile. Für PyTorch 1.13.1 mit CUDA 11.7 lautet der Eintrag unter Linux:
export TORCH_COMMAND="pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117"
Startschuss
Damit sind die Vorbereitungen abgeschlossen. Rufen Sie im Verzeichnis stable-diffusion-webui das Start-Skript auf – unter Linux mit dem Befehl ./webui.sh, unter Windows mit webui-user.bat.
Das Start-Skript erledigt die Installation und prüft außerdem bei jedem Start aufs Neue, ob alle benötigten Komponenten an Bord sind. Das dauert beim ersten Aufruf extrem lange, da hier große Datenmengen heruntergeladen werden – über 5 GByte für Stable Diffusion mit allen erforderlichen Komponenten. Hinzu kommen mindestens 4 GByte für das Unterverzeichnis models/Stable-diffusion mit den KI-Modellen, in dem auch das Standard-KI-Modell Version 1.5 landet. Hat alles geklappt, meldet Stable Diffusion, dass es auf dem lokalen Host auf Port 7860 lauscht:
Running on local URL: http://127.0.0.1:7860
Von Hand eingreifen müssen Sie üblicherweise nur, wenn Sie zum Beispiel die Grafikkarte wechseln oder die CUDA-Version nach einem Treiberupdate nicht mehr passt. Dann müssen Sie den Befehl zur Installation von PyTorch an die neue CUDA-Version anpassen und anschließend Stable Diffusion einmalig mit dem Parameter --reinstall-torch aufrufen, um die geänderte Torch-Version zu installieren. Dieser Parameter ist auch hilfreich, wenn Sie kein exakt zur CUDA-Version passendes PyTorch finden konnten und deshalb mit einer niedrigeren oder höheren Versionsnummer experimentieren müssen.
Ab ins Netz
Stable Diffusion berücksichtigt sowohl die beim Aufruf übergebenen Parameter wie auch die, die Sie in der Variablen COMMANDLINE_ARGS eingetragen haben – etwa jene für AMD-Grafikkarten. Ohne Parameter aufgerufen lauscht das Web-Frontend von Stable Diffusion lediglich auf der lokalen IP-Adresse. Damit es auch aus dem Heimnetz erreichbar ist, ergänzen Sie den Parameter --listen. So kann die ganze Familie mit der Bilder-KI experimentieren.
Mit weiteren Parametern können Sie zusätzliche Optimierungen aktivieren. Auf Rechnern mit weniger als 12 GByte RAM etwa empfehlen wir die Option --lowram, bei Grafikkarten mit weniger als 10 GByte sollten Sie den Parameter --medvram ergänzen oder stattdessen, wenn sie weniger als 6 GByte hat, den Parameter --lowvram. Für Nvidia-Grafikkarten empfehlen wir außerdem den Parameter --xformers, der ebenfalls den Speicherverbrauch senkt, aber zusätzlich die Verarbeitung erheblich beschleunigt. Wie sehr, können Sie an den Testergebnissen ab Seite 64 nachlesen. Bei Redaktionsschluss war für Xformers allerdings noch PyTorch 1.13.1 für CUDA 11.7 erforderlich, sodass wir dafür Torch mit geändertem Installationskommando neu installieren mussten.
Als letzten Funktionstest öffnen Sie den Browser, verbinden sich mit dem WebUI, geben dort im Feld „Prompt“ „cute happy penguin“ ein und klicken auf „Generate“. Danach sehen Sie sowohl im Terminal als auch im Web-Frontend den Rechenfortschritt und bekommen nach wenigen Sekunden einen niedlichen Pinguin präsentiert.
--listen gestartet, kann die ganze Familie mit der Bilder-KI herumexperimentieren.
Fazit
Die Entwicklung von Stable Diffusion hat große Fortschritte gemacht, die Entwickler konnten in den vergangenen Monaten durch Optimierungen die Hardwareanforderungen drastisch senken. Statt eines High-End-Gaming-PCs genügt nunmehr ein betagter Spielerechner, um zu Hause tolle Bilder für Präsentationen, Logos oder einfach nur als Desktophintergrund selbst zu erzeugen. Gerade mit Nvidia-Grafikkarten ist der Einstieg in die Welt der Bilder-KI einfach, werden sie doch schon von Windows und Linux gleichermaßen unterstützt. (mid@ct.de)
Stable Diffusion WebUI: ct.de/yhyk