Stable Diffusion ist ein fortschrittliches KI-Modell, das Texteingaben in visuelle Darstellungen umwandelt. Diese Technologie nutzt moderne Algorithmen, um aus Textbefehlen (sogenannten „Prompts“) hochwertige und kreative Bilder zu erstellen. Die Technologie basiert auf Diffusionsmodellen, die schrittweise Rauschen aus einem Bild entfernen, bis das gewünschte Bild entsteht. Dieser Prozess, inspiriert von physikalischen Diffusionsprozessen, führt zu äußerst detaillierten und präzisen Ergebnissen.
Ein wesentlicher Vorteil von Stable Diffusion ist die Möglichkeit, die Technologie lokal auf dem eigenen Rechner zu installieren. Dies bietet nicht nur größere Kontrolle und Flexibilität, sondern auch Datenschutz und Unabhängigkeit von externen Servern.
Installation (stable-diffusion-webui via AUTOMATIC1111)
Automatic1111 ist eine beliebte, benutzerfreundliche grafische Benutzeroberfläche (GUI) für Stable Diffusion. Diese Web-basierte Oberfläche wurde entwickelt, um die Interaktion mit Stable Diffusion zugänglicher und effizienter zu gestalten, insbesondere für Nutzer ohne tiefgehende technische Kenntnisse. Automatic 11111 bietet zahlreiche Konfigurationsmöglichkeiten, um beispielsweise das Webinterface über das Netzwerk zu nutzen.
Die Installation unter Linux erfolgt mittels eines Installationsscripts. Dabei wird eine virtuelle Pythonumgebung erstellt und in diese alle benötigten Bibliotheken und Programme installiert.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# install stable diffusion webinterface automatic1111 # Debian-based: sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0 # Red Hat-based: sudo dnf install wget git python3 gperftools-libs libglvnd-glx # openSUSE-based: sudo zypper install wget git python3 libtcmalloc4 libglvnd # Arch-based: sudo pacman -S wget git python3 # Navigate to the directory you would like the webui to be installed and execute the following command: sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0 google-perftools mkdir -p $HOME/stable-diffusion-webui cd $HOME/stable-diffusion-webui wget -q https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh # run webui.sh, further installation will managed by webui.sh script webui.sh |
* TCMalloc (improves CPU memory usage) wird nach der Installation von google-perftools aktiviert. Keine Fehlermeldung mehr.
Eine Alternative ist die Installation direkt über GitHub mittels „git clone“:
1 2 3 |
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui cd stable-diffusion-webui ./webui |
Das reine GUI/Web Interface bietet allerdings nur eine Art Framework, um verschiedene Stable Diffusion Modelle zu nutzen und zu konfigurieren.
Konfiguration – Startparameter / Python Environment Parameter
Die grundlegende Konfiguration von Stable Diffusion wird in der Datei „webui-user.sh“ im Ordner stable-diffusion-webui festgelegt. Neben dem Installationsverzeichnis (falls sich dies nach der Installation ändert) werden hier sämtliche Parameter der virtuellen Pythonumgebung festgelegt. Das betrifft CPU/GPU, Verzeichnisse, Caching, Webinterface etc. Optionen können neben der o.g. Konfiguration über eine Datei auch direkt mit dem Startbefehl (webui.sh –<option>) übergeben werden. Einige häufig verwendete Startoptionen sind wie folgt aufgeführt:
--model-dir <path/to/modeldir> |
Angabe des Ordners der verfügbaren KI Modelle |
--listen |
Aktiviert die Erreichbarkeit des Webinterface außerhalb von localhost |
--port <number> |
Legt den Port für Netzwerkzugriffe fest |
--enable-insecure-extension-access |
Aktiviert GITHub Extension Repository |
--gradio-auth "<user>:<pass>" |
Logindaten des Webinterfaces (falls WebUI außerhalb von localhost erreichbar) |
--xformers |
Aktiviert die xFormers-Bibliothek, verbessert Speicherverbrauch und Geschwindigkeit erheblich. Nur für Nvidia-GPUs |
--opt-split-attention |
Führt auf einigen Systemen zu höheren Geschwindigkeiten als xFormers, erfordert jedoch mehr VRAM |
--theme dark |
Aktiviert ein Dunkles WebUI Theme |
--medvram |
Reduzierter VRAM-Verbrauch durch Aufteilung des Stable Diffusion-Modell in drei Teile: cond (Textumwandlung), first_stage (Bildumwandlung) und unet (Entrauschung). Nur ein Teil bleibt im VRAM, die anderen werden in den CPU-RAM ausgelagert. Geringe Leistungseinbußen, außer bei Live-Vorschauen. Führt mitunter zu Systemabstürzen |
--upcast-sampling |
Beschleunigt die Generierung auf Nvidia- und AMD-Karten, die normalerweise mit „–no-half“ laufen. |
Eine ausführliche Liste aller Konfigurations- und Startparameter findet sich auf GitHub (Optimizations) | GitHub (CLI-Arguments-and-Settings)
Automatic1111 Erweiterungen
Stable Diffusion ist mit zahlreichen Add-ons erweiterbar. Viele Erweiterungen von der Automatic1111 GitHub-Seite sind nur über das Webinterface installierbar, wenn die Startoption „–enable-insecure-extension-access“ aktiviert ist. Alternativ kann auch eine manuelle Installation in das Extension-Verzeichnis der Automatic1111-Installation erfolgen.
StyleSelectorXL | Positive und negative Prompt Vorlagen zur Erzeugung stilisierter Anfragen |
sd-webui-creaprompt | Eigene Prompts über CSV Datei möglich (not tested) |
sd-webui-hardware-info-in-metadata | Fügt Hardware-Informationen (GPU-Name, VRAM, CPU-Name, RAM), Bearbeitungszeit den Metadaten der generierten Bilder hinzu. |
sd-webui-tabs-extension | Tab Ansicht für Automatic1111 Webui Erweiterungen, bessere UI Übersicht |
stable-diffusion-webui-images-browser | Galerie zur Anzeige bisher generierter Bilder, deren Bildinformationen, sowie Speichern von Favoriten und Löschen nicht benötigter Bilder. Weiterleiten an andere Programme wie txt2img oder img2img. |
sd-webui-old-photo-restoration | |
a1111-stable-diffusion-webui-vram-estimator | sammelt Statistiken von txt2img und img2img mit verschiedenen Einstellungen und schätzt dann den VRAM-Bedarf mithilfe von Extrapolation. |
Prompt Eingaben und Strings
easynegative | EasyNegative in Stable Diffusion ist ein eingebettetes Werkzeug, das entwickelt wurde, um die Qualität der negativen Prompts zu verbessern. Im Wesentlichen wurden viele schlechte Bilder anstelle von guten für das Training genutzt, um ein Embedding zu erstellen. Dieses Embedding wird dann in die Negative-Box integriert. | |
Weitere Informationen und Bespiele
https://aibilderagentur.com/stable-diffusion-sdxl-1-0-automatic1111/ | ||
https://urban-base.net/2024/01/bildstile-meistern-mit-stable-diffusion-ein-guide-fuer-einsteiger/ | ||
https://urban-base.net/2023/03/stable-diffusion-der-ultimative-guide-fuer-anfaenger/ | ||
https://diffusion-news.org/stable-diffusion-settings-parameters | ||
https://www.adesso.de/de/news/blog/stable-diffusion-eine-einfuehrung.jsp | ||
https://steemit.com/deutsch/@janisplayer/stable-diffusion-einrichtung-models-einstellungen-or-hintergrund-entfernung-per-ki | ||
https://github.com/darkhemic/stable-diffusion-cpuonly
Speefak | www.urban-base.net |