Nachdem ich Ende 2023 das Shopsystem meiner alten Waldfotografie-Seite (Download von Waldfotos, die ich in den letzten 10 Jahren gemacht habe) aktualisieren musste, wollte ich die bereits getane Arbeit auch gleich nochmal in einen neuen Online-Shop integrieren.
So entstand Anfang 2024 mit Waldposter.de ein Online-Shop nur für Poster, in dem meine Fotografien allerdings nur eine kleine Rolle spielen sollten. Kategorien wie die Tiere im Wald oder Baumbilder sind komplett KI-generiert.
KI-Bildgenerierung mit Stable Diffusion
Ich hatte mich 2023 intensiv mit der KI-Bildgenerierung über Open Source beschäftigt, dabei hauptsächlich Wälder, Bäume und Tiere als Motive erstellt. Hierfür habe ich über das AUTOMATIC1111 Webinterface auf fotorealistische Stable Diffusion Modelle und Techniken zurückgegriffen, mit denen ich in kurzer Zeit eine Vielzahl unterschiedlicher Bildmotive generieren konnte.
Besonders hilfreich war dabei ein Dynamic Prompts Script, mit dem sich sogenannte Wildcards anlegen lassen. Das sind Textdateien, die verschiedene Bedingungen auflisten, beispielsweise unterschiedliche Wetterbedingungen (Sonne, Regen, Nebel …) oder Einstellungsgrößen (Closeup, Totale, Weitwinkel …). Diese Bedingungen werden bei jeder neuen Bildgenerierung zufällig getauscht, so das man über eine Batchverarbeitung schnell verschiedenartige Bildkompositionen und Stimmungen zum gleichen Subjekt erhält.
Upscaling mit Tiled Diffusion
Die eigentliche Herausforderung war das Upscaling auf Postergröße. Nativ habe ich die Bilder nur im 3:2 Format generiert, 1216 x 832 Pixel, was vielleicht für eine Postkarte reichen würde. Es sollte auch kein üblicher Upscale-Prozess sein, der einfach nur Pixel hinzufügt oder schärft. Das Ziel war eine detaillierte Auflösung, als ob das Bild direkt mit einer 30-Megapixel-Kamera aufgenommen worden wäre.
Die Lösung war hier ein Tiled Diffusion Upscaling mittels ControlNet. Dabei wird das Bild zunächst konventionell hochgerechnet, also z.B. auf eine Auflösung von 8K. Dann wird das Bild in kleinere Segmente aufgeteilt, die dann wieder nativ generiert und zu einem Ganzen zusammengesetzt werden. (Ungefähr so wie auch der kommerzielle Upscaler Magnific AI unter der Haube funktioniert, nur als kostenlose Open Source Lösung).
Compositing der KI-Bilder
Das Compositing der Bilder nimmt dann noch einmal Zeit in Anspruch, da mehrere Layer generiert werden. So generiere ich z.B. Hintergrund und Subjekt mit anderen Einstellungen, da ich nicht möchte, dass der unscharfe Hintergrund (Bokeh) beim Upscaling mitdetailliert wird. Oder ich generiere zusätzlich mit konkreten Prompts, um Augen oder Fell noch einmal detaillierter auszugeben. Dies muss dann in der Post wieder zusammenmaskiert werden.
Retusche typischer KI-Bildfehler
Es gilt auch immer typische KI-Bildfehler zu retuschieren, beispielsweise durchgängige Linien wiederherzustellen. Wird etwa ein Baumstamm oder ein Ast durch ein Tier verdeckt, kann dieser bei erneuter Sichtbarkeit oft nicht an der korrekten Stelle fortgeführt werden, die Linie wird gebrochen. Oder Hintergrund und Vordergrund verschmelzen miteinander, so wird aus einem Ast im Hintergrund eine Fellsträhne im Vordergrund. (An diesen Fehlern lassen sich KI-generierte Bilder auch am schnellsten identifizieren, selbst ein fortschrittlicher Bildgenerator wie Dall-E 3 ist dagegen noch nicht gefeilt.)
Finetuning und Inpainting
Ein spezielles Problem zu den Tierpostern war, dass die Merkmale der generierten Tiere oft nicht stimmten. Das liegt auch an den undetailliert und oft fehlerhaft beschriebenen Trainingsdaten der Stable Diffusion Modelle. So hat der Luchs z.B. einen Pumaschwanz, der Dachs variiert die schwarzen Fellmarkierungen und der Wolf sieht mehr aus wie ein Hund.
Zum einen kann hier aber das Finetuning der Modelle mit eigens trainierten kleinen Modellen (LoRA) helfen, was ich für die Luchse nutzte. Hierzu trainierte ich mit dem OneTrainer ungefähr 50 beschriebene Fotos von Luchsen. Außerdem habe ich Inpainting genutzt, beispielsweise bei den Dachsen (die falschen Fellstreifen wurden markiert und das Bild mit einem entsprechenden Prompt neu generiert).
Aufbau des Online-Shops
Zum Online-Shop an sich: Dieser nutzt WordPress mit dem WooCommerce Plugin. Für die deutsche Rechtssicherheit wird das Germanized Plugin eingesetzt, einige händische Programmierungen waren bei dem von mir genutzten Theme jedoch noch nötig. Weitere kleine Programmierungen habe ich ChatGPT-4 erledigen lassen, zum Beispiel eine Rewrite Funktion für bestimmte URLs und die Breadcrumb Navigation.
An WooCommerce sind 2 Dropshipping-Anbieter (Print on Demand) angebunden. Bei Bezahlung wird der Bestellvorgang automatisch ausgeführt, der Download von Bilddateien erfolgt über ein eigenes System.