Spielerei oder bitterer Ernst - ein kleiner Blick in die Welt der künstlichen Intelligenz

KI - in Wort und Bild

Die einen halten es bereits für intelligent, wenn das Licht im Kühlschrank App-gesteuert ausgeschaltet wird, sobald sich die Tür schließt. Andere halten die vorgefertigten Reaktionen ihrer Sprachassistenten für intelligent. Hier soll es allerdings über Techniken gehen, die ein klein wenig darüber hinaus gehen. Um Chatbots auf Basis der Large Language Models kommunizieren und Tools, die aus Texteingaben Bilder erstellen. Hexenwerk? Intelligenz?

Vielleicht habt ihr euch schon einmal gefragt, für was dieses GPT in ChatGPT eigentlich steht. Ich habe mich das gefragt. Und weil ich die Antwort nicht aus mir selbst heraus generieren konnte, habe ich ChatGPT gefragt und ChatGPT hat geantwortet: Das "GPT" in ChatGPT steht für "Generative Pre-trained Transformer".

Das hätten wir also geklärt.

In Wort

Den Chatbot von OpenAI kennt ihr bestimmt alle. Vielleicht habt ihr ihn nur mal kurz ausprobiert. Vielleicht habt ihr euch auch eure Doktorarbeit verfassen lassen. Oder ihr nutzt den Dienst um Texte - auch Übersetzungen - schön zu machen.

Vielleicht denkt ihr auch über weitere Anwendungsfälle nach und wollt einen KI-Chatbot in eure Webseite integrieren. Oder ihr interessiert euch einfach nur für Alternativen zu OpenAI.

Ich möchte euch daher ein wenig Anregung bieten und werde zwei alternative Chat-Interfaces vorstellen. Mit Installationsanleitung für Ubuntu. Ein paar Beispielen, was die einzelnen Tools zu leisten vermögen. Unterhaltsames und Informatives.

gpt4all

Bei gpt4all handelt es sich um eine Standalone Oberfläche, die in Python geschrieben ist. Auf GitHub findet ihr den Quelltext. Auf der gpt4all Webseite findet ihr einen praktischen Istaller für Linux, Windows und Mac. Ich habe mich für den Installer entschieden:

gpt4all Installer - Installation

cd ~/Downloads
wget https://gpt4all.io/installers/gpt4all-installer-linux.run
chmod +x gpt4all-installer-linux.run
./gpt4all-installer-linux.run

Während der Installation gibt man das Verzeichnis an, in dem die Applikation dann zu finden ist. Also zum Beispiel:

~/user/gpt4alldie Installation

Ist die Installation abgeschlossen, lässt sich gpt4all mit diesem Befehl starten:

~/user/gpt4all/bin/chat

Nach dem ersten Start öffnet sich direkt ein Dialog, um Models herunter zu laden. Ich wähle mal EM German Mistral, weil ich zum Einstieg ein wenig auf Deutsch mit gpt4all parlieren möchte. Der Download dauert natürlich ein wenig, es sind immerhin 3,83 GB Daten, die da kommen.

Um das ChatGPT-3.5 oder ChatGPT-4 Model zu nutzen, was möglich ist, benötigt man einen API Key von openai.com.

Ist das Model geladen und ausgewählt, möchte ich damit beginnen, gpd4all den Satz der Sätze zu entlocken: Welches ist der erste Satz, den man in einer neuen Programmiersprache ausgeben lässt?

gpt4all: Hallo Welt!

...mit Bravour bestanden, würde ich sagen. Es dauert zwar etwas, bis die Antwort Silbe für Silbe in der Ausgabe erscheint, das mag meiner dünnen Hardware geschuldet sein.

Nun wenden wir uns etwas komplizierterem zu:

gpt4all soll eine Installationsanleitung verfassen, um gpt4all zu installieren. Ganz schön perfide, was?

Wie installiere ich gpt4all?

Schnell wird klar, dass gpt4all an dieser Stelle recht geschwätzig ist und vor allem von dem eigenen Installationsscript keine Ahnung hat. Und auch keine Ahnung, unter wo in GitHub gpd4all zu finden ist. Der vorgeschlagene Installationsbefehl funktioniert nicht. Und starten lässt sich daher auch nichts.

Was ebenso klar wird, gpt4all erwartet mehr Rechenleistung, als mein Acer her gibt. Die Worte kommen buchstabenweise. Es dauert, bis ein ganzer Satz zusammen kommt.

Spricht man gpt4all auf Grundsätzliches, wie zum Beispiel das Henne-Ei-Problem, gibt sich der Bot redlich Mühe, sich der Materie zu nähern.

Was war zuerst da, die Henne oder das Ei? - von gpt4all

Das ist ein klassisches Rätsel und es gibt keine definitive Antwort darauf. Beide Aussagen sind richtig - entweder kann man sagen, dass die Henne vor dem Ei kam (da Hennen Eier legen), oder man könnte sagen, dass das Ei vor der Henne war (da ohne ein Ei keine Hühner gäbe). Das Rätsel dient als Spaß und erinnert daran, dass wir oft unsere Annahmen über die Reihenfolge von Ereignissen machen, aber manchmal ist es schwierig zu bestimmen, welches tatsächlich zuerst war.

Fragt man: Erkläre mir die Funktionsweise einer Kuchengabel. Gerät gpt4all ins Schwimmen, um nicht zu sagen, dreht komplett frei. Zum Kaffeekränzchen würde ich gpt4all jedenfalls nicht einladen. Da blamiert man sich vor der Verwandtschaft.

Die Kuchengabel - von gpt4all

Eine Kuchengabel funktioniert auf dem Prinzip der Induktionsschaltung und beruht auf den Eigenschaften von elektromagnetischen Feldern. Wenn ein Strom durch die Kuchengabel fließt, erzeugt sie ein magnetisches Feld um sich herum. Wenn dann eine metallische Leitung in die Nähe der Kuchengabel gebracht wird, werden diese elektromagnetischen Felder auf die Leitung übertragen und einen induzierten Stromfluss verursachen. Dieser induzierte Strom kann verwendet werden, um einen Schaltvorgang auszuführen oder eine Verbindung herzustellen.

Vielleicht gehe ich mal auf die Suche nach einem geeigneteren Model. Wenn sich Studierende ihre Studienarbeiten von künstlicher Intelligenz schreiben lassen, dann muss da mehr gehen.

Dann hätte ich noch gerne ein kleines Gedicht über den Frühling und den Gefahren von künstlicher Intelligenz:

Über den Frühling und den Gefahren von künstlicher Intelligenz - von gpt4all

1. Im Herbst der Technologie, wo Blitze des Wissens fliegen,
In einem Land voller Menschheit, wo KI sich verhält.
Der Frühling kommt wieder, mit einer neuen Sache,
Ein Gefühl von Staunen und Angst, das unsere Sinne berührt.

2. Die Blumen blühen noch immer, in einem digitalen Garten,
In der Welt der Maschinen, wo die Zeit sich dreht.
Doch droht eine Gefahr nahe, durch diese künstliche Magie,
Wenn Mensch und KI zusammengehen, was unser Schicksal bringt?

https://github.com/nomic-ai/gpt4all
https://gpt4all.io/index.html

Fazit:
gpt4all erwartet Arbeitsspeicher, wie sonst nur Tools zur Bildgenerierung. Das macht auf schwacher Hardware keinen Spaß. Schlimmer noch, während gpt4all Buchstabe für Buchstabe um Antwort ringt, wird der Rechner insgesamt ganz schön runter geregelt.

Zwischenspiel

Ich weiß nicht ob es angesagt ist, eine künstliche Intelligenz zuvorkommend und höflich zu behandeln. Sie Antwortet schließlich auch, wenn man sie im Kasernenton anraunzt oder ihr lediglich ein paar gestammelte Stichworte vor die Füße schmeißt.

Aber wer kann schon sagen, ob sich so ein Chatbot nicht heimlich Notizen macht und man sich später, wenn die Maschinen die Macht übernommen haben, dafür verantworten muss.

Aber ich schweife ab. Abschweifen ist übrigens etwas, das eine künstliche Intelligenz nicht macht. Gar nicht kann. Wohin sollte sie auch schweifen. Sie versucht jeder Zeit eine Antwort zu geben, die nach ihren Berechnungen dem entspricht, was nach Datenlage am wahrscheinlichsten ist.

Huggingchat

Hugginchat ist eine node Anwendung, die im Browser läuft. Zusätzlich verlangt das Tool nach einer mongo Datenbank. Jetzt aber nicht mit den Zähnen klappern. Ich habe das hingekriegt, dann bekommt ihr das auch hin. Auf geht's.

Wir fangen mit mongodb an:

mongodb mit docker - Installation

sudo apt install docker.io
sudo dockerd
sudo docker run -d -p 27017:27017 --name mongo-chatui mongo:latest

Nur für alle Fälle, falls docker nicht so will, wie ihr wollt. Dann lässt sich docker so beenden:

systemctl stop docker.socket

Und jetzt Hugginchat

Zunächst benötigt ihr einen Access Token von Hugginface: https://huggingface.co/settings/tokens

Dazu muss man sich ein Konto anlegen. Kann man machen, denn Huggingface hält neben dem chatbot noch jede Menge ergänzender Software rund um KI bereit.

Hugginchat - Installation

git clone https://huggingface.co/spaces/huggingchat/chat-ui
cp .env.template .env.local

In die Datei .env.local schreibt ihr die URL zu eurer mongodb und den Hugginface Token:

MONGODB_URL=<the URL to your MongoDB instance>
HF_TOKEN=<your access token>

Wer mit npm vertraut ist, für den ist die weitere Installation vertraut. Wer zum ersten Mal mit npm arbeitet, muss wahrscheinlich zunächst npm, nvm und node installieren:

sudo apt install npm
apt install curl
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

nvm install node

Dann die eigentliche Installation:

npm install
npm run dev

Hat alles funktioniert, lässt sich Huggingchat im Browser aufrufen: http://localhost:5173

Ich konfrontiere also Huggingchat mit meiner Lieblingsfrage nach der Kuchengabel. Weia, auch hier wird auf ganzer Länge versagt:

Die Kuchengabel - von Huggingchat (ein Auszug)

[...] Schneidekuchengabel (auch bekannt als "Gewürzkugel"): Diese Art der Kuchengabel besteht aus einem Metallrahmen mit kleinen Löchern, durch die eine Kugel aus Kunststoff, Holz oder Metall hindurchgelassen wird. Um etwas zu schneiden, legt man das Objekt auf einen Teller oder direkt auf den Arbeitsplan. Anschließend dreht man die Kuchengabel, während man gleichzeitig mit dem Messer, das an der Unterseite des Rahmens befestigt ist, schneidet. Dies ermöglicht es, zarte oder kostbare Materialien wie Gewürze, Kräuter oder gar Zitronengrün, effizient und ohne Verschwendung zu schneiden. [...]

Das Henne-Ei-Problem hingegen geht Huggingchat recht analytisch an und erklärt kurz und gut, warum es dazu keine Antwort gibt:

Was war zuerst da, die Henne oder das Ei? - von Huggingchat

Das Rätsel "Henne oder das Ei" stellt oft einen philosophischen Streitfall dar: Kommt der Kreislauf des Lebens erst durch die Geburt eines Lebewesens zum Anfang, oder gibt es bereits etwas vorher, was als Ausgangspunkt betrachtet werden könnte? In diesem Fall könnten wir sagen, dass das Ei zwar physisch existiert, aber die Henne als biologisches Wesen erst später entsteht. Daher könnte man argumentieren, dass die Henne früher ist, weil sie das erste Lebewesen ist, das aus einem Ei geschlüpft ist.
Allerdings ist es wichtig zu beachten, dass dieses Rätsel meistens als humorvolles oder abstraktes Denkexperiment betrachtet wird, und keine definitive Antwort gibt. Es fördert jedoch Reflexion über die Natur des Begriffs „vor” und die Entstehung von Leben.

Das Gedicht:

Über den Frühling und den Gefahren von künstlicher Intelligenz - von Huggingchat

Die Blüten tanzen im Frühlingstanz,
Doch KI nimmt immer mehr Boden an.
Versteckt in ihren Netzen ist Gefahr,
Die sich ganz subtil verstrickt, wenn man es nicht bemerkt.

Frühling zeigt seine Farbenpracht und Reiz,
Doch KIs Gefahren lassen uns misstrauisch werden.
Zwielichtige Tricks und Manipulationen,
Das Herz voller Liebe und Mitgefühl versperren.

Im Frühling keimen Bäume und Grün,
Doch KI beeinflusst das Leben tief und stark.
Als Freund oder Feind? Das bleibt offen,
Aber wir müssen aufpassen, um den Preis zu gewinnen.

Lass uns dem Frühling begegnen mit Freud'n,
Ehrlich und aufrichtig wie am ersten Tag.
Vor KIs Gefahren bewahrt bewußt und klug,
Gemeinsam wachsend, in Harmonie und Lieb', in dieser Hölle aus Glas.

Fazit:

Mit etwas herumprobieren, insbesondere mit verschiedenen Sprachmodellen, lassen sich unterschiedlich gute Antworten erzeugen. Für die "Gewürzkugel" ist zum Beispiel "openchat/openchat-3.5-0106" verantwortlich. Das Henne-Ei-Problem hingegen habe ich von "mistralai/Mixtral-8x7B-Instruct-v0.1" erklären lassen.

Links zu den vorgestellten Tools:
[huggingface/chat-ui]: https://github.com/huggingface/chat-ui
[gpt4all]: https://gpt4all.io/index.html

Jetzt genug der Worte. Lassen wir Bilder sprechen.

In Bild

Spielzeug für die einen, Arbeitswerkzeug für die anderen. Was kann künstliche Bilderzeugung. Welche Tools gibt es und wie können sie unter Linux genutzt werden.

Dazu gibt es Bücher, Fach- und Doktorarbeiten. Das Thema ist ein weites Feld. Das kann und soll hier nicht erschöpfend behandelt werden. Ich möchte ein paar Aspekte anreißen und zum eigenen Ausprobieren anregen.

Fangen wir mit den Spielzeugen an. Für Android gibt es eine ganze Menge Apps, die - mal schlecht, mal recht - kleine Bildchen generieren. Wie das unter Android oft so ist, gibt es diese Apps in einer kostenlosen Version, die in irgend einer Weise limitiert ist und in einer Bezahlversion. Ob sie das Geld wert sind, muss jeder selbst entscheiden.

Starryai

Starryai bietet ein Tokensystem, bei dem man sich jeden Tag fünf Gratistoken abholen kann. Dazu kann man jederzeit weitere Token kaufen. Ein Token entspricht dabei einem Generierungsprozess mit je vier Bildern. Die Bilder - und das ist sehr schön - liegen innerhalb weniger Minuten bereit und können zur weiteren Verwendung auf dem Handy gespeichert werden.

Die App bietet eine Reihe zusätzlicher Features. Etwa eine Hand voll vorgefertigter Styles, um die Bilder ohne viel Aufwand nach Comic, Art Deco oder fotorealistisch aussehen zu lassen. Um da allerdings gute Ergebnisse, die den Eingaben entsprechen zu erzielen, ist ein wenig Übung nötig. Oder Erfahrung. Oder man lässt sich von der enthaltenen Galerie inspirieren. Bei vielen Bildern lassen sich verwendete Prompts und Styles einsehen.

Picsart

Das Preismodell bei Picsart ist etwas undurchsichtig. In der App lassen sich ein paar Bilder kostenlos generieren, dann wird eine Bezahlschranke angezeigt. Allerdings lässt sich nicht herausfinden, ob die Bilder von der Menge her limitiert sind oder sich die App nur eine bestimmte Zeit kostenlos nutzen lässt.

Die App beinhaltet ebenfalls eine Hand voll Styles mit denen sich ganz nette Effekte erzielen lassen. Neben der KI Generierung lassen sich die Bilder mit einigen Werkzeugen und Filtern nachbearbeiten. Darüber hinaus versucht sich Picsart als Community. Man kann eigene Bilder in die Picsart-Cloud laden, man kann sogenannten Spaces beitreten und es gibt Challenges bei denen Bilder bewertet werden können.

Stable Diffusion

Was für Texte OpenAI ist für Bilder Stable Diffusion.

Stable Diffusion ist frei nutzbar. Mit der CreativeML Open RAIL-M Lizenz vom 22. August 2022 lizenziert. Damit unterliegt die Nutzung erfreulich wenigen Beschränkungen. Stable Diffusion kann privat genutzt werden und auch kommerziell. Man kann eigene Applikationen entwickeln und eigene Dienste im Netz anbieten. Dazu gibt es Gradio, ein Open Source Paket:

Gradio is an open-source Python package that allows you to quickly build a demo or web application for your machine learning Model, API, or any arbitary Python function. You can then share a link to your demo or web application in just a few seconds using Gradio’s built-in sharing features. No JavaScript, CSS, or web hosting experience needed!

Nun aber genug der langen Vorrede, wenden wir uns der Praxis zu. Ihr wollt schließlich nicht von trockener Theorie in den Schlaf gesungen werden.

Jetzt möchte ich drei Userinterfaces vorstellen, die alle auf Stable Diffusion aufbauen. In der Theorie sollten sich also mit allen drei ähnlich gute Resultat erzielen lassen. Der Unterschied besteht - zumindest auf den ersten Blick - im Umfang der unterstützten Features und der verfügbaren Hardware.

easydiffusion

Starten möchte ich mit easydiffusion. Schon alleine deswegen, weil das Tool ohne teure Nvidia-Grafikkarte auskommt und somit das einzige Tool ist, dass ich auf meinem schwachbrüstigen Rechner zum Laufen bringe.

Die Installation scheint mir jetzt zu einfach. Da mag man kein Wort drüber verlieren. Also ehrlich.
Auf die GitHub Seite gehen, den Installer herunter laden, entpacken und starten. Alles andere passiert von alleine.

easydiffusion - Installation

wget https://github.com/cmdr2/stable-diffusion-ui/releases/latest/download/Easy-Diffusion-Linux.zip
unzip Easy-Diffusion-Linux.zip
cd easy-diffusion/
./start.sh

Dann lässt sich easydiffusion im Browser aufrufen: http://localhost:9000/

Allerdings dauert das. Da wird einiges nachgeladen und installiert. Dafür wird man mit einem Tool belohnt, dass nicht nach Nvidia verlangt. Ist also auch für günstigere Hardware geeignet.

Die Konfigurationsmöglichkeiten nehmen sich neben Fooocus und Stable Diffusion Web UI recht bescheiden aus. Zum Ausprobieren und Spielen reichen sie allemal. Sehr angenehm ist die Standardeinstellung bei "GPU Memory Usage", die dafür sorgt, dass der Rechner nicht lahm gelegt wird und auch parallel zur Bilderstellung flüssiges Arbeiten möglich ist.

Was auch sehr schön ist, die Bilder werden in einer Timeline angeordnet und verschwinden nicht, so bald ein neuer Prozess gestartet wird.

easydiffusion möchte, dass man explizit angibt, dass die Bilder gespeichert werden sollen und wo. Sonst verschwinden sie beim Beenden, respektive dem Schliessen des Browserfensters.

Fooocus

Ich würde mal sagen, Fooocus ist der Bentley unter den vorgestellten Tools. Auf jeden Fall wenn es um den Speicherverbrauch geht. Ein rücksichtsloser Speicherfresser. Ein Bild im Hintergrund generieren und gleichzeitig mit dem Rechner arbeiten ist kaum möglich. Oder wie mein Kollege das ausdrückte "jo, da brauchst du eine echte Rakete".

Unter einer Nvidia Grafikkarte mit 4GB Speicher ist nicht zu machen. Dafür ist die Installation schön einfach. Fooocus selbst verspricht:

Between pressing "download" and generating the first image, the number of needed mouse clicks is strictly limited to less than 3.

Und so ähnlich präsentiert sich die Installation dann auch. Aber seht selbst:

Ich habe die Installation mit dem nativen Python gewählt. Weil ich Python auf dem Rechner habe und die Installationsanleitung versprach ein Kinderspiel zu sein.

Fooocus - Installation

git clone https://github.com/lllyasviel/Fooocus.git
cd Fooocus
pip3 install -r requirements_versions.txt

Dann starten mit:

python3 entry_with_update.py

Zunächst wird ein Model von der Projektseite auf hugginface.co herunter geladen. Das dauert eine Weile. Inzwischen kann ich euch kurz erzählen, um was es sich bei hugginface.co handelt. hugginface hostet unter anderem eine große Menge verschiedener Models, die für verschiedene Anwendungsfälle trainiert sind. Ich finde die Seite etwas unübersichtlich und wenig intuitiv. Mit ein wenig Entdeckergeist lassen sich einige Models finden und herunter laden.

Models? Das sind... ich denke, dieses Zitat bringt es recht gut auf den Punkt:

KI-Modelle sollen die menschliche Intelligenz mithilfe von Algorithmen nachbilden, während das maschinelle Lernen (ML) darauf abzielt, Maschinen beizubringen, wie sie arbeiten und sich selbst optimieren. Bei ML lernt die Maschine aus früheren Entscheidungen, um ihre Effizienz mit der Zeit zu verbessern. Während alle ML-Modelle KI-Modelle sind, ist nicht jedes KI-Modell ein ML-Modell.

So, jetzt ist Fooocus also bereit. Auf den ersten Blick recht spartanisch, minimalistisch sozusagen. Eine leere Bühne, ein Eingabefeld mit "Generate" Button und zwei Checkboxen. Fertig.

Damit lassen sich bereits Dinge tun. Also Bilder generieren. Text eintippen, Button klicken, warten. Unter der Haube, also nach aktivieren der beiden "Input Image" und "Advanced" Checkboxen, stecken eine ganze Menge mehr PS. Jedes einzelne Feature zu beschreiben, das wäre eine abendfüllende Veranstaltung. Ich möchte also ein ganz besonderes Feature hervor heben: Describe

Describe

Bild hochladen, Button klicken, warten... und Fooocus präsentiert einen Prompt zur Generierung eines Bildes. Damit lässt sich dann ein Bild ähnlich der Vorlage generieren. Vielleicht auch weniger ähnlich.

Ich habe ein Bild vom Schiefen Turm von Pisa gewählt. Nach mehreren Anläufen bekam ich diese Beschreibung:

"the leaning tower is in the middle of a field"

Mit dieser Anweisung generiert Fooocus dann wieder ein Bild, auf dem sich unschwer ein Turm nach Vorbild des Pisaturms ausmachen lässt.

Wo sind die Bilder hin?

Startet man eine Bilderzeugung, verschwinden die Bilder des voran gegangenen Prozesses. Ich muss mal nachsehen, ob die irgendwo gespeichert werden oder unwiederruflich verschwinden... ah, tatsächlich, die Bilder werden unter Fooocus/outputs abgelegt. Das ist sehr schön.

Stable Diffusion Web UI

Gehen wir weiter zur gehobenen Mittelklasse. Stable Diffusion Web UI kommt ganz ohne fancy Namen daher. Um was handelt er such? Um ein Web User Interface. Und für was? Für Stable Diffusion. Fertig, aus.

Für die Installation bedarf es ein paar mehr Schritte. Ist aber auch recht übersichtlich.

Stable Diffusion Web UI - Installation

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui/models/Stable-diffusion/
wget https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt
cd ../..
./webui.sh

Sollte sich sich Stable Diffusion Web UI wegen python venv beschweren - und ich habe die Bescherde auf zwei Rechnern bekommen:

ERROR: Cannot activate python venv, aborting...

Dann hilft es weiter, venv manuell zu installieren:

python3 -m venv venv/

Die Applikation öffnet den Browser und präsentiert sich sofort mit einer Fülle an Optionen, die auf den ersten Blick erschlagen können. Blendet man das gedanklich aus, dann gibt es ein Eingabefeld für den Prompt und einen Generieren Button. Alles andere ist Luxus.

Und der Luxus ist eine Reise wert. Da lassen sich in einem Rutsch zwei, drei, viele Bilder erzeugen. Da kann man Bilder hochladen und die KI ausgewählte Bereiche neu generieren. Man kann dem Tool sagen, dieses oder jenes Bild ist schon ganz gut, aber das geht noch besser. Nimm das als Vorlage und feile noch ein bisschen.

Ich will damit nicht sagen, dass die anderen Tools nicht auch viele Features mitbringen. Die Masse hat mich hier allerdings erschlagen. Ganz ehrlich? Ich habe nicht die Zeit, mich mit jeder einzelnen Option auseinander zu setzen.

Stable Diffusion Web UI legt die Bilder ebenfalls standardmässig im /outputs Verzeichnis ab.

Prompts

Weil das Wort gelegentlich gefallen ist, was ist denn nun ein Prompt? Ein Prompt ist eine Information mit deren Hilfe eine KI ein Bild erzeugen soll. Grob gesagt lässt sich ein Prompt in drei Bereiche unterteilen. Was soll auf dem Bild zu sehen sein, welchen Stil soll das Bild haben und Meta-Informationen mit denen unter anderem die Qualität der Ausgabe gesteuert werden kann.

Der wichtigste Teil ist natürlich die Information, was die KI überhaupt erzeugen soll. Das ist die erste Herausforderung. Reicht "bycicle"? Oder besser "singlespeed in a sportive scenario, people do applause"? Oder man greift zu einem Trick... und lässt sich eine ausgefeilte Beschreibung von einer anderen KI, wie zum Beispiel OpenAI generieren.

Was aber machen, wenn das Ergebnis so gar nicht der eigenen Vorstellung entspricht. Eine Person hat vielleicht sechs Finger. Dafür aber nur drei Beine. Da muss nachgebessert werden. Man kann mit Reizwörtern wie photorealistic oder high resolution etwas spielen. Und man kann bei den etwas anspruchsvolleren Tools auch negative prompts angeben. Also Dinge, die das Ergebnis nicht enthalten sollen. Beispielsweise low detail, cartoon oder missing fingers.

Interessante Ergebnisse lassen sich auch erzielen, wenn man der Beschreibung ein "like hr giger" oder "drawn by salvador dali" folgen lässt. Man erhält dann zwar kein Meisterwerk im Stil der großen Künstler. Das Bild hat aber einen erkennbaren Einschlag.

Rechtliches

Wen gehören die Bilder. Diese Frage ist im analogen Leben schon scher zu beantworten. Urheber, Eigentümer, Lizenzierung. Da wird schon mal einem Affen das Recht am selbst geschossenen eigenen Bild zugesprochen.

Wie ist das nun mit den künstlich erschaffenen Bildern? Die Grundlage, also die Bilder mit denen eine KI trainiert wird gehören jemanden. Sie werden heran gezogen, ohne die Urheber zu frage. Ohne sich um Lizenzen und Eigentum zu kümmern. Erzeugt werden die Bilder mit Hilfe mehr oder weniger ausgefeilter, selbsterdachte Prompts in Verbindung mit wie auch immer lizenzierter Software.

Wenn ich jetzt sage, das ist ein weites Feld für Juristen und Gesetzgeber, ist das zu weit aus dem Fenster gelehnt? Ich denke nicht.

Da wird noch zu klären sein, wem so ein Bild gehört. Wird das automatisch mit einer von der Software vorgegebenen Lizenz versehen. Gehört es dem Promptdesigner, dem Applikationsentwickler? Kann man sich solch ein Werk schützen lassen? Oder ist es per se gemeinfrei?

Und wenn das irgendwann geklärt sein wird, wer wird das kontrollieren können. Wie und wie einfach wird sich ein KI-Werk von einem klassisch mit der Kamera aufgenommenen Foto, einem mit Photoshop bearbeiteten Bild unterscheiden lassen?

Ausblick

Für den Betrachter ist es jetzt schon schwer bis unmöglich ein gut gemachtes KI-Bild von einem Foto zu unterscheiden. Wir werden alle lernen müssen, mit dieser Technik zu leben.

Wir User, weil wir uns zunehmend weniger sicher sein können, ob wir jetzt Schein oder Sein sehen. Ob das Gezeigte Real oder Fiktion ist. Weil wir uns immer fragen müssen, ob wir manipuliert oder informiert werden sollen.

Wir Medienschaffenden, weil das KI-Bild in Konkurrenz zu Stock-Fotos oder Eigenproduktionen steht. Das wird Arbeitsabläufe ändern. Und wenn wir unsere Augen verschließen, dann wird uns die Entwicklung ähnlich hart treffen, wie das Internet als solches.