Open Assistant die Open Source Variante eines KI Chatbot’s

Nun habe auch ich sie gefunden, eine quelloffene Alternative zu ChatGPT.  Ich bezeichne Open Assistant mal so, auch wenn es vielleicht nicht so gedacht ist. Und ich werde mich mal näher damit befassen und hier einiges zum nachlesen veröffentlichen. Zuerst ist es gut, das Open Assitant auch in deutsch kommunzieren kann. Jedoch habe ich, angeregt durch das Buch:

AI Prompt Masterbook: Over 800 prompt examples for ChatGPT, Midjourney & Stable Diffusion: Learn from the best prompt example lists for AI image & text generators the art of prompting. von Roth, Henrik

mal ein paar englische Test“s gemacht. Hier die Bitte eine nostalgische Landschaft zu beschreiben:

Please describe a landscape that evokes a feeling of nostalgia

Und der Open Assistant gibt mir folgende Beschreibung:

A serene and peaceful countryside with rolling hills, vast green fields, old barns, 
and rustic farm houses would evoke feelings of nostalgia for many people. The golden sun 
setting behind the trees on the horizon is a beautiful sight to behold and one that many 
people associate with simpler times in their lives. It's a scene that brings back 
memories of childhood, family gatherings, and long summer evenings spent 
outdoors. This idyllic landscape reminds us of a time when life moved at 
a slower pace and people took more time to appreciate nature's beauty.

(Model: oasst-sft-6-llama-30b )

Ok, Und wie stellt sich eine andere KI (stable Diffusion) das bildlich vor?

Stable Diffusion und Open Assistant

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Na das klappt doch auch ganz gut. Und das ganze ohne grosses Feintuning was das Bild angeht.

ChatGPT trifft Stable Diffusion

Es ist ja an sich faszinierend, was KI- System heute mittlerweile leisten können. Als ich Anfang der 90’er Jahre Ladungsdichten und chemische Verschiebung von Naphthalinderivaten miteinander verknüpft habe waren backpropagation netze das aktuelle non plus ultra. Es funktionierten damit verschieden Dinge, auch meine Vorhersagen. Heute, Generationen von Computern später, scheint es so, das der Turing Test kein Kriterium mehr für Intelligenz ist. Und das interessanteste (oder auch beunruhigendste) ist, das die Entwicklung noch lange nicht am Ende ist. Ich habe nun mal ChatGPT mit stable Diffusion kombiniert. Die Aufgabe fyr den ChatBot war die Beschreibung einer mittelalterlich deutschen Stadt. Folgende 3 Absätze waren der Auftakt der umfangreichen Beschreibung:

Die mittelalterlichen deutschen Städte waren oft von einer gut erhaltenen Stadtmauer umgeben und hatten ein Labyrinth von gepflasterten Gassen und Straßen, die von Fachwerkhäusern mit spitzen Giebeln gesäumt waren. Hier ist eine Beschreibung einer typischen mittelalterlichen deutschen Stadt:

Die Stadtmauer erstreckt sich majestätisch um die gesamte Stadt und besteht aus massiven Steinmauern, die von hohen Wehrtürmen und Bastionen gesäumt sind. Der Zugang zur Stadt erfolgt durch massive Tore mit hohen Holztoren, die von Wächtern bewacht werden. Jedes Tor ist mit Fallgittern und Zugbrücken gesichert, um die Stadt vor Eindringlingen zu schützen.

Beim Betreten der Stadt findet man sich in einem belebten Marktplatz wieder, der von eng aneinander gereihten Fachwerkhäusern dominiert wird. Die Fachwerkhäuser sind mit Holzbalken in einem charakteristischen Rautenmuster verziert und haben oft bunte Fensterläden und aufwändige Schnitzereien an den Giebeln. Die Straßen sind schmal und von Kopfsteinpflaster geprägt, und es gibt zahlreiche Markstände und Stände, an denen Waren und Waren aller Art gehandelt werden.

Den Text habe ich schnell mit Deepl.com in das englische übersetzt (übrigens auch ein KI System) und in meine lokale Stable Diffusion Installation gegeben. Es ergabe sich folgender prompt:

The city wall extends majestically around the entire city and consists of massive stone walls lined with high defense towers and bastions. Access to the city is through massive gates with high wooden gates guarded by guards. Each gate is secured with portcullis and drawbridges to protect the city from intruders. Upon entering the town, one finds oneself in a bustling marketplace dominated by closely spaced half-timbered houses. The half-timbered houses are decorated with wooden beams in a characteristic diamond pattern and often have colorful shutters and intricate carvings on the gables. The streets are narrow and characterized by cobblestones, and there are numerous market stalls and booths trading goods and wares of all kinds.

 

Und nun ein Beispielbild dazu:

 

Mit Stable Diffusion generiertes Bild

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Wenn jetzt noch die Programme direkt miteinander kommunizieren, dann haben wir die unendliche Kunst Maschine. Ob das toll ist?

Stable Diffusion WebUI – Teil 2

Im zweiten Teil meines kleinen Exkurses in die Stable Diffusion WebUI werde ich mich mit den Parametern zur Bildgenerierung beschäftigen. Die Steuerzentrale findet sich auf der linken Seite der WebUI und ist hier noch einmal dargestellt.

 

Zur Demonstration werde ich einige Beispielbilder generieren. Das Ausgangsbild für alle Variationen ist das nachfolgende. Die Parameter packe ich in eine Spoiler-Box.

"Startparameter" one astronaut is looking at a colorful flower at the moon Negative prompt: stock image, blocks, jpeg, jpg, dusty particles, blurry, smooth, smudges, frame, words, text, signature, watermark, paint brush, drawing pad Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 3096444021, Size: 512x512, Model hash: e1441589a6, Model: v1-5-pruned

Widmen wir uns nun zuerst der Sampling Methode. Hier gibt es mittlerweile eine Vielzahl von Algorithmen. Technisch kann man sich das so vorstellen: Stable Diffusion braucht ein Startbild aus dem es unter Berücksichtigung des Prompts Rauschen entfernt. Dazu werden sogenannte VAE (variational autoencoder) verwendet. Diese stellen neuronale Netze dar, die aus Datensätzen nützliche Informationen extrahieren sollen. VAE finden daher nicht nur bei der Bildgenerierung Anwendung (für manche Modelle muß man auch die passenden VAE mit laden). StabilityAI, die Macher von stable Diffusion, haben sich für die Bilderstellung für die Verwendung von sampling Methoden entschieden. Sie sind daher eine große Spielwiese zum Probieren. Und man kann nicht wirklich sagen, welche Methode die Beste ist. Die folgende große Abbildung zeigt eine Vielzahl verschiedener Bilder, die mit unterschiedlichen Sampling Methoden erzeugt wurden. Die linke Spalte enthält dabei den Seed unseres Startbildes. Ich habe noch weitere zufällig erzeugte Seeds mit aufgenommen, damit man auch einen Eindruck erhält, wieweit die Seeds (die die Generierung des Startrauschens beeinflussen) sich auf das erzeugte Bild auswirken.

Was mir dabei auffällt ist, das wir sehr viele Astronauten haben, mit Gesicht, ohne Gesicht, männliche und weibliche Astronauten. Dazu sehr oft auch der Mond, aber Blumen erscheinen nur auf einem Bild. Das ist jetzt auch nicht unbedingt verwunderlich, denn es wird sicher nicht viele Bilder geben, die einen Astronauten auf dem Mond zeigen, der eine Blume anschaut. Wer will, kann gerne einmal die Suchmaschine seines geringsten Misstrauens mit einer Bildersuche betrauen. Das ist übrigens auch eine gute Idee, um generell mal einen Prompt zu testen. Vor allem wenn er nicht das liefert, was man sich so vorstellt. Der nächste und für diesen Teil letzte Parameter ist der cfg- Wert. Er bestimmt, wie exakt sich das Modell an den Prompt halten soll. Ein niedriger Wert bietet dem Modell mehr Freiheiten, ein hoher Wert liegt dann halt näher am Prompt. Das folgende Bild zeigt dies wieder für verschiedene Seeds und cfg- Werte.

Bei unterschiedlichen Seeds mit unterschiedlichen cfg- Werten generierte Bilder.

Deutlich erkennbar ist eigentlich nur ein qualitativer Abfall bei einem cfg- Wert von 3 und 5. Danach sind die Unterschiede wenig signifikant. Und wir finden erstmals ein Bild, bei dem ein Astronaut ein Blume betrachtet. Und zum Abschluss noch eine Darstellung mit den 5 seeds u7nd unterschiedlichen Modellen. Man erkennt schon einen großen Einfluss der Modell auf das Resultat wobei keine Anpassung der Prompts vorgenommen wurde. Hier finden sich dann durchaus Ergebnisse die dem von mir erhofften nahe kommen.