Die WebUI-Erweiterung für ControlNet und andere injektionsbasierte SD-Steuerelemente.
Diese Erweiterung ist für die Stable Diffusion-Web-Benutzeroberfläche von AUTOMATIC1111 gedacht und ermöglicht es der Web-Benutzeroberfläche, ControlNet zum ursprünglichen Stable Diffusion-Modell hinzuzufügen, um Bilder zu generieren. Das Hinzufügen erfolgt spontan, das Zusammenführen ist nicht erforderlich.
https://github.com/Mikubill/sd-webui-controlnet.git
als „URL für das Git-Repository der Erweiterung“ ein.Alle Download-Links finden Sie hier: https://github.com/Mikubill/sd-webui-controlnet/wiki/Model-download.
Jetzt bieten wir perfekte Unterstützung für alle verfügbaren Modelle und Präprozessoren, einschließlich perfekter Unterstützung für T2I-Adapter und ControlNet 1.1 Shuffle. (Stellen Sie sicher, dass Ihre YAML-Dateinamen und Modelldateinamen identisch sind, siehe auch YAML-Dateien in „stable-diffusion-webuiextensionssd-webui-controlnetmodels“.)
Wenn Sie nun „High-Res Fix“ in A1111 aktivieren, gibt jedes Kontrollnetz zwei verschiedene Kontrollbilder aus: ein kleines und ein großes. Der kleine ist für Ihre einfache Generierung und der große ist für Ihre High-Res-Fix-Generierung. Die beiden Kontrollbilder werden durch einen intelligenten Algorithmus namens „Super-High-Quality-Control-Image-Resampling“ berechnet. Dies ist standardmäßig aktiviert und Sie müssen keine Einstellung ändern.
Jetzt wird ControlNet ausgiebig mit den verschiedenen Maskentypen des A1111 getestet, darunter „Inpaint maskiert“/„Inpaint nicht maskiert“, „Gesamtbild“/„Nur maskiert“ und „Nur maskierter Abstand“ und „Maskenunschärfe“. Die Größenänderung entspricht perfekt den A1111-Funktionen „Einfach die Größe ändern“/„Zuschneiden und Größe ändern“/„Größe ändern und füllen“. Das bedeutet, dass Sie ControlNet nahezu überall in Ihrer A1111-Benutzeroberfläche problemlos verwenden können!
Wenn Sie jetzt den pixelgenauen Modus aktivieren, müssen Sie die Auflösungen des Präprozessors (Annotators) nicht manuell festlegen. Das ControlNet berechnet automatisch die beste Annotator-Auflösung für Sie, sodass jedes Pixel perfekt der stabilen Diffusion entspricht.
Wir haben einige zuvor verwirrende Benutzeroberflächen wie „Leinwandbreite/-höhe für neue Leinwand“ neu organisiert und sie finden sie jetzt in der Schaltfläche. Jetzt wird die Vorschau-GUI durch die Option „Vorschau zulassen“ und die Auslöseschaltfläche ? gesteuert. Die Vorschaubildgröße ist besser als zuvor und Sie müssen nicht nach oben und unten scrollen – Ihre a1111-GUI wird nicht mehr durcheinander gebracht!
Jetzt kann ControlNet 1.1 fast alle Upscaling-/Tile-Methoden unterstützen. ControlNet 1.1 unterstützt das Skript „Ultimate SD upscale“ und fast alle anderen kachelbasierten Erweiterungen. Bitte verwechseln Sie „Ultimate SD upscale“ nicht mit „SD upscale“ – es handelt sich um unterschiedliche Skripte. Beachten Sie, dass die am meisten empfohlene Upscaling-Methode „Tiled VAE/Diffusion“ ist, wir testen jedoch so viele Methoden/Erweiterungen wie möglich. Beachten Sie, dass „SD upscale“ seit 1.1.117 unterstützt wird. Wenn Sie es verwenden, müssen Sie alle ControlNet-Bilder leer lassen (wir empfehlen „SD upscale“ nicht, da es etwas fehlerhaft ist und nicht gewartet werden kann – verwenden Sie die Option „ „Ultimate SD Upscale“ statt).
Wir haben viele Fehler im Guess-Modus der Vorgängerversion 1.0 behoben und jetzt heißt er Control Mode
Jetzt können Sie steuern, welcher Aspekt wichtiger ist (Ihre Eingabeaufforderung oder Ihr ControlNet):
„Balanced“: ControlNet auf beiden Seiten der CFG-Skala, dasselbe wie das Ausschalten des „Guess Mode“ in ControlNet 1.0
„Meine Eingabeaufforderung ist wichtiger“: ControlNet auf beiden Seiten der CFG-Skala, mit zunehmend reduzierten SD-U-Net-Injektionen (layer_weight*=0,825**I, wobei 0<=I <13 und die 13 bedeutet, dass ControlNet 13 Mal SD injizierte ). So stellen Sie sicher, dass Ihre Eingabeaufforderungen in Ihren generierten Bildern perfekt dargestellt werden.
„ControlNet ist wichtiger“: ControlNet nur auf der bedingten Seite der CFG-Skala (die Bedingung in A1111s Batch-Cond-Uncond). Das bedeutet, dass das ControlNet X-mal stärker ist, wenn Ihr cfg-scale X ist. Wenn Ihr cfg-scale beispielsweise 7 ist, dann ist ControlNet 7-mal stärker. Beachten Sie, dass sich hier die X-mal stärkeren Gewichte von den „Kontrollgewichten“ unterscheiden, da Ihre Gewichte nicht geändert werden. Dieser „stärkere“ Effekt verursacht normalerweise weniger Artefakte und gibt ControlNet mehr Raum zum Erraten, was in Ihren Eingabeaufforderungen fehlt (und in der vorherigen Version 1.0 wurde er „Ratemodus“ genannt).
Eingabe (Tiefe+Canny+Hed) | "Ausgewogen" | „Meine Aufforderung ist wichtiger“ | „ControlNet ist wichtiger“ |
Jetzt haben wir einen reference-only
Präprozessor, der keine Kontrollmodelle benötigt. Es kann die Verbreitung direkt steuern, indem es Bilder als Referenz verwendet.
(Eingabeaufforderung „ein Hund läuft auf Grasland, beste Qualität, ...“)
Diese Methode ähnelt der inpaint-basierten Referenz, führt jedoch nicht zu einer Unordnung in Ihrem Bild.
Viele professionelle A1111-Benutzer kennen einen Trick, um Bilder mit Referenzen durch Inpaint zu diffundieren. Wenn Sie beispielsweise ein 512x512-Bild eines Hundes haben und ein weiteres 512x512-Bild mit demselben Hund erstellen möchten, verbinden einige Benutzer das 512x512-Hundebild und ein 512x512-Leerbild zu einem 1024x512-Bild, senden es an Inpaint und maskieren es aus das leere 512x512-Teil, um einen Hund mit ähnlichem Aussehen zu verbreiten. Allerdings ist diese Methode normalerweise nicht sehr zufriedenstellend, da Bilder miteinander verbunden sind und viele Verzerrungen auftreten.
Dieses reference-only
ControlNet kann die Aufmerksamkeitsebenen Ihres SD direkt mit beliebigen unabhängigen Bildern verknüpfen, sodass Ihr SD beliebige Bilder als Referenz lesen kann. Zur Nutzung benötigen Sie mindestens ControlNet 1.1.153.
Wählen Sie zur Verwendung einfach reference-only
als Präprozessor aus und fügen Sie ein Bild ein. Ihr SD verwendet das Bild lediglich als Referenz.
Beachten Sie, dass diese Methode so „uneindeutig“ wie möglich ist. Es enthält nur sehr einfache Verbindungscodes ohne persönliche Präferenzen, um die Aufmerksamkeitsebenen mit Ihren Referenzbildern zu verbinden. Auch wenn wir versucht haben, keine Codes mit Meinungen einzuschließen, müssen wir dennoch einige subjektive Implementierungen schreiben, um mit Gewichtung, CFG-Skala usw. umzugehen – ein technischer Bericht ist in Arbeit.
Weitere Beispiele hier.
Siehe auch die Dokumente von ControlNet 1.1:
https://github.com/lllyasviel/ControlNet-v1-1-nightly#model-specification
Das ist meine Einstellung. Wenn ein Problem auftritt, können Sie diese Einstellung als Plausibilitätsprüfung verwenden
https://huggingface.co/lllyasviel/ControlNet/tree/main/models
Alle Vorgängermodelle können Sie weiterhin im bisherigen ControlNet 1.0 nutzen. Die bisherige „Tiefe“ heißt nun „Tiefe_midas“, die bisherige „normale“ heißt „normal_midas“ und die bisherige „hed“ heißt „softedge_hed“. Und ab 1.1 haben alle Linienkarten, Kantenkarten, Linienkarten und Grenzkarten einen schwarzen Hintergrund und weiße Linien.
(Von TencentARC/T2I-Adapter)
So verwenden Sie T2I-Adapter-Modelle:
Beachten Sie, dass „CoAdapter“ noch nicht implementiert ist.
Die folgenden Ergebnisse stammen von ControlNet 1.0.
Quelle | Eingang | Ausgabe |
---|---|---|
(kein Präprozessor) | ||
(kein Präprozessor) | ||
Die folgenden Beispiele stammen vom T2I-Adapter.
Von t2iadapter_color_sd14v1.pth
:
Quelle | Eingang | Ausgabe |
---|---|---|
Von t2iadapter_style_sd14v1.pth
:
Quelle | Eingang | Ausgabe |
---|---|---|
(Clip, kein Bild) |
--xformers
und aktiviertem Low VRAM
Modus in der Benutzeroberfläche steigt die Auflösung auf 768 x 832 Diese Option ermöglicht mehrere ControlNet-Eingänge für eine einzelne Generation. Um diese Option zu aktivieren, ändern Sie in den Einstellungen Multi ControlNet: Max models amount (requires restart)
. Beachten Sie, dass Sie die WebUI neu starten müssen, damit die Änderungen wirksam werden.
Quelle A | Quelle B | Ausgabe |
Gewicht ist das Gewicht des „Einflusses“ des Kontrollnetzes. Es ist analog zu Aufmerksamkeit/Betonung erregen. ZB (myprompt: 1.2). Technisch gesehen ist es der Faktor, mit dem die ControlNet-Ausgänge multipliziert werden, bevor sie mit dem ursprünglichen SD Unet zusammengeführt werden.
Start/Ende der Führung ist der Prozentsatz der Gesamtschritte, die das Kontrollnetz anwendet (Führungsstärke = Ende der Führung). Es ist analog zum sofortigen Bearbeiten/Verschieben. Beispiel: [myprompt::0.8] (Gilt vom Anfang bis 80 % der Gesamtschritte)
Versetzen Sie eine beliebige Einheit in den Batch-Modus, um den Batch-Modus für alle Einheiten zu aktivieren. Geben Sie für jede Einheit ein Batch-Verzeichnis an oder verwenden Sie als Fallback das neue Textfeld auf der Registerkarte „img2img Batch“. Obwohl sich das Textfeld auf der Registerkarte „Stapel“ von „img2img“ befindet, können Sie es auch zum Generieren von Bildern auf der Registerkarte „txt2img“ verwenden.
Beachten Sie, dass diese Funktion nur in der Gradio-Benutzeroberfläche verfügbar ist. Rufen Sie die APIs so oft auf, wie Sie möchten, um eine benutzerdefinierte Batch-Planung zu ermöglichen.
Diese Erweiterung kann txt2img- oder img2img-Aufgaben über die API oder einen externen Erweiterungsaufruf annehmen. Beachten Sie, dass Sie möglicherweise in den Einstellungen für externe Anrufe Allow other scripts to control this extension
aktivieren müssen.
Um die API zu verwenden: Starten Sie WebUI mit dem Argument --api
und gehen Sie zu http://webui-address/docs
für Dokumente oder Checkout-Beispiele.
Um externen Aufruf zu nutzen: Checkout Wiki
Diese Erweiterung fügt der Webui diese Befehlszeilenargumente hinzu:
--controlnet-dir ADD a controlnet models directory
--controlnet-annotator-models-path SET the directory for annotator models
--no-half-controlnet load controlnet models in full precision
--controlnet-preprocessor-cache-size Cache size for controlnet preprocessor results
--controlnet-loglevel Log level for the controlnet extension
--controlnet-tracemalloc Enable malloc memory tracing
Jeden Abend mit Pytorch getestet: #143 (Kommentar)
Um diese Erweiterung mit MPS und normalem Pytorch zu verwenden, müssen Sie WebUI derzeit möglicherweise mit --no-half
starten.
Die vorherige Version (sd-webui-controlnet 1.0) ist archiviert in
https://github.com/lllyasviel/webui-controlnet-v1-archived
Die Verwendung dieser Version stellt keinen vorübergehenden Stopp der Updates dar. Sie werden alle Updates für immer stoppen.
Bitte ziehen Sie diese Version in Betracht, wenn Sie mit professionellen Studios zusammenarbeiten, die eine 100-prozentige Reproduktion aller vorherigen Ergebnisse Pixel für Pixel erfordern.
Diese Implementierung ist von kohya-ss/sd-webui-additional-networks inspiriert