Nach wie vor begeistert mich das Thema Stable Diffusion und die Bildgenerierung. Um hier etwas weiter zu kommen und nicht immer nur Automatic1111 zu nutzen habe ich mir vorgenommen mich in ComfyUi einzuarbeiten. ComfyUi verspricht mir die Möglichkeit Prozesse noch einmal weiter zu automatisieren und vor allem verschiedene Schritte noch viel besser kombinieren zu können. Das Ziel ist es Variationen von Bildern automatisch deutlich gezielter zu erzeugen als es mit Automatic1111 mir möglich ist. Daher werden sich meine Blog Beiträge erst einmal die Installation und Konfiguration von ComfyUi behandeln. Wenn ich dann Erfahrung gesammelt habe werde ich weiter Beiträge zur Bild-Generierung selber veröffentlichen.

Hinweis: Als Betriebssystem kommt bei mir immer Ubuntu zum Einsatz. Ich gehe davon aus, dass ein frisch aufgesetztes Ubuntu zum Einsatz kommt mit installierten NVIDIA CUDA Treibern. Wie ihr auf einem Ubuntu System die CUDA Treiber installiert habe ich im folgenden Beitrag berläutert.

Für alle die gerne ein Video sehen möchte wie ComfyUi unter Ubuntu in einer virtuellen Umgebung installiert wird habe ich das folgende Video aufgenommen.

ComfyUi Installation Ubuntu Video

ComfyUi Installation Ubuntu Video

ComfyUi – Installation

Da ich auf meinem Rechner eine Vielzahl an Projekten laufen habe kapsele ich diese Projekte immer in eigene virtuelle Anaconda Umgebungen. Wenn Du Anaconda noch nicht auf Deinem Ubuntu System installiert hast kannst Du folgender Anleitung von mir folgen.

Dazu wird jetzt erst einmal eine virtuelle Umgebung für ComfyUi angelegt. Das machst Du mit dem folgenden Befehl. So erzielen wir eine Trennung zwischen den verschiedenen Projekten und von unserem zugrunde liegenden System.

Befehl: source ~/anaconda3/bin/activate

Befehl: conda create --name comfyUi

Jetzt aktivierst Du mit dem folgenden Befehl die ComfyUi Anaconda Umgebung in die anschließend ComfyUi installiert wird.

Befehl: conda activate comfyUi

Jetzt folgen ein paar Befehle mit denen ComfyUi auf einem Ubuntu System installiert wird.

Befehl: git clone https://github.com/comfyanonymous/ComfyUI.git

Damit alle notwendigen Software-Pakete installiert werden bitte noch den folgenden Befehl in der aktiven Anaconda Umgebung ausführen.

Befehl: pip install -r requirements.txt

Jetzt sollte alles soweit installiert sein und ihr könnt ComfyUi starten. Mit dem jetzt folgenden Befehl ist ComfyUi über das Intranet erreichbar auch von weiteren Rechnern im Netzwerk.

Befehl: python3 main.py --listen

ComfyUI Manager – Installation

Sehr hilfreich ist es noch den ComfyUi Manager zu installieren. Das macht ihr wie jetzt nachfolgend beschrieben.

Wechselt mit dem folgenden Befehl in den ComfyUi/custom_nodes Ordner.

Befehl: cd ~/ComfyUI/custom_nodes

Jetzt clont ihr den ComfyUi Manager in dieses Verzeichnis mit dem folgenden Befehl:

Befehl: git clone https://github.com/ltdrdata/ComfyUI-Manager

Nach der Installation und dem restart von ComfyUi seht ihr in der Box unten den ComfyUi Manager.

ComfyUi Manager

ComfyUi Manager

Custom Models Pfad setzen

Da ich schon Automatic1111 installiert habe und eine Vielzahl an Modellen nutze liegt es nahe auch diese mit ComfyUi zu nutzen. So spare ich mit einmal den Plattenplatz aber vor allem auch das Mehrfache Managen dieser vielen Modelle. Den Pfad z. B. zu von Automatic1111 genutzten Modellen setzt ihr in der extra_model_paths.yaml Datei.

Bei mir sehen die Anpassungen in der Datei extra_model_paths.yaml wie folgt aus.

ComfyUi extra model paths yaml

ComfyUi extra model paths yaml

Wenn Du jetzt ComfyUi neu startest dann solltest Du im Terminal Fenster sehen ob die Anpassungen der Custom-Pfade geklappt haben. Bei mir sieht das jetzt wie nachfolgend gezeigt aus. Gut zu sehen ist an welchen Stellen ich meinen eigenen Pfad eingefügt habe und an welchen Stellen eben noch die default Konfiguration greift.

ComfyUi start screen

ComfyUi start screen

Hier noch ein Bild wie jetzt die Default Seite von ComfyUi aussieht wenn man noch nichts weiter Konfiguriert oder ausprobiert hat. Auch gut zu sehen ist der ComfyUi Manager.

ComfyUi default Workflow

ComfyUi default Workflow

ComfyUI – Autostart

Jetzt möchte ich noch das ComfyUi immer automatisch starten wenn ich den Rechner einschalte. Ich realisiere das seit Jahren über einen cron-job und jeweils einem kleinen Shell-Skript das die nötigen Befehle beinhaltet. Es ist nichts aufregends funktioniert aber zuverlässig und schreibt eine ordentliche Log-Datei.

Lege dazu eine ComfyUi.sh Datei in Deinem Homeverzeichnis in. Diese machst Du Ausführbar mit dem folgenden Befehl.

Befehl: sudo chmod 777 ComfyUi.sh

Jetzt müssen noch die folgenden Zeilen eingefügt werden damit das Skript ComfyUi auch starten kann. Dabei ist wichtig, dass ihr den Pfad richtig hinterlegt in dem ihr ComfyUi installiert habt und die Anaconda Umgebung auch so heißt wie ihr diese angelegt habt.

#!/bin/bash
# Autor: Ingmar Stapel
# Date: 20231202
# This script starts ComfyUi in an Anaconda virtual environment

source /home/ingmar/anaconda3/bin/activate comfyUi >> /home/ingmar/ComfyUi-anaconda.log 2>&1 &
sleep 10

python3 ~/ComfyUI/main.py --listen >> ~/ComfyUi-main-$(date +"%Y_%m_%d_%I_%M_%p").log 2>&1 &

Jetzt muss das ComfyUi.sh Skript in der /etc/crontab hinterlegt werden damit es nach jedem Neustart des Rechners ausgeführt wird und ComfyUi gestartet wird. Das sieht dann wie im folgenden Bild gezeigt aus.

Ubuntu crontab

Ubuntu crontab

Hier noch ein Bild des initialen Demo Workflows mit einem leicht angepassten Prompt den ich aber ansonsten unverändert gelassen habe.

ComfyUi default Workflow executed

ComfyUi default Workflow executed

Zusammenfassung

Die Installation von ComfyUi war innerhalb weniger Minuten erledigt. Gut ich muss dazu auch sagen das ich ständig solche Tools installiere und schon durch viele Täler der Tränen gegangen bin was die Installation von NVIDIA CUDA und weiteren speziellen Paketen angeht die für solche Projekte einfach gebraucht werden. Aber im Großen und Ganzen bin ich sehr begeistert und freue mich jetzt mit den Workflows loslegen zu können. Das sollte den Prozess der Bildgenerierung doch deutlich beschleunigen.