AI generierte Szenerie in blau und rot
20.12.2022

Wenn Computer trÀumen - ein Exkurs in die Welt der AI Text-to-Image Generierung mit Midjourney

Ein Blick ĂŒber den Tellerrand und hinein in die Welt des Creative Computing. Sind wir demnĂ€chst alle KĂŒnstler?

Inhaltsverzeichnis

Background

Das Thema Bildgenerierung und -manipulierung durch Computer wird immer prĂ€senter. Seit man 2015 von Googles DeepDream hörte und die ersten psychedelischen Bilder aus neuronalen Netzwerken sah, ist nur verhĂ€ltnismĂ€ĂŸig wenig Zeit vergangen. Was sich in diesem Zeitraum getan hat, ist jedoch fast schon unglaublich.

Da mittlerweile ganz neue Services und Modelle entwickelt wurden - vor allem die Innovation in der Text-to-Image Generierung und dem Upscaling sei hier genannt - ist die Technologie nun wesentlich zugÀnglicher, kontrollierbarer und daher einsteigerfreundlicher geworden.

Als Teil unserer wöchentlichen TeamTime (freie Weiterbildungszeit, in der nicht an Kundenprojekten gearbeitet wird) haben ein paar Kollegen und ich mit einigen dieser Services gespielt, um ein GefĂŒhl fĂŒr das Potenzial der Technologie im aktuellen Zustand zu erhalten.

Historie

FrĂŒhe Text-to-Image Modelle basierten vor allem auf dem Remix von mehreren bestehenden Cliparts zu Kollagen. Wie man sich vorstellen kann, war dieser Ansatz recht beschrĂ€nkt und ließ wenig kĂŒnstlerische Freiheit zu. Außerdem konnte man nur Begriffe verwenden, zu denen das Modell auch eine Clipart kannte. Es konnte sich sozusagen keine neuen Dinge "ausdenken".

Screenshot of some of the first alignDraw prompts
Einige der ersten alignDraw Ergebnisse

Als erstes "modernes" Text-to-Image Model wurde alignDraw 2015 von der University of Toronto veröffentlicht. Dieses konnte bereits mit Texteingaben konditioniert werden und eigene Varianten erschaffen, die nicht im Trainings-Datenset vorhanden waren. Die Bilder waren noch recht klein, verwaschen und unscharf, aber der Grundgedanke funktionierte: dem Computer in Textform zu sagen, was man haben möchte und daraus Bilder generieren. Außerdem konnte alignDraw sich neue Dinge "ausdenken" - z.B. einen roten Schulbus, obwohl das Modell nur mit gelben Schulbussen trainiert wurde.

Über die anschließenden Jahre wurden immer genauere, spezialisierte Modelle trainiert, die immer nĂ€her an "visuelle PlausibilitĂ€t" heranreichten. Zudem entwickelten die ersten Modelle eine Art "KreativitĂ€t", bei der sie fehlende Information in den Texteingaben durch randomisierte Zuordnungen ergĂ€nzten.

Mit OpenAI's proprietĂ€rem DALL-E rĂŒckte 2021 das Thema wieder ins Bewusstsein der breiten Öffentlichkeit. Es arbeitet mit der sogenannten Transformer-Methode, um seine Bilder zu generieren. 2022 wurde Version 2 veröffentlicht, welche noch realistischere und komplexere Bilder erzeugen kann.

Three images, from Midjourney AI, DALL-E 2, Stable Diffusion, showing head of an old man
Vergleich zwischen Midjourney AI, DALL-E 2 and Stable Diffusion mit gleichem Text-Input

Mit Stable Diffusion erblickte zudem das erste große Open Source Projekt in diesem Bereich das Licht. Stable Diffusion zeichnet sich durch einige Features aus, die sich von den ĂŒbrigen proprietĂ€ren Anbietern absetzen. So ermöglicht es Stable Diffusion, "vorhersehbarere" Ergebnisse zu erzielen, indem man sehr genaue Inputs - u.a. in Form von Tiefenmasken - liefert. Und da der Quellcode öffentlich verfĂŒgbar ist, kann man auf eine rapide Weiterentwicklung und interessante Forks hoffen.

Im Juli 2022 wurde zudem die Beta von Midjourney veröffentlicht. Midjourney ist ein unabhĂ€ngiges Forschungslabor, welches ebenfalls eine proprietĂ€re Text-to-Image Lösung entwickelt hat. Die Besonderheit: Jeder kann teilnehmen und das Tool ausprobieren, ohne selbst Software hosten zu mĂŒssen oder ĂŒberhaupt etwas zu bezahlen (25 Bilder sind testweise kostenlos).

Experimente

Um erste Experimente mit Text-to-Image Generierung zu machen, haben wir uns fĂŒr Midjourney entschieden - aus mehreren GrĂŒnden:

  1. Kein eigenes Hosting nötig
  2. Kostenlos (25 initiale Bilder) / KostengĂŒnstig (fĂŒr 30$/Monat kann man beliebig viele Bilder generieren)
  3. QualitĂ€t der generierten Bilder (Midjourney soll eine "ernstere" Ästhetik als viele Konkurrenten aufweisen)
  4. Der Hype (Wann immer es um dieses Thema geht, wird Midjourney als ein hervorragendes Beispiel genannt, es scheint das beliebteste Tool zu sein)

First steps

So begann also unsere Reise in die Welt der Text-to-Image Bildgenerierung. Midjourneys User Interface ist momentan noch ein einfacher Discord-Bot, also benutzten wir Discord als App, um die Bilder zu generieren. Um ein Prompt (als "Prompt" werden die Text-Anfragen bezeichnet) an den Service zu senden, schickt man einfach eine Nachricht an den Midjourney Bot, die mit "/imagine" (zu Deutsch "stell dir vor") anfÀngt.

Midjourney Prompt Screenshot

Als anschauliches Beispiel benutzen wir im Folgenden den Prompt "earth, fish", also unseren Firmennamen dekonstruiert in seine Einzelteile. Und siehe da, wir bekommen einige ganz passable Motive: 

Screenshot aus der Midjourney App, zum Prompt "Earth, Fish"
Antwort des Midjourney Bot zum Prompt "/imagine earth, fish"

Es fĂ€llt auf, dass Midjourney immer vier Varianten zu einer Eingabe generiert. Da beim Generieren der Bilder immer ein bisschen der Zufall (oder die ungerichtete KreativitĂ€t der Maschine?) mitspielt, ist dies eine gute Methode, um einen ersten Überblick zu erhalten, was fĂŒr Ergebnisse man mit dem Prompt erzielen kann. Unter jedem initialen Prompt bekommt man neun Buttons, mit denen man das Ergebnis weiter ausarbeiten kann. Die Buchstaben stehen dabei fĂŒr die Methode, die angewendet werden soll, die Zahl fĂŒr das Bild in den Kacheln.

  1. "U" steht fĂŒr "Upscale" - also die VergrĂ¶ĂŸerung des Bildes. Damit ist nicht nur ein reines vergrĂ¶ĂŸern, was die Auflösung angeht gemeint - sondern auch ein "auffĂŒllen" der entstehenden LeerrĂ€ume mit Details. Das Bild wird beim Upscale also sowohl von der Auflösung als auch von den Details her raffinierter.
  2. "V" steht fĂŒr "Variants" - also die Erstellung von Varianten aus dieser Version des Bildes. Dies kann hilfreich sein, wenn das generierte Bild schon nah an der gewĂŒnschten Komposition ist, jedoch irgendwas nicht stimmt oder man sich unsicher ist, ob es nicht noch bei einem neuen Versuch besser wird. Die Varianten werden aus dem Ursprungsbild generiert und sind diesem deshalb visuell immer sehr nah.
  3. Der "Refresh-Button" (blaues Icon) sendet das Prompt noch einmal ab, sodass mit einem neuen Seed ein weiterer Versuch gestartet wird. Er sorgt quasi dafĂŒr, dass die Bilder "neu gewĂŒrfelt" werden. Wenn man sich sicher ist, dass das Prompt genau genug ist, aber die Ergebnisse einem nicht gefallen, kann es Sinn machen ein paar mal zu "wĂŒrfeln" bis ein Bild mit der gewĂŒnschten Komposition / Ästhetik entsteht.
Midjourney Resultate illustriert
Resultate der verschiedenen Buttons in der GegenĂŒberstellung

Verschiedene Stile erzeugen

Mit dieser einfachen Methode des Anfragens und danach immer weiter Selektierens kann man bereits zu sehr ansprechenden Ergebnissen gelangen. So richtig interessant wird es jedoch, wenn man nicht nur spezifiziert, was man sehen möchte, sondern auch in welchem Stil das Bild sein soll. Generell kann man Assoziationen zu Stilen, Kunstformen oder sogar die Namen bekannter KĂŒnstler hinzufĂŒgen, um gewisse Stile zu erzwingen. Es gibt mittlerweile ganze Plattformen im Internet, welche nur Prompt-Textblöcke sammeln, die interessante Stile generieren. Einige haben sogar bereits angefangen, Prompts, die zuverlĂ€ssig einen gewissen Stil zu generieren, zu verkaufen.

Im Folgenden einige einfache Beispiele von ErgÀnzungen zum Prompt "earth, fish", die ganz unterschiedliche Artstyles generieren.

Midjourney art styles Vergleich
Ein beispielhafter Vergleich von einigen Art styles, die durch das anhÀngen von Begriffen an den Prompt erzeugt werden können

Bilder detailliert beschreiben

Bei so offenen Anfragen wie "earth, fish" ist es vor allem interessant zu sehen, was die Maschine am Ende daraus macht. Wenn die "freie" Interpretation einem jedoch nicht gefĂ€llt, wird es Zeit spezifischer zu werden. So kann man den Prompt immer mehr erweitern und StĂŒck fĂŒr StĂŒck testen, ob man sich mit den Änderungen dem gewĂŒnschten Ziel annĂ€hert. Dies kann auf unterschiedliche Weisen geschehen, hier ein paar Tipps:

  1. Dinge mit "--no" ausschließen: Wenn man im Prompt "--no" eingibt, werden alle Begriffe, die danach kommen, auf eine "Negativliste" gesetzt. Es wird bei der Generierung versucht, diese Elemente möglichst nicht erscheinen zu lassen. So haben wir z.B. bei einigen der oben dargestellten Bildern gesehen, dass die Erdkugel Flossen bekommen hat. Mit "--no fins" könnte man dies z.B. unterdrĂŒcken.
  2. Die Szenerie genauer beschreiben: man kann dem Modell recht detailliert erlÀutern, was genau man sehen möchte. So kann man z.B. einen Raum im Detail beschreiben: welche Bilder hÀngen an der Wand? Was steht auf dem Tisch? Hat der Raum Fenster? Welche Möbel / Wesen befinden sich in ihm? Je genauer die Beschreibung, desto homogener werden die Ergebnisse.
  3. Sich von der Community inspirieren lassen: Da (wenn man nicht zusĂ€tzlich dafĂŒr bezahlt hat) alle generierten Bilder öffentlich sind, kann man sich sehr gut auch von erfolgreichen Community-Mitgliedern inspirieren lassen. Unter midjourney.com findet man viele unglaublich gut gelungene Ergebnisse, bei denen man als angemeldeter User auch das benutzte Prompt auslesen kann. So kann man von anderen Community-Mitgliedern lernen, welche Begriffe und Assoziationen zu welchen Ergebnissen fĂŒhren und diese selbst ausprobieren. Hier findet man ĂŒbrigens unseren Testaccount mit all seinen Testbildern.
Screenshot von Ergebnissen von großen Midjourney Prompts
Beispiele von sehr detaillierten, langen Prompts, die durch die Community inspiriert wurden

Upscaling

Sobald man ein Motiv mit interessanter Komposition / Stimmung erstellt hat, kann man dieses mit verschiedenen Methoden "Upscalen". Upscaling im Kontext von Text-to-Image Modellen bedeutet nicht nur ein VergrĂ¶ĂŸern der Auflösung, sondern auch ein "anreichern" mit Details. Da in der Methode von kleinen groben Grafiken zu großen detaillierten Grafiken skaliert wird, muss die Maschine die entstehenden "LĂŒcken" auffĂŒllen. HierfĂŒr kommen verschiedene Algorithmen zum Einsatz. Aktuell gibt es bei Midjourney den "Detailed Upscale", "Light Upscale" und "Beta Upscale".

Der "Detailed Upscale" ist die Standard-Methode und wird fĂŒr den Initialen Upscale verwendet.

Der "Light Upscale" fĂŒgt nicht so viele kleinteilige Details hinzu und Ästhetik ist etwas "weicher". Somit kommt die "Light"-Variante besser an das ursprĂŒngliche Bild ran und ist besser geeignet fĂŒr abstrakte Elemente, Gesichter oder glatte OberflĂ€chen.

Der "Beta Upscale" produziert etwas höhere Auflösungen, addiert aber auch mehr Details zum Bild. So kann es sein, dass dieses von der Ästhetik stĂ€rker vom Ursprung abweicht, oder manchmal auch zu viel "Struktur" (Noise) erhĂ€lt.

Welcher Algorithmus Àsthetisch besser funktioniert, musste in der Praxis bei vielen Motiven einfach ausprobiert werden. Generell kann man aber sagen, dass realistische, detaillierte Motive besser mit dem Beta-Upscaler funktionieren, als einfache, flache Motive.

Midjourney Upscale Beispiele
Vergleich der verschiedenen Upscale-Stufen

Bilder als Input

ZusÀtzlich zur reinen Text-to-Image Generierung kann man auch bereits vorhandene Bilder als Ausgangspunkt angeben. So kann man zusÀtzlich zum Text-Prompt die URLs zu Bildern im öffentlichen Internet angeben, und Midjourney behandelt diese dann als einen weiteren Input. So lassen sich z.B. PortrÀts von Personen nutzen. Midjourney erstellt daraus dann PortrÀts in neuen Stilen, je nach Input.

Ebenso kann man Bilder von Szenerien eingeben und diese mit einer neuen Stimmung versehen. Außerdem ist es möglich, mehrere Bilder miteinander zu kombinieren. So könnte man z.B. ein zuvor erstelltes Bild als Hintergrund nehmen und dort die Person eines anderen Bildes hineinkopieren.

Midjourney Portrait Vergleich
Vergleich von Input und Output von Midjourney, wenn man ein Portrait als Teil des Promts verwendet

Die Experience

Was beim Ausprobieren des Tools direkt auffiel: Es macht unglaublich viel Spaß, spontan entstandene Ideen einfach einzugeben und zu sehen, was dabei herauskommt. Teile des Teams haben noch tage- und nĂ€chtelang weiter Prompts abgesendet und Bilder generiert. Teilweise einfach aus Neugier. Teilweise um Bildmaterial fĂŒr private Projekte in ungeahnter Geschwindigkeit und QualitĂ€t zu generieren. FĂŒr rapides Prototyping von visuellen Ideen ist es ein unglaublich effizientes Werkzeug.

Anwendungsgebiete

Die generierten Bilder sind meistens nicht perfekt - sie weisen oft Artefakte auf, wie dass z.B. eine Person nur vier oder sechs Finger hat oder Dinge, die zusammen hĂ€ngen sollten, getrennt sind (die Maschine versteht nicht so richtig die Konzepte dessen, was sie da malt, sie erkennt nur Muster und reproduziert diese). Jedoch sind sie dabei so gut, dass die Ergebnisse auf den ersten Blick ĂŒberzeugen - und in unserer schnelllebigen Medienwelt reicht dies meist aus. Je nach Motiv fallen die Artefakte und Fehler auch gar nicht auf, da sie als Teil des Stils erkannt werden.

Daraus ergeben sich ein paar interessante potenzielle Anwendungsgebiete, von denen ich zwei hier kurz vorstellen möchte.

In der Kreativwirtschaft

Vor allem im Marketing und Grafikdesign könnten Text-to-Image Modelle fĂŒr eine Revolution sorgen.

Zum einen machen sie die unterschiedlichsten, handwerklich schwierigen visuellen Stile der breiten Masse zugĂ€nglich. Es ist nicht mehr nötig, jahrelange Übung im manuellen Zeichnen oder Retuschieren zu sammeln, um ansprechende Ergebnisse in einem gewissen Stil zu erschaffen. Innerhalb von wenigen Minuten kann man ein Ă€hnliches Motiv als ÖlgemĂ€lde, 3D-Render oder Bleistiftzeichnung generieren, ohne jemals einen Pinsel oder Stift in der Hand gehabt zu haben.

Zum anderen sind sie ein unglaublich hilfreiches Tool, um neue Ideen visuell zu skizzieren, bevor man viel Geld in ihre Realisierung investiert. Und durch das vor und zurĂŒck zwischen Mensch und Maschine ergibt sich ein einzigartiger, effizienter KreativitĂ€tsprozess, den man am besten damit beschreiben könnte, dass Mensch und Maschine sich gegenseitig inspirieren.

Zumindest fĂŒr digitale Produktionen (aufgrund der aktuell noch recht limitierten Auflösung) ergibt sich noch ein weiter Vorteil: Es ist viel zielgerichteter und billiger, passende Motive z.B. fĂŒr Onlinemarketing oder Blogartikel generieren zu lassen, als Bildlizenzen zu kaufen. Sobald die Modelle effizient genug werden, um höhere Auflösungen zu generieren, könnte die Methode sich auch fĂŒr Printproduktionen oder Außenwerbung eignen.

Ich denke allerdings nicht, dass dadurch plötzlich alle Grafiker arbeitslos werden. Zu visueller Kommunikation gehört mehr, als nur ansprechende Motive zu gestalten. Ich hoffe eher, dass viele Schaffende diese Technologie in ihren Prozess integrieren, um Ideen schnell zu skizzieren oder auszuprobieren, bevor sie Arbeit in klassische, handwerkliche Ausgestaltung ihrer Werke legen. Auch als Inspirationswerkzeug taugt diese Technologie ungemein und könnte von vielen Menschen in der Kreativwirtschaft dafĂŒr ĂŒbernommen werden.

Automatisierte Artikelbilder fĂŒr Redaktionen

Vorstellbar wÀre auch eine Bridge zum Backend eines Drupal-Redaktionssystems zu implementieren. Das System könnte die wichtigsten Begriffe / Tags eines neuen Artikels automatisch an ein Text-to-Image Modell senden, um im Hintergrund wÀhrend des Schreibens schon einmal ansprechende Artikelbilder zu generieren.

So könnte ein Redakteur z.B. nach Schreiben des Artikels durch ein einfaches Frage-Antwort-Spiel im Drupal-Backend automatisiert ein thematisch passendes Motiv generieren. Die Redaktion wĂ€re nicht wie bisher auf Bilddatenbanken angewiesen, um Symbolbilder zu finden, sondern wĂŒrde fĂŒr jeden Artikel ein individuelles, einzigartiges Motiv generieren.

Indem man den Prompt, der im Hintergrund an das Modell gesendet wird, mit diversen Parametern "vorbefĂŒllt", könnte man zudem dafĂŒr sorgen, dass ein einheitlicher Stil ĂŒber die gesamte Redaktionsplattform hinweg genutzt wird, ohne dass die Redakteure darauf achten mĂŒssen. Dadurch kann man die visuelle IdentitĂ€t einer Plattform extrem effizient unterstĂŒtzen. So könnte man z.B. festlegen, dass nur flache, illustrative 2D-Motive mit maximal fĂŒnf Farben verwendet werden. Am Ende verbinden die User diesen festgelegten Art style mit den Artikeln dieser Plattform und haben dadurch eine starke visuelle Bindung an die Marke.

Fazit

Die Ergebnisse sind wirklich sehr oft Àsthetisch ansprechend. Und sie beinhalten oft Aspekte und Stile, die man im Prompt so gar nicht gefordert hat, aber durch die Maschine "hinzugedichtet" wurden.

Es ergibt sich ein Dialog zwischen Mensch und Maschine: Der Mensch gibt den initialen Prompt, die "Idee". Die Maschine macht daraus ihre Version. Der Mensch selektiert, was ihm gefÀllt, raffiniert den Prompt oder nimmt Dinge, die die Maschine hinzugedichtet hat und ihm gefallen, mit in den nÀchsten Prompt auf und startet von vorn.

So inspirieren sich Mensch und Maschine im Prozess gegenseitig und kommen auf Motive, die man sonst nie erdacht hĂ€tte. Ich bin wirklich gespannt, wohin uns diese Entwicklungen noch fĂŒhren werden, aktuell scheinen wir erst an der OberflĂ€che des Potenzials dieser Technologie zu kratzen.

Eines ist sicher: Text-to-Image Modelle werden Einzug in meinen Werkzeugkasten halten, und Midjourney war nur der Anfang.

Peter Gerken

Peter Gerken

Frontend Developer / Konzeption
Profilfoto Peter Gerken