Die Wörter, die wir beim Prompting verwenden, werden Tokens genannt. Jedes Token hat seine eigene Macht, die von seiner Häufigkeit im Datensatz abhängt, der zum Trainieren der KI verwendet wurde. Wir werden gleich in die technischen Details eintauchen, aber zuerst konzentrieren wir uns darauf, wie man Tokens praktisch betrachtet.
Schauen wir uns ein Beispiel an: Ich promptete „1girl wearing white oversized coat with >< and outstretched arms“. Wenn jedes Wort ein Token ist, haben wir 11 Tokens.
(Wenn Sie diesen Prompt in BetterWaifu eingeben, wird der Token-Zähler 13 anzeigen. Dies liegt daran, dass <start> und <end> Tokens von der KI im Hintergrund hinzugefügt werden. Mehr dazu im nächsten Abschnitt.)
Präpositionen wie „with“, „for“, „at“, „in“ und Partikeln wie „and“, „a“, „to“ zählen als Tokens. Somit haben sie auch Macht und beeinflussen das Bild.
Versuchen wir denselben Prompt ohne Partikeln oder Präpositionen: „1girl, white oversized coat, ><, outstretched arms“. Kommas zählen als Tokens, also haben wir immer noch 11 Tokens, 13 mit den Start- und Endtokens. Das Ergebnis ist ganz anders:
Ich mag dieses Ergebnis besser, weil es aussieht, als wäre mehr Aufmerksamkeit auf den Mantel gelegt worden. Das Komma-Token wird verwendet, um zwischen verschiedenen Konzepten zu unterscheiden.
Obwohl die Verwendung von komma-separierten Tags mein empfohlener Ansatz für das Prompting in BetterWaifu ist, bedeutet das nicht, dass das Entfernen aller Präpositionen und Partikeln immer das Ergebnis verbessert. Manchmal ist es wichtig, Präpositionen zu verwenden, um relative Positionen anzuzeigen.
Hier ist ein einfaches Beispiel, wann eine Präposition den Unterschied ausmacht:
1girl, airplane, white oversized coat, ><, outstretched arms1girl inside airplane, white oversized coat, ><, outstretched arms
Neben der inhärenten Stärke eines Tokens ist auch seine Position im Prompt gewichtet. Tokens am Anfang haben ein größeres Gewicht als Tokens am Ende. Es ist wichtig, dies zu verstehen, da ein schwaches Token am Ende des Prompts keinen Einfluss auf das Bild haben kann. Umgekehrt kann ein starkes Token am Anfang das Ergebnis vollständig bestimmen.
Um die Stärke eines Tokens zu steuern, können Sie die Konstruktion (token:1.0) verwenden, wobei die Zahl die Stärke des Tokens darstellt. 0 – kein Einfluss, 1 – normales Gewicht. Ich gehe normalerweise nicht über 1.5 hinaus. Mit verschiedenen Stärke-Werten zu experimentieren kann Ihnen helfen, das gewünschte Maß an Kontrolle über die Tokens in Ihren Prompts zu verfeinern.
Technische Erklärung
Tokenisierung ist eine gängige Methode zur Verarbeitung von Textdaten in der KI-Generierung. Wir verwenden sie, um den Text in Zahlen umzuwandeln und mit neuronalen Netzwerken zu verarbeiten.
Stable Diffusion tokenisiert einen Text-Prompt in eine Sequenz von Tokens. Zum Beispiel wird der Text-Prompt „a cute and adorable bunny“ in die Tokens a, cute, and, adorable und bunny aufgeteilt. Dann fügt Stable Diffusion <start> und <end> Tokens am Anfang und am Ende der Tokens hinzu.
Die resultierende Token-Sequenz für das obige Beispiel wäre <start>, a, cute, and, adorable, bunny und <end> (7 Tokens).
Zur einfacheren Berechnung hält Stable Diffusion die Token-Sequenzen aller Text-Prompts auf die gleiche Länge von 77, indem sie aufgepolstert oder gekürzt werden. Wenn der Eingabe-Prompt weniger als 77 Tokens hat, werden im Hintergrund <end> Tokens am Ende der Sequenz hinzugefügt, bis sie 77 Tokens erreicht.
Die Länge von 77 wurde festgelegt, um Leistung und rechnerische Effizienz auszubalancieren. Verschiedene Software wird sich unterschiedlich verhalten, wenn mehr als 77 Tokens verwendet werden:
Die ersten 77 Tokens werden beibehalten und der Rest wird abgeschnitten.
Der gesamte Prompt wird in Stücke von 75 zerlegt, Start- und Endtokens werden hinzugefügt, und jedes Stück wird der Reihe nach verarbeitet. Dies ist die Methode, die BetterWaifu verwendet.