class: center, middle  ## Zurück in der Schlangenhölle ### Python-Projekte reparieren u.a. ComfyUI & IOPaint ### Hauke Goos-Habermann #### https://weisheit.goos-habermann.de --- ### Über mich - Entwickler des
Softwareverteilungssystems m23
- Organisator der
Kieler Open Source und Linux Tage
-
Dienstleister zu m23, Linux und Freier Software
- Softwareentwicklung (PHP, BASH, C/C++, JS, Python und was sonst so gebraucht wird...) - Administration - Schulungen - Support - Beratung - quasi **alles**, *was mit Linux zu tun hat* - Wöchentlicher Livestream *"Jean und Hauke Show"* auf https://www.youtube.com/c/LinuxGuides - *"Nicht der Weisheit letzter Schluß"* mit **beruflichen** oder **privaten Projekten** auf
tube.tchncs.de/c/ndwls
und
youtube.com/@nichtderweisheit
- Hatte nach dem Umstellen auf Debian 13 viel "Spaß" mit dem Reparieren von Python-KI-Tools --- ### Problem  Wie in meinem Video "
3 Lösungen für Python-Probleme. Oder: Der Weg in die Abhängigkeitshölle ist mit Schlangen gepflastert
" gezeigt, sind **Python-Programme** sehr von den **Versionsnummern** des **Python-Interpreters** und der dazugehörigen **Bibliotheken abhängig**. Nur wenn **alles exakt zusammenpaßt**, läßt sich ein Programm ausführen. Eine kleine (oder größere) **Änderung**, wie z.B. beim Aktualisieren von **Debian 12** auf **13**, kann dazu führen, daß diese Programme **nicht mehr ausführbar** sind. --- ### Beispiel: ComfyUI  **
ComfyUI
** ist eine Weboberfläche, in der umfangreiche Aufgaben von **Bild-** und **Videogenerierung** bzw. **-anpassung** über einzelne Module und **Knoten** bewerkstelligt werden. Hierbei übernimmt jeder **Knoten** eine **kleine Teilaufgabe** (z.B. Laden/Speichern eines Bildes/Modells oder Skalieren). Die **einzelnen Knoten** werden zu einem **größeren Berechnungsplan** (Workflow) zusammengefügt, um eine **komplexe Gesamtaufgabe** zu erfüllen. Analog zur
Unix-Philosophie
: * Jeder Knoten hat **eine** (kleine) **Aufgabe**, die er **gut durchführen** soll * Knoten müssen **zusammenarbeiten** * Knoten **tauschen Daten** über Ein-/Ausgaben **aus** --- ### ComfyUI-Reparatur Informationen zur **Erstinstallation** findet Ihr auf **
github.com/Comfy-Org
**.Die **Reparatur** geht **beispielsweise** mit: ```bash # Python-venv-Paket unter Debian 13 installieren sudo apt install -y git python3.13-venv # Ins Projektverzeichnis wechseln und Quelltext aktualisieren cd ComfyUI; git pull # Alte virtuelle Python-Umgebung löschen, neue erstellen und aktivieren rm -rf venv; python3 -m venv venv; source venv/bin/activate # Paketmanager aktualisieren pip3 install -U pip # Abhängigkeiten laut Dokumentation installieren pip3 install [Python-Paket 1] [Python-Paket 2] ... pip3 install -r requirements.txt # ComfyUI-Manager und per Hand installierte Knoten aktualisieren cd custom_nodes; cd [Name]; git pull ``` --- ### Beispiel: IOPaint  **
IOPaint
** ist eine Oberfläche für **KI-Bildbearbeitung**, die durch **Modelle erweitert** werden kann. Die Modelle gliedern sich auf in die Funktionen: * **Löschen**: Bildteile **entfernen** * **Inpainting**: Bildteile durch andere **ersetzen** * **Outpainting**: Neue Bildteile außerhalb des Ursprungsbildes **generieren** **Hinweis:** IOPaint wird leider **nicht** mehr **weiterentwickelt** und läßt sich unter **aktuellen Python**-Versionen auch **nicht** mehr **installieren**. Mehr zu IOPaint in meinem Video "
Schwuppdiwupp und schon ist es weg - Bildretusche mit dem KI-Tool IOPaint
" --- ### Installation **IOPaint** läßt sich aber **dennoch** über **
Miniforge
** (mehr dazu in meinem Video "
3 Lösungen für Python-Probleme
") **installieren**. ```bash # Projektverzeichnis anlegen mkdir IOPaint cd IOPaint # miniforge3-Umgebung erstellen und aktivieren . ../miniforge3/bin/activate conda create -n iopaint python=3.10.15 conda activate iopaint # Für NVIDIA-Nutzer pip3 install torch==2.1.2 torchvision==0.16.2 --index-url\ https://download.pytorch.org/whl/cu118 # Für AMD-Nutzer pip3 install torch==2.1.2 torchvision==0.16.2 --index-url\ https://download.pytorch.org/whl/rocm5.6 # IOPaint installieren pip3 install iopaint ``` --- ### Modelle herunterladen Die Modelle können einzeln über ***iopaint*** heruntergeladen werden. Ohne Angabe eines Modell-Verzeichnisses werden diese unter ***~.cache/torch*** abgelegt. ```bash # Modell-Verzeichnis anlegen mkdir models # Alle Modell-Namen (belegen ca. 21 GB) durchgehen for model in lama mat migan ldm zits fcf manga\ Sanster/PowerPaint-V1-stable-diffusion-inpainting\ Sanster/AnyText timbrooks/instruct-pix2pix\ Fantasy-Studio/Paint-by-Example\ kandinsky-community/kandinsky-2-2-decoder-inpaint do # Modell ins Verzeichnis herunterladen iopaint download --model-dir=models --model=$model done ``` PS Alternativ nur Löschen-Modelle (461 MB): lama mat migan --- ### Starten Je nach vorhandener **Hardware** startet Ihr IOPaint ein **bißchen anders**: ```bash # NVIDIA iopaint start --model-dir=models --device=cuda --port=8080 # AMD? iopaint start --model-dir=models --device=mps --port=8080 # CPU iopaint start --model-dir=models --device=cpu --port=8080 # Startskript schreiben echo "#!/bin/bash . ../miniforge3/bin/activate conda activate iopaint iopaint start --model-dir=models --device=cuda --port=8080" > start chmod +x start # Mehr Optionen iopaint start --help ``` Wenn alles läuft, öffnet Ihr die **Oberfläche** im **Webbrowser**: http://127.0.0.1:8080 --- class: center, middle ### Informationen zu mir und meinen Dienstleistungen, m23, ... ### https://goos-habermann.de