Willst du dich auch in eine Person mit asiatischen Wurzeln transformiert sehen?? Dann pass jetzt gut auf!! Ich zeig dir hier, wie das mit ein paar Kniffen von Hand geht. Dabei musst du kein Geld für irgendwelche Packs auf Lensa ausgeben.

Vorbereitung

  1. Konto auf huggingface anlegen
  2. 10 oder mehr Bilder von einer Person zusammensuchen
  3. Bilder entweder auf \(512\times 512\) oder \(768\times 768\) zuschneiden

Zu den Bildern: ich habe die besten Ergebnisse damit erzielt, indem ich Bilder mit durchwegs unterschiedlichen Hintergründen gewählt habe. Sobald Bilder mit gleichen / ähnlichen Hintergründen hinzugefügt werden (z.B. Fotoserien) kann sich das negativ auf die Ergebnisse auswirken. Das zuschneiden der Bilder macht eigentlich das gleich gezeigte workspace automatisch. Ob die da so ausgeschnitten werden, damit das Subjekt im Vordergrund steht? Keine Ahnung. Alternativ geht das auch mit BIRME. Oder eben klassisch mit GIMP.

Dreambooth-training mit stable-diffusion

  1. Auf huggingface das dreambooth-training workspace duplizieren
  2. In den Einstellungen des nun eigenen workspaces eine stärkere Grafikkarte zuweisen
  3. Konzept “Person” auswählen, Bilder hochladen, Konzeptnamen eingeben und Training starten

Das, was Lensa im Hintergrund verwendet ist wahrscheinlich erstmal nichts anderes als ein ein neuronales Netz zur Bildgenerierung. Und die Architektur, die aktuell in aller Munde ist, ist eben stable-diffusion. Dieses Netz wurde bereits mit anderen Bildern vortrainiert; Mittels den Hinzuzufügenden muss dem Ganzen nurnoch der letzte Schliff verpasst werden.

Zum duplizieren einfach auf die drei Punkte (⋮) oben rechts -> “Duplicate this space”. Oder einfach lesen, was da auf dieser Webseite steht. Hab ich natürlich nicht gemacht.

Das trainieren von neuralen Netzen braucht nun halt extra viel Rechnerei, vor allem bei abertausenden Parametern. Hier handelt es sich nun wirklich nicht mehr um irgendein MNIST Digit Hello-World. Wer eigene (Nvidia) Hardware mitbringt kann versuchen, mit anderen Tools das Training bei sich Zuhause durchzuführen. Bei dahingehendem Interesse verweise ich auf das unten verlinkte Video. Von dort hab ich eh den Hauptinhalt dieses Posts schmarotzt. Ich persönlich habe grade – wie es die Weihnachtszeit so will – aufgrund meines Besuchs bei der Familie nur Zugang zu meinem kleinen Laptop, und damit auch keine Chance was dieses lokale Training angeht. Daher jetzt mal weiter im Kontext, wie man sich das Internet zunutze macht:

In den Einstellungen des eigenen Workspaces muss jetzt mehr Rechenleistung ausgewählt werden: bspw. das “T4 small”-preset. Die Kosten belaufen sich (zum Zeitpunkt der Erstellung dieses Posts) auf 0,6USD/h. Wenn man es gleich im ersten Anlauf schafft (nicht so wie ich) und dabei nicht mit allzuvielen Bildern trainiert braucht es insgesamt vielleicht eine halbe Stunde, also umgerechnet etwa 0,2€. Da kann Lensa nicht mithalten! Vorallem wenn man, wie wir gleich sehen werden, aus dem Ergebnis so viele Bilder generieren kann wie man möchte.

Wichtig: nichts an den “Sleep time settings” ändern! Das schaltet den Trainingsprozess im schlimmsten Fall mittendrin ab. Falls übrigens im Hauptreiter “App” nichts angezeigt wird, und du ein:e Firefox User:in bist: ich musste mir extra dafür tatsächlich chromium runterladen. 😩

Im Hauptreiter “App” jetzt einfach “object” zu “person” ändern, und abhängig davon, welche Auflösung die eigenen, zugeschnittenen Bilder haben, als “base-model” das entsprechende mit richtigem Suffix auswählen (768 oder 512). Danach die Bilder im Prompt darunter hochladen, und sich unter “concept prompt” einen Namen für sich selbst ausdenken, der so erstmal nicht in natürlicher Sprache vorkommt; Wie wärs mit “xX_M:DILFHUNTER:IN_Xx”?

Den Haken bei “Automatically remove paid GPU” unbedingt lassen. Zuletzt noch bei den eigenenen Accounteinstellungen ein Write-Token erstellen, welches unten in die letzte Box kopiert wird, und das Training starten.

Der Trainingsfortschritt lässt sich bei “Open logs” -> “Container” einsehen.

Zaubersprüche ausdenken

  1. So viele Bilder generieren, wie man Bock hat!
  2. (optional) Gegebenenfalls auf Google Colab ausweichen.

Nachdem das Training abgeschlossen ist, erscheint im eigenen Profil nun das angepasste Modell. Dort kann auch direkt losgelegt werden. Wichtig ist erstmal nur, den vorher festgelegten Namen immer in seinem Prompt zu verwenden, ansonsten weiß das Modell ja nicht, dass es die gegebenen Person generieren soll.

Wer es jetzt etwas mühsam findet immer wieder auf dieser Webseite auf “generate” zu klicken, kann sich bei Google durchschnorren und deren Rechenleistung bei Colab anzapfen, um mehrere Bilder in Serie generieren zu lassen. Anscheinend wird das auch von den Ersteller:innen von dreambooth-training empfohlen, da in der Modellansicht auf huggingface auf ein colab-notebook verwiesen wird. Dort ist es möglich, nachdem man sich mittels eines huggingface-tokens einloggt, sein eigenes Modell runterzuladen und im untersten Prompt “Run the Stable Diffusion pipeline on Colab” dann bei “num_rows” eine Zahl > 1 zu setzen. Nachteil bei der Sache: Man macht sich von Google abhängig. 🙃

Ebenfalls hier gibt es Möglichkeiten, die Generierung lokal mit noch besseren Tools vorzunehmen. Erneut verweise ich dafür auf das unten verlinkte Video von c’t.

??? Profit

Und jetzt sind die Grenzen eigentlich nur durch die eigene Kreativität beim Prompts ausdenken begrenzt. Mein Tipp: irgendeinen Kuststil erwähnen. Beispielsweise:

impressionistic painting of xX_M:DILFHUNTER:IN_Xx

Enjoy!

Weiterlesen

  • Eine klasse Videoserie von 3Blue1Brown auf Youtube, die das Prinzip von neuronalen Netzen erklärt; Beginnend mit: “But what is a neural network?
  • YT-Video von “c’t 3003” (Piped)