c't 3003: Dein Gekritzel in wunderschön | Stable Diffusion mit ControlNet
Der Bildgenerator Stable Diffusion ist für sich allein schon faszinierend, zusammen mit ControlNet wird er zum extrem praktischen Alltagswerkzeug.
Empfohlener redaktioneller Inhalt
Mit Ihrer Zustimmmung wird hier ein externes YouTube-Video (Google Ireland Limited) geladen.
Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Google Ireland Limited) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.
- Jan-Keno Janssen
Der Open-Source-Bildgenerator Stable Diffusion erzeugt oft erstaunlich gute "Fotos" – oft aber auch nicht. Die Qualität der Bilder ist Glückssache, ohne Trial-and-Error kommt man nicht weit. Mit der Erweiterung ControlNet wird der Glücksfaktor minimiert. c't 3003 erklärt die Details.
Transkript des Videos
(Hinweis: Es handelt sich hier um einen Bonusinhalt für Menschen, die das Video oben nicht schauen können oder wollen. Die Informationen auf der Bildspur gibt das Transkript nicht wieder.)
Guckt mal hier, ich habe hier auf dem Blatt Papier eine Erdbeere gekritzelt, davon ein Foto gemacht und das dann hier in die Software geworfen. Und dann gesagt, ja, mach mir mal aus der Zeichnung ein realistisches Foto oder Pop Art oder niedliches Monster oder Elden-Ring-Dark-Fantasy-Dings, oder ein Klemmbaustein-Modell. Ja, ziemlich krass, oder? Und das geht natürlich mit beliebigen Vorlagen, mit Menschen, mit Gebäuden (das hier ist übrigens das Heise-Gebäude in Hannover), mit Memes, mit Werbelogos, mit Ernie, mit Bert.
Man lädt einfach ein Foto als Vorlage ein und schreibt dann dazu, was auf dem zu generierenden Bild zu sehen sein soll. Und dann berechnet die Software aus der Bildvorlage und dem Beschreibungstext was ganz Neues. Also zum Beispiel aus dieser Krickelzeichnung ein Foto oder aus Finchen aus der Sesamstraße einen Keno.
Und alles mit Open-Source-Software, die hier bei mir lokal auf dem Rechner läuft. Konkret ist das Stable Diffusion mit Automatic1111 und ControlNet. In diesem Video zeige ich euch, wie ihr das zum Laufen kriegt. Und wenn ihr keinen Rechner mit dicker Grafikkarte habt, geht das sogar auf iPhones oder iPads lokal oder sonst halt auch in der Cloud. Bleibt dran.
Liebe Hackerinnen, liebe Internet-Surfer, herzlich willkommen hier bei...
Ja, so Bildgeneratoren wie Dall-E, Midjourney und Stable Diffusion sind ja eigentlich schon ein alter Hut. Also gibt es halt ein paar Monate. Die funktionieren so, dass man hier oben eingibt, was man sehen will, also zum Beispiel eine programmierende Schildkröte.
Ja, dann wird es berechnet, mehr oder weniger gut. Man kann auch selbst ein sogenanntes Model trainieren und sich dann zum Beispiel selbst in Bilder reinrechnen lassen. Wie das geht, darüber hatten wir ja schon ein Video gemacht.
So, das Problem bei dieser Bildgenerierung ist, dass da zwar super tolle Sachen mal rauskommen können, aber da ist auch viel Glück und Trial-and-Error dabei.
Wenn ich damit Sachen mache, dann kommen auf ein gutes Bild ungefähr zehn schrottige.
Und gegen diese mangelnde Kontrolle kommt jetzt ControlNet ins Spiel. ControlNet, geiler Name auf jeden Fall. Das ist eine Entwicklung von zwei Forschern der Stanford Universität und das ist Open Source. Und das Ganze ist Open Source und steht auf GitHub seit ein paar Wochen zur Verfügung. Wenn ihr kein Problem damit habt, ein paar Cent auszugeben, ist eine sehr schnelle und einfache Methode ControlNet auszuprobieren: rundiffusion.com. Das ist ein komplett fertig installiertes Stable Diffusion mit etlichen Erweiterungen, unter anderem auch ControlNet in der Cloud. Das könnt ihr dann also auch mit einem superlangsamen Kartoffelcomputer nutzen, weil ja, Cloud.
Die günstige 50-Cent-Version berechnet ein Bild ohne zusätzliches Post-Processing in etwa drei Sekunden. Also schnell genug, würde ich sagen. Auf iOS-Geräten läuft Stable Diffusion mit ControlNet sogar lokal und ist ebenfalls super simpel zu installieren, nämlich einfach mit der kostenlosen App DrawThings AI Generation. Auf einem iPhone 13 Pro dauert allerdings ein Bild 45 Sekunden. Ja, und wenn ihr eine Nvidia-Grafikkarte mit mindestens 8 Gigabyte Videospeicher habt, könnt ihr ControlNet in Stable Diffusion mit der grafischen Benutzeroberfläche Automatic1111 ebenfalls lokal nutzen.
Unter Windows gibt es dafür einen grafischen Installer, Link ist in der Beschreibung.
Ihr könnt aber auch einfach über Git auf der Kommandozeile installieren. Das ist sozusagen der offizielle Weg. Unter Linux und Windows läuft Automatic 1111 problemlos, unter MacOS leider mit ein paar Einschränkungen. Habt ihr Automatic1111 laufen, müsst ihr noch ControlNet installieren und das ist aber wirklich super einfach. Hier auf „Extensions“ klicken, dann auf „Available“, „Load from“, anklicken und dann „SD Web UI ControlNet“, „Install".
Und dann müsst ihr noch mindestens eins dieser ControlNet Models von Hugging Face herunterladen. Der Link steht auch in der Beschreibung.
Am besten holt ihr euch alle acht Models. Warum, das erzähle ich gleich. Allerdings ist jedes 5,7 Gigabyte groß. Ihr braucht also dafür mindestens 46 Gigabyte freien Speicherplatz.
Diese Models werft ihr auf jeden Fall in den Ordner „Models/ControlNet“ eurer Automatic1111-Installation. Und dann einmal Automatic1111 neu starten und, zack, taucht hier unten bei „txt2img“ das Feld für ControlNet auf. Alles, was jetzt kommt gilt übrigens auch für rundiffusion.com in der Cloud, weil das ist ja einfach eine Automatic1111-Installation im Netz.
Los startet ihr, indem ihr auf den Pfeil neben ControlNet klickt und die Optionen hier ausklappt. Ganz wichtig, das vergisst man leicht, erstmal Enable anklicken.
Und dann klickt ihr einfach hier auf die Fläche und sucht euch das Vorlagenbild aus.
Ich nehme hier mal so ein Screenshot aus einem 3003-Video. Ja, und jetzt habt ihr mehrere Möglichkeiten festzulegen, wie ControlNet das Bild interpretieren soll. Und für diese Methoden habt ihr auch die acht unterschiedlichen Models heruntergeladen.
Die Standardmethode ist Canny. Dafür geht ihr auf Preprocessor und Model auf den Eintrag, wo ja Canny steht. Canny ist ein Kantendetektionsverfahren, das in den 80er Jahren von einem Herrn Canny erfunden wurde.
Wenn ihr hier unten auf Preview Annotator Result klickt, seht ihr immer die jeweilige Interpretation eures Bildes: „Depth“ ist Depth Map, es wird also versucht eine Tiefenkarte anzufertigen, da sieht man hier in dem Beispiel ganz schön, dass der Raum, in dem ich da stehe, mehr miteinbezogen wird als bei Canny. „HED“ ist auch wieder ein Kantendetektionsverfahren, aber ein softeres als Canny. Bei HED bleibt sehr viel vom Vorlagenbild erhalten, das eignet sich also gut zum Kolorieren von Schwarz-Weiß-Bildern oder zum Stilisieren von Fotos. „MLSD“ findet gerade Linien und ist deshalb gut für Innen- und Außenarchitekturbilder geeignet. „Normal_Map“ generiert eine sogenannte Normal-Map. Das ist so ähnlich wie die Depth-Tiefenkarte, aber Normal-Maps scheinen hier etwas besser die Geometrie zu erhalten. „Scribble“ ist der Modus, den ihr verwendet, wenn ihr eine gekritzelte Zeichnung als Vorlage nehmen wollt. Und „Fake_scribble“ macht aus einem Foto halt so ein Scribble, wenn ihr nicht selbst scribbeln wollt.
Richtig cool ist OpenPose. OpenPose ist quasi ein Standard, wie Körperposen computerlesbar gemacht werden. Nehme ich jetzt hier zum Beispiel meinen Screenshot und sage hier bei Preprocessor und Model OpenPose, erkennt die Software meine Körperhaltung. Ob das geklappt hat, seht ihr wieder mit einem Klick auf Preview Annotator Result. Wenn da dann so ein Strichmännchen kommt, ja, dann hat es geklappt.
Und dann kann man da oben zum Beispiel eingeben einfach Pixar-Character und dann kriege ich halt Pixar-Szenen mit Figuren in dieser Körperhaltung. Wahnsinn, oder?
Ja, und das war jetzt eine echte Person umgewandelt in Cartoon-Figuren, aber das geht natürlich auch umgekehrt. Falls ihr zum Beispiel mal sehen wollt, wie Memes in der echten Welt aussehen würden oder irgendwelche Cartoon-Figuren, ja, das geht da alles mit.
Und man kann natürlich auch mit Bewegtbildern arbeiten, aber dieses Fass mache ich jetzt erstmal nicht auf, das ist, glaube ich, ein eigenes Video.
Ja, aber ein paar Tipps aus der Praxis habe ich noch. Also ihr solltet immer das Seitenverhältnis eures Vorlagenbildes ungefähr einstellen, dann werden die Ergebnisse nämlich besser. Hier einmal oben Width und Height, das bezieht sich auf das neu berechnete Bild und einmal Canvas Width und Height, das bezieht sich auf das Vorlagenbild. Ich nehme meistens 768 x 512 bei Querformaten und 512 x 768 bei Hochformaten.
Der Weight-Regler hier unten ist ebenfalls sehr wichtig, wenn euer Bild zu sehr nach der Vorlage aussieht, schiebt ihr den nach links, wenn er zu wenig nach der Vorlage aussieht, nach rechts.
Automatic1111 ist standardmäßig auf 20 „Sampling Steps“ eingestellt. Nach meiner Erfahrung ist das etwas zu wenig für gute Ergebnisse. Ich benutze meistens 30 Steps und euch ist ja vielleicht auch schon aufgefallen in diesem Video, dass die Gesichter oft etwas seltsam aussehen. Dafür gibt es die Option „Restore Faces“. Die sollte man immer benutzen, wenn man mit Menschengesichtern arbeitet. Und falls ihr das noch nicht wusstet: Mit „Batch Count“ könnt ihr einfach mehrere Bilder hintereinander erzeugen. Ich benutze das ständig, weil ja, wie gesagt, immer nur jedes zehnte Bild richtig gut wird und deshalb lasse ich immer gleich mehrere generieren.
Mein Fazit. Ja, wow, also diese Bildgenerierungstechnik mit ControlNet, die wird sehr sicher künftig in Standard-Kreativsoftware einfließen, weil das natürlich superpraktisch ist, irgendwie so eine super ungenaue Zeichnung irgendwo hinzurotzen und dann einfach zu sagen, hier mach mal ein Foto draus. Oder irgendwelche vorhandenen Bilder total einfach komplett zu remixen. Das ist, und das meine ich wirklich völlig ernst, eine Revolution im Kreativprozess. Aber ganz klar ist das zum Beispiel für einige Leute wie Illustratoren auch ein riesiges Problem – weil je besser die Technik wird, desto mehr Anwendungen wird es geben, wo man vielleicht keine Illustratoren mehr braucht.
Und das riesige Problem ist natürlich, dass diese neuen Bilder aus dem kreativen Output von echten Menschen generiert werden. Also Stable Diffusion und Co. sind ja mit Milliarden Bildern aus dem Netz trainiert worden. Und die Kreativen, die diese Bilder gemacht haben, die haben leider gar nichts davon. Die Macher von Stable Diffusion packen das Problem jetzt zumindest ein ganz kleines bisschen an. Man kann nämlich noch bis zum 3. März 2023, also dem Tag, an dem das Video hier rauskommt, unter haveibeentrained.com mitteilen, dass die eigenen Bilder in der kommenden 3.0-Version von Stable Diffusion nicht verwendet werden dürfen. Also das ist ein kleiner Schritt zumindest, der das Problem aber natürlich nicht ansatzweise lösen wird. Ich gehe aber sowieso davon aus, dass diese halsbrecherische Geschwindigkeit der KI-Entwicklung gerade sowieso noch zu sehr vielen Diskussionen und Problemen führen wird.
Wenn ihr weiter in Sachen KI auf dem Laufenden bleiben wollt, dann könnt ihr gerne diesen Channel hier abonnieren. Denn das Thema, das wird uns hier bestimmt noch ein bisschen begleiten. Tschüss!
c't 3003 ist der YouTube-Channel von c't. Die Videos auf c’t 3003 sind eigenständige Inhalte und unabhängig von den Artikeln im c’t magazin. Die Redakteure Jan-Keno Janssen und Lukas Rumpler sowie ie Video-Producer Şahin Erengil und Pascal Schewe veröffentlichen jede Woche ein Video.
(jkj)