Stable Diffusion mit Docker

Die Künstliche Intelligenz Stable Diffusion ist eine Open-Source-Software, die von Stabilty AI, RunwayML, Eleu-therAI, LAION und einer Forschungsgruppe der LMU München entwickelt wurde. Sie kann zur Erstellung, Bearbeitung oder zum Rendern von Bildern genutzt werden, jedoch liegt die Verantwortung für die erstellten Bilder beim Betreiber der Anwendung. Somit muss persönlich dafür sorge getragen werden, dass mit der Anwendung keine verwerflichen Inhalte erstellt werden.

Weitere Informationen zu Ihren Pflichten und der Lizenz, finden Sie unter dem folgenden Link:

https://github.com/CompVis/stable-diffusion/blob/main/LICENSE

Entgegen proprietärer Konkurrenten wie Dall-E-2, ist Stable Diffusion kostenlos und in einer öffentlich zugänglichen Version erhältlich. Diese ist frei verfügbar und beispielsweise bei GitHub oder DockerHub zu finden.

Wie die Software implementiert und verwendet wird, soll hier vorgestellt werden.

Anforderungen von Stable Diffusion:

  • GPU mit 8GB GDDR Speicher
  • Native Ubuntu 22.04LTS Installation
  • Neueste Version der Docker-Engine
  • Neuester Nvidia Treiber
  • Weitere Pakete wie z.B. : wget, git, python, etc

Installationsablauf von Stable Diffusion:

Installation von Docker:

Wir installieren die Docker-Engine über einen Einzeiler:

curl -fsSL https://get.docker.com | sudo sh

Installation von CUDA:

Als erstes updaten wir die systemeigenen Paketquellen und installieren grundlegende Pakete:

sudo apt update && apt-get update && apt upgrade -y && apt install -y vim ca-certificates curl git wget gnupg language-pack-de lsb-release software-properties-common libgoogle-perftools4 libgoogle-perftools-dev libtcmalloc-minimal4

Als nächstes installieren wir die neuesten Grafikkartentreiber:

sudo apt install -y nvidia-driver-530

Danach starten wir das System neu:

sudo init 6

Nach dem Neustart installieren wir anwendungsspezifische Python Pakete:

sudo apt-get install -y python3 python3-venv python-is-python3

Der alte Nvidia Key wird entfernt:

sudo apt-key del 7fa2af80

Der neue Nvidia Key hinzugefügt, Paketquellen ergänzt und aktualisiert:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb


sudo dpkg -i cuda-keyring_1.0-1_all.deb


sudo apt-get update

Jetzt installieren wir die CUDA Pakete:

apt-get install -y libnvidia-container1 nvidia-container-toolkit libnvidia-container-tools nvidia-docker2

Danach müssen wir das System erneut neu starten:

sudo init 6

Nach dem Neustart überprüfen wir mit einem einfachen CUDA-Container, ob die Verfügbarkeit der GPU-Ressourcen in unserer Containerumgebung vorhanden sind:

docker run --gpus all --rm nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

Installation von Stable Diffusion:

Wir können die Anwendung Stable Diffusion auf verschiedenen Wegen implementieren, hier verwenden wir die Lösung von AUTOMATIC1111. Das Git-Repository für weitere Informationen ist unter dem folgenden Link zu finden:

https://github.com/AUTOMATIC1111/stable-diffusion-webui

Bevor wir die Anwendung herunterladen, erstellen wir für diese ein Verzeichnis:

cd && mkdir stablediffusion && cd stablediffusion

Wir downloaden mit dem folgenden Befehl die Anwendung und installieren sie automatisiert. Das CLI wird durch den Befehl und die Log-Ausgabe von Stable Diffusion gesperrt, darf jedoch nicht geschlossen werden. Wenn wir die Anwendung das erste Mal starten, gestaltet sich dies zeitintensiver als gewöhnlich.

bash <(wget -qO- https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh)

Die Installation ist erfolgreich abgeschlossen, sobald wir die Ausgabe „Running on local URL: http://127.0.0.1:7860“ sehen:

Installation erfolgreich

Nachdem wir die oben dargestellte Ausgabe erhalten haben, sollte die Anwendung unter der folgenden URL zu finden sein:

http://127.0.0.1:7860/

Kopieren Sie zum Aufrufen die URL in Ihren Browser und bestätigen Sie die Eingabe.

Verwendung von Stable Diffusion:

Stable Diffusion bringt in der hier implementierten Form viele Funktionen mit sich. Wir sehen auf der ersten Seite sogleich die Möglichkeit aus Texteingaben Bilder zu erzeugen. Unsere Texteingaben, welche als Kriterien für die Erstellung des Bildes dienen, müssen auf Englisch formuliert werden und durch Kommas getrennt sein, wie hier folgt beispielsweise dargestellt:

A digital illustration of a medieval town, 4k, detailed, trending in artstation, fantasy

Desweiteren ist es uns möglich, die erstellten Bilder innerhalb der Anwendung zu verschieben und diese mit den zusätzlichen Tool´s der Anwendung weiter zu bearbeiten.

Weitere interresante Artikel finden Sie in unserem Blog, oder machen Sie doch gleich mit dem nächsten Docker Beitrag weiter.

Gerne können Sie uns auch zu allen Themen bezüglich Docker konsultieren.