Sie fragen - wir antworten!

Apps & Leitfäden

Stable Diffusion: Was ist ControlNet?

Ein weit verbreitetes Missverständnis unter denjenigen, die zum ersten Mal mit generativen neuronalen Netzen in Berührung kommen, ist, dass die Kontrolle der endgültigen Ausgabe eine enorme Herausforderung darstellt, insbesondere wenn man versucht, die Ausgabe durch unterschiedliche Eingabeaufforderungen zu verändern. Derzeit gibt es eine Reihe von Tools, die unter dem Namen ControlNet bekannt sind und eine relativ unkomplizierte und effektive Kontrolle der Generierungsergebnisse ermöglichen.

In diesem Artikel zeigen wir, wie man mit Hilfe eines solchen Tools, OpenPose, die Pose der generierten Charaktere mit Hilfe von bereits existierenden Bildern und benutzerdefinierten "Skeletten" leicht manipulieren kann.

Schritt 1. Stabile Diffusion installieren

Bitte verwenden Sie unsere Schritt-für-Schritt-Anleitung, um Stable Diffusion mit dem Grundmodell und der WebUI zu installieren. Diese Anleitung basiert auf dem AUTOMATIC1111-Skript.

Schritt 2. ControlNet-Erweiterung installieren

Wir raten dringend davon ab, die ControlNet-Erweiterung (sd-webui-controlnet) aus dem Standard-Repository zu installieren, da es zu Problemen mit der Funktionalität kommen kann. Ein wichtiges Problem, auf das wir bei der Erstellung dieses Leitfadens gestoßen sind, war das Einfrieren der Weboberfläche. Obwohl das Image zunächst erfolgreich erstellt wird, reagiert die WebUI nicht mehr, wenn das Image ein zweites Mal erstellt wird. Eine alternative Lösung wäre die Installation der gleichen Erweiterung aus einer externen Quelle.

Öffnen Sie WebUI und folgen Sie den Registerkarten: Extensions > Install from URL. Fügen Sie diese URL in das entsprechende Feld ein:

https://github.com/Mikubill/sd-webui-controlnet

Klicken Sie dann auf die Schaltfläche Install:

Install sd-webui-controlnet

Wenn der Vorgang erfolgreich abgeschlossen ist, sollte die folgende Meldung erscheinen:

Installed into /home/usergpu/stable-diffusion-webui/extensions/sd-webui-controlnet. Use Installed tab to restart.

Starten wir die URL neu, indem wir auf der Registerkarte Installiert auf die Schaltfläche Anwenden und UI neu starten klicken:

ControlNet Restart UI

Nach dem Neustart der Schnittstelle wird das neue ControlNet-Element mit vielen zusätzlichen Optionen angezeigt:

ControlNet enabled

Schritt 3. OpenPose herunterladen

HF-Schlüssel hinzufügen

Lassen Sie uns einen SSH-Schlüssel generieren und hinzufügen, den Sie in Hugging Face verwenden können:

cd ~/.ssh && ssh-keygen

Wenn das Schlüsselpaar generiert ist, können Sie den öffentlichen Schlüssel im Terminalemulator anzeigen:

cat id_rsa.pub

Kopieren Sie alle Informationen, die mit ssh-rsa beginnen und mit usergpu@gpuserver enden, wie im folgenden Screenshot gezeigt:

Copy RSA key

Öffnen Sie einen Webbrowser, geben Sie https://huggingface.co/ in die Adresszeile ein, und drücken Sie Enter. Melden Sie sich bei Ihrem HF-Konto an und öffnen Sie die Profileinstellungen. Wählen Sie dann SSH and GPG Keys und klicken Sie auf die Schaltfläche Add SSH Key:

Add SSH key

Füllen Sie Key name aus und fügen Sie den kopierten SSH Public key aus dem Terminal ein. Speichern Sie den Schlüssel, indem Sie Add key drücken:

Paste the key

Jetzt ist Ihr HF-Konto mit dem öffentlichen SSH-Schlüssel verknüpft. Der zweite Teil (privater Schlüssel) ist auf dem Server gespeichert. Der nächste Schritt ist die Installation einer speziellen Git-LFS-Erweiterung (Large File Storage), die für das Herunterladen großer Dateien wie Modelle neuronaler Netze verwendet wird.

Git LFS installieren

Als Nächstes müssen Sie eine spezielle Git LFS-Erweiterung (Large File Storage) installieren, die für das Herunterladen großer Dateien, wie z. B. Modelle neuronaler Netze, verwendet wird. Öffnen Sie Ihr Home-Verzeichnis:

cd ~/

Laden Sie das Shell-Skript herunter und führen Sie es aus. Dieses Skript installiert ein neues Drittanbieter-Repository mit git-lfs:

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash

Nun können Sie es mit dem Standard-Paketmanager installieren:

sudo apt-get install git-lfs

Lassen Sie uns git so konfigurieren, dass es unseren HF-Nickname verwendet:

git config --global user.name "John"

Und mit dem HF-E-Mail-Konto verknüpft:

git config --global user.email "john.doe@example.com"

Download des Repositorys

Wir empfehlen, wenn möglich, eine lokale Festplatte zum Herunterladen und Speichern von Modellen zu verwenden. Mehr dazu erfahren Sie in unserem Leitfaden Festplattenpartitionierung in Linux. Für dieses Beispiel haben wir ein SSD-Laufwerk mit dem Mountpoint /mnt/fastdisk verbunden. Wir machen es zum Eigentum des Standardbenutzers:

sudo chown usergpu:usergpu /mnt/fastdisk

Öffnen Sie das Verzeichnis:

cd /mnt/fastdisk

Klonen Sie das ControlNet-Repository von HuggingFace. Zuvor installiertes Git-LFS ersetzt automatisch Zeiger durch echte Dateien:

git clone git@hf.co:lllyasviel/ControlNet-v1-1

In diesem Beispiel fügen wir der Stable Diffusion WebUI nur ein Modell hinzu. Sie können jedoch alle verfügbaren Modelle aus dem Repository (~18 GB) kopieren:

cp /mnt/fastdisk/ControlNet-v1-1/control_v11p_sd15_openpose.pth /home/usergpu/stable-diffusion-webui/models/ControlNet/

Schritt 4. Generierungsprozess starten

Das derzeitige Modell ist recht einfach und liefert möglicherweise keine zufriedenstellenden Ergebnisse. Wir schlagen daher vor, es durch ein eigenes Modell zu ersetzen. Eine Anleitung dazu finden Sie in diesem Artikel: Stabile Diffusionsmodelle: Anpassung und Optionen. Für dieses Beispiel haben wir RealisticVision v6.0 B1 heruntergeladen.

Wenn Sie Ihr erstes Bild mit OpenPose erstellen möchten, öffnen Sie die Registerkarte ControlNet, wählen Sie OpenPose, markieren Sie Enable und Allow Preview. Klicken Sie dann auf Upload, um ein Bild mit der gewünschten Pose hinzuzufügen:

Enable OpenPose and Preview

Sie können das System auffordern, eine Posenvorschau zu erstellen, indem Sie auf die Schaltfläche mit dem Explosionssymbol klicken:

Show preview

Auf der linken Seite wird das Originalbild angezeigt. Rechts sehen Sie das "Skelett", das die vom neuronalen Netzmodell erkannte Pose darstellt:

Dancing woman OpenPose skeleton

Jetzt können Sie die Haupteingabeaufforderung eingeben, zum Beispiel "dancing bear, by Pixar" oder "dancing fox, by Pixar", und auf die Schaltfläche Generate klicken. Nach ein paar Sekunden erhalten Sie ein Ergebnis wie dieses:

Dancing bear Dancing fox

Das System versucht, anhand des "Skeletts" aus dem Originalbild ein neues Bild zu erstellen. In manchen Fällen ist die Pose nicht genau, aber das lässt sich leicht durch manuelle Bearbeitung des "Skeletts" korrigieren.

Schritt 5. Ändern der Pose

Auch wenn es wie Zauberei aussieht, ist das Modell nicht perfekt, und gelegentliche Fehler können sich auf das endgültige Bild auswirken. Um Probleme bei der Bilderstellung zu vermeiden, haben Sie die Möglichkeit, das "Skelett" manuell anzupassen, indem Sie auf die Schaltfläche Edit klicken:

Edit the skeleton

Im mitgelieferten Editor können Sie die Pose einfach durch Ziehen und Ablegen anpassen oder unerwünschte Punkte mit einem Rechtsklick entfernen. Danach klicken Sie einfach auf die Schaltfläche Send pose to ControlNet und die neue Pose wird übernommen:

Send pose to ControlNet

Über OpenPose hinaus bietet ControlNet eine Vielzahl von Tools zur Anpassung und Perfektionierung Ihrer Ergebnisse. Darüber hinaus gewährleisten die von LeaderGPU bereitgestellten dedizierten Server einen schnellen und bequemen Prozess.

Siehe auch:



Aktualisiert: 26.03.2025

Veröffentlicht: 21.01.2025