Es ist amüsant, wie die Geschichte der Veröffentlichungen offener Modelle zur Umwandlung von Textaufforderungen in Bilder, die von Stability AI entwickelt und trainiert werden, wie eine Reihe von Höhen und Tiefen der nacheinander veröffentlichten Microsoft-Betriebssystemversionen aussieht. Nach dem legendär erfolgreichen XP kam die problematische Vista; dann die großartige „Sieben“ – und danach das fruchtlose Windows 8. Auf Stable Diffusion folgte nach der anfangs wenig beeindruckenden, aber von Enthusiasten allmählich perfektionierten Version 1.5 die offen schlecht gelungene SD 2.0 – das missratene Element besteht darin, dass sie einen für Modelle dieser Art untypischen OpenCLIP-Encoder beinhaltete, aus . Bei dieser Auswahl wurden nicht nur unangemessene (NSFW) visuelle Referenzen ausgeschlossen, sondern auch Gemälde und Illustrationen beliebter Künstler wie dem berüchtigten Greg Rutkowski. Letzteres brachte die Enthusiasten endgültig auf die Palme: Während bei SD 1.5 selbst im ursprünglichen Zustand, ohne Verwendung speziell nachtrainierter Checkpoints, einfache Aufforderungen mit Stilen – „epic medieval fantasy landscape, in the style of Greg Rutkowski“ – hervorragend funktionierten und das Ergebnis beeindruckend war, hörte SD 2.0 auf, die Namen der bekanntesten Illustratoren zu „erkennen“, deren Urheberrechte an den geschaffenen Werken weiterhin gültig sind und die sich nicht herabgelassen haben, diese Werke zur Schulung der KI zur Verfügung zu stellen. Man musste mehr Worte verwenden, um das Gewünschte zu beschreiben, und mit zu langen Aufforderungen hatte das Modell Schwierigkeiten.

Setzen – Aufstehen, Setzen – Aufstehen
In Kombination mit dem geänderten Encoder (dem Umwandler von Textaufforderungen in digitale Tokens, mit denen das Modell später direkt arbeitet) hat die Unfähigkeit, benannte Stile anzuwenden, Enthusiasten einfach die Motivation genommen, die "Zwei" eigenständig weiterzuentwickeln. Wirklich: Hier musste man parallel auch herausfinden, wie man die bereits erprobte Technik zur Erstellung von Aufforderungen an den neuen Encoder anpassen kann, und das Modell darin weiter schulen, die Bilder und Themen zu erkennen, mit denen die Ersteller es während des ursprünglichen Trainings nicht vertraut gemacht haben – und qualitativ unterschied sich die von der "Halbzweit" generierten Bilder dennoch nicht garantiert. Ja, es gab einen qualitativen Sprung von der für SD 1.5 typischen Größe 512×512 Pixel auf 768×768, aber zu dieser Zeit hatte die Community bereits fleißig Upscaler, Outpainter und andere Werkzeuge zur Größenvergrößerung der endgültigen Bilder eingesetzt, sodass SD 2.0 im Grunde genommen unbemerkt blieb. SDXL (entwickelt von OpenAI und unter anderem im Projekt DALL-E verwendet) — sein Code ist ebenfalls offen, aber die Datenbank, auf der er trainiert wurde, , proprietär. Darüber hinaus hat die Standardgröße der Leinwand bei "Oversize" auf 1024×1024 zugenommen und es gibt eine ganze Reihe zusätzlicher Verbesserungen — sodass Enthusiasten mit Freude an der Weiterentwicklung arbeiteten. Und bis heute kann man SDXL (und die kürzlich erschienenen, weniger anspruchsvollen Abarten wie und ) durchaus als den populärsten Open-Source-KI-Bildgenerator betrachten. Allerdings argumentieren leidenschaftliche Anhänger von SD 1.5 überzeugend dagegen und weisen darauf hin, dass so wichtige Werkzeuge wie ControlNet in SDXL .
Und ab dem 12. Juni 2024, dem Zeitpunkt der "Wilden Freilassung" des Modells, das lokale Generationen ermöglicht, sollte die Zeit für die "offene" Version SD 3 kommen — genauer gesagt, (SD3M oder SD3 2B) mit 2 Milliarden Arbeitsparametern. Bedingt erinnert man sich, entspricht diese Zahl der Gesamtzahl der Gewichtungen an den Eingängen aller Perzeptronen des Modells. Noch früher, im April, brachte Stability AI eine acht Millionen umfassende (nach Anzahl der Parameter) , sie ist auch SD3 8B. Bei SDXL 1.0, erinnern wir uns, — , jedoch ist SD3M, so die Entwickler, . Es wurde erwartet, dass sie bei geringeren Anforderungen an den Videospeicher als „Oversize“ sogar auf einfache Eingaben Bilder „mit einem neuen Niveau an Fotorealismus“ liefern sollte. Zu den Vorteilen der „Dreiergeneration“ zählten auch „beispiellose Qualität der Typografie des auf den generierten Bildern erhaltenen Textes“, „tiefere Verständnis der Eingaben durch die gleichzeitige Zusammenarbeit von drei Codierern“ und „Bereitschaft zur effektiven Nachschulung selbst bei begrenzten Datensätzen“.

Es wurde offensichtlich angenommen, dass die Gemeinschaft der Enthusiasten, die mit dem neuen lang erwarteten Spielzeug ausgestattet ist, versuchen wird, es mit demselben Eifer weiterzuentwickeln wie „die 1,5“ und „Oversize“ zu ihrer Zeit. Doch von Anfang an ging alles schief: SD3M hat in den ersten Stunden nach der Veröffentlichung der Modelldateien auf Hugging Face und Civitai und das gleich zweimal. Das erste Mal — durch eine auf den ersten Blick unerklärliche Idiosynkrasie gegenüber Eingaben, die die scheinbar harmlose Phrase „lying on/in the grass“ enthielten; das zweite Mal — durch die unglaublich vagen Formulierungen in den Nutzungsbedingungen, mit denen selbst erfahrene Juristen Schwierigkeiten hatten. Obwohl dies aus der Sicht des durchschnittlichen KI-Kunst-Enthusiasten unwesentlich erscheint, wird sich die rechtliche Seite des Themas bei der weiteren Entwicklung des Modells direkt auswirken — bis hin zu der Möglichkeit, dass keinerlei Entwicklung stattfinden könnte.
Die vorherigen Kreationen von Stable Diffusion mit offenem Code (genauer gesagt, mit offenen Werten der neuronalen Netzwerkgewichte, die kostenlos heruntergeladen und lokal ausgeführt werden können), wie SDXL, wurden von einem der typischen Merkmale generativer Modelle begleitet mit solchen Merkmalen wie "unbefristete, weltweite, nicht ausschließliche, kostenlose, unentgeltliche, unwiderrufliche Lizenz an Urheberrechten zum Zweck der Reproduktion, Vorbereitung, öffentlichen Vorführung, öffentlichen Aufführung, Unterlizenzierung und Verbreitung zusätzlicher Materialien, sowohl der Modell selbst als auch Ableitungen davon". "Das Dreier-Modell" hingegen sieht zwei Arten der Lizenzierung vor: — mit sehr nachlässigen Formulierungen wie "Stability AI gewährt Ihnen eine nicht ausschließliche, weltweite, nicht übertragbare, nicht unterlizenzierbare, widerrufliche, unentgeltliche und eingeschränkte Lizenz an geistigem Eigentum" — und .
Das Gras führt zu nichts Gutem
Nach kurzer Zeit kamen die Mitglieder der Community überein, dass . Und de facto wurde ein Boykott gegen das Entwicklerunternehmen ausgerufen, weil sie keine Zeit und Energie auf die Nachtrainierung eines offensichtlich unausgereiften und fehlerhaften Modells verschwenden wollten — mit dem Bewusstsein, dass Stability AI jederzeit nach dem geringsten Launen ihrer Medienmanager die zuvor an einen bestimmten Enthusiasten erteilte Lizenz widerrufen könnte, der diese Nachtrainierung vornimmt. Der Lizenzvertrag wurde so formuliert, dass bei den nicht-juristischen Lesern der Eindruck entsteht, dass nach dem Widerruf der Genehmigung zur kommerziellen Nutzung von SD3M der ehemalige Inhaber der Lizenz verpflichtet sein wird, sämtliche von ihm kreierten Ableitungen des an ihn lizenzierten geistigen Eigentums zu löschen, einschließlich sowohl der selbst nachtrainierten Modelle (LoRA, textliche Inversionen, gesamte Checkpoints) als auch deren Ableitungen (Zitat: "Nach Beendigung dieses Vertrags müssen Sie alle Softwareprodukte oder abgeleiteten Werke löschen und deren Verwendung einstellen") — d. h. die Früchte der Arbeit bereits anderer Leute, die diese abgeleiteten Modelle als Ausgangspunkt für ihre eigene Arbeit verwendet haben, wobei diese Arbeit von niemandem bezahlt und mit reinem Enthusiasmus durchgeführt wurde.
Kurz nachdem die Welle der Empörung deshalb stratosphärische Höhen erreicht hatte, begannen bereits professionelle Juristen, sich zu äußern, Und dass die Rückmeldung mit dem Verbot weiterer Nutzung in der Tat nur bestimmte unterstützende Produkte mit geschlossenem Code betreffen sollte, die Stability AI einem kommerziellen Nutzer überlässt (sagen wir, zur Beschleunigung und Optimierung des gleichen SD3M-Trainings), — aber das Unternehmen hat dazu bislang keine endgültigen Erläuterungen bereitgestellt. Und die Tatsache eines so drückenden Schweigens über schon drei Wochen (zum Zeitpunkt des Schreibens dieses Artikels), seit die "Drei" öffentlich zugänglich wurde, schädigt den Ruf des Entwicklers viel mehr als das Gras, das von seinem Werk erzeugte Mädchen.

Was die berüchtigte Gras-Geschichte angeht, die innerhalb weniger Stunden buchstäblich zum Meme wurde , und später auf praktisch allen mehr oder weniger thematischen Plattformen im Netz, stellte sich heraus, dass das Vorhandensein einer Formulierung wie "a girl lying on the grass" in den Eingabeaufforderungen nicht nur Halluzinationen, sondern grausame Erzeugnisse einer kranken — im medizinischen Sinne — Fantasie von Künstlern und Filmemachern, die sich auf Body Horror spezialisiert haben, zur Folge hat (wir beschwören euch, wenn euch der Verstand und das Leben lieb sind, haltet euch von solchen Dingen fern und versucht nicht einmal, diesen Satz ohne aktivierten Sicherheitsfilter in die Bildersuche einzugeben). Dabei sind Bilder von stehenden — und etwas weniger von sitzenden — Menschen der "Drei" mit einer soliden Vier-plus gelungen, während die Porträts manchmal sogar makellos erscheinen; zumindest nicht schlechter als bei der Basisversion SDXL 1.0 — das Problem liegt hier vielmehr in einem inneren Tabu zum horizontalen Zustand des menschlichen Körpers.
Gerüchten zufolge, laut dem Kommentar von Emad Mostaque, dem Gründer und ehemaligen (bis März 2024) Leiter von Stability AI, der das Unternehmen verlassen hat, um , war die grobe Gewalt gegen SD3M unmittelbar vor der Öffnung ihrer Gewichte für eine begrenzte nicht-kommerzielle Nutzung (die API des größeren Modells SD3 8B für die Online-Generierung, erinnern wir uns, , aber ihre Gewichte bleiben verborgen) eine Folge des Strebens der aktuellen Führung nach Sicherheit — , die bereits im März dieses Jahres als . Im Rahmen dieser Politik ist es Nutzern mit dem Einsatz des generativen Modells SD3M untersagt, "Gewalt, Terrorismus oder die Schaffung von Inhalten zu fördern, die Hass erregen und eine geschützte Gruppe von Menschen diskriminieren oder bedrohen (unabhängig vom Geschlecht, ethnischer Zugehörigkeit, sexueller Identität oder Orientierung, Religion usw.)" – also keine Bilder von kämpfenden Pandas nackt! Nur Kätzchen mit lustigen Hüten, Hunde in netten Jacken, Flaschen mit unbekanntem Inhalt und frisch gebackene Plätzchen!
Technisch gesehen könnte das Entschlacken des Modells darin bestanden haben, dass aus dem Trainingsdatensatz einfach Bilder von liegenden Menschen und andere Bilder, die irgendwie eine anstößige Interpretation nahelegten, ausgeschlossen wurden – und deshalb "versteht" die "Drei" jetzt einfach nicht die Bedeutung des Wortes "liegen". Oder die aktualisierte Architektur SD3 hat es ermöglicht, die Gewichte auf den Perzeptronen, die während der Generierung "unsicherer" Bilder aktiviert werden, sicher zu identifizieren – und diese Gewichte wurden direkt vor der Veröffentlichung gezielt auf null gesetzt, was als Nebeneffekt das "erzwungene Halluzinieren" zur Folge hatte. Wahrscheinlich, : Der Kodierer übersetzt den Text korrekt in Tokens, aber in einem "sicheren" latenten Raum weisen diese Tokens schon auf nichts Bestimmtes hin – und deshalb befinden sich die resultierenden Pixel im Bild im Wesentlichen zufällig.

Angesichts der Verfügbarkeit einer vollständigen, aber geschlossenen SD3 8B API seit mehreren Monaten und der enthusiastischen Zusicherungen der Medienmanager von Stability AI, dass das "kompaktierte" 2B , haben KI-Zeichenthusiasten die Veröffentlichung der Gewichte von SD3M am 12. Juni mit großer Begeisterung aufgenommen: . Im Moment kann man sie immer noch erhalten, wenn auch auf etwas umständlicherem Weg als gewohnt bei den Checkpoints SDXL und SD 1.5. Der gewohnte Weg ist der Besuch der Civitai-Website, von der die meisten Modelle ohne Registrierung heruntergeladen werden, aber seit dem 17. Juni und bis zur Übermittlung dieses Artikels zur Veröffentlichung ist die dafür vorgesehene Seite dieser Website, die sich mit der "Drei" beschäftigt, . Und der Grund ist ein einziger: Die kommerzielle Lizenz für SD3M ist so unklar formuliert, dass selbst die Juristen von Civitai eine Auszeit genommen haben, um sie genauer zu prüfen. Denn wenn ein gewisser Enthusiast LoRA für die "Drei" auf seinem PC trainiert und sie auf Civitai hochlädt, und Stability AI plötzlich entscheidet, dass das Ergebnis unangemessen ist und die Lizenz des betreffenden Nutzers zurückruft – wie soll sich da der Hosting-Seite verhalten? Sie stellt nicht nur Checkpoints, Hilfszyklusdiagramme und Modelle zur Verfügung, sondern bietet den Besuchern auch die Möglichkeit der Cloud-Bilderzeugung und des Trainings genau derselben LoRA sowie textlicher Inversionen und mehr. Kurz gesagt, solange der Fall noch rechtlich geprüft wird, können die Dateien des Modells und der drei dazugehörigen Text-zu-Token-Umwandler nur auf .
Lass uns anfangen
Allerdings gibt es einen Haken: Um Zugang zu den Download-Links zu erhalten, muss man sich auf der Website anmelden und dann die zuvor erwähnte drakonische Lizenzvereinbarung bestätigen – diese Prozedur ist jedoch kostenlos und aus Russland gut erreichbar. Insgesamt stehen vier Modelle zur Auswahl (models) und ebenfalls vier Text-zu-Token-Umwandler (encoders), plus drei Referenzzyklusdiagramme für die Ausführung in der Arbeitsumgebung ComfyUI, :
Modelle:
- sd3_medium.safetensors
- sd3_medium_incl_clips.safetensors
- sd3_medium_incl_clips_t5xxlfp8.safetensors
- sd3_medium_incl_clips_t5xxlfp16.safetensors
Kodierer:
- clip_g.safetensors
- clip_l.safetensors
- t5xxl_fp8_e4m3fn.safetensors
- t5xxl_fp16.safetensors
Zyklusdiagramme:
- sd3_medium_example_workflow_basic.json
- sd3_medium_example_workflow_multi_prompt.json
- sd3_medium_example_workflow_upscaling.json
Im Rahmen dieser „Werkstatt“ beschränken wir uns auf das Basis-Modell sd3_medium.safetensors (4,2 GB), drei Encoder — clip_g.safetensors (1,3 GB), clip_l.safetensors (234 MB) und t5xxl_fp8_e4m3fn.safetensors (4,7 GB) sowie das Zyklogramm sd3_medium_example_workflow_multi_prompt.json. Das liegt daran, dass in unserer Testmaschine, erinnern wir uns, eine Grafikkarte GeForce GTX 1070 mit 8 GB Video-RAM installiert ist, und in diesen Speicher passen keine größeren Modelle mit allen integrierten Transformatoren gleichzeitig. Bei den Checkpoints auf Basis von SD 1.5 und SDXL sind die Encoder standardmäßig in der Hauptdatei integriert, aber in diesem Fall sind es nicht zwei, sondern drei dieser Transformatoren, zusammen über 6 GB — zusammen mit dem Modell selbst kommt man bereits auf über 10 GB; und wenn man die 16-Bit-Version des Encoders T5XXL nimmt, wird eine noch leistungsfähigere Grafikkarte benötigt. Im anderen Fall, wenn zuerst die Text-zu-Token-Transformatoren in den Videospeicher geladen werden und dann das Modell, das mit diesen Tokens arbeitet, könnte man sogar mit einem 6-GB-Grafikadapter gut auskommen. Aus dieser Perspektive hat die modulare „Drei“ eindeutig Vorteile gegenüber einem typischen SDXL-Checkpoint mit 5-7 GB.
SD3M ist ein Modell auf Basis multimodaler Diffusions-Transformer () — und unterscheidet sich damit grundlegend von früheren Entwicklungen von Stability AI (und nicht nur von ihr), die auf Die „Werkstatt“ ist kein Ort für eine vertiefte Untersuchung der Unterschiede zwischen diesen Ansätzen zur KI-Bilderzeugung; sagen wir einfach, dass , die Fähigkeit zur Verarbeitung einer größeren Anzahl von Tokens (was es dem Operateur ermöglicht, durchaus umfangreiche Textanweisungen zu formulieren, und dem System — diesen genau zu folgen), sowie eine bessere Qualität der letztlich erzeugten Bilder bietet. Das vollwertige SD3 8B kann Bilder auf einer Leinwand mit 4 MPiksel (2048×2048 Punkte) erzeugen, und in Bereichen wie der Wiedergabe von Text im Bild, der Genauigkeit der Übereinstimmung des erhaltenen Bildes mit der Textanweisung und der allgemeinen visuellen Ästhetik. Die Umwandlung von Text in Token-Vektoren erfolgt hier durch drei Encoder ( und einen T5-XXL — „T5“, übrigens von ) — und, um ehrlich zu sein, sind sie nicht verpflichtet, mit demselben Hinweis zu arbeiten.

Aber genug der Vorrede: Lassen Sie uns dem zuwenden, was dem „Workshop“ gewidmet ist – der Generierung von Bildern auf Basis des SD3M-Modells. Wir verwenden dafür, wie bereits erwähnt, die Arbeitsumgebung ComfyUI, die man herunterladen kann. Wir möchten betonen, dass diese Version nur für die Ausführung auf NVIDIA-Grafikadaptern oder direkt auf AMD- oder Intel-CPUs gedacht ist (was natürlich deutlich langsamer sein wird): Besitzern von AMD-Grafikkarten rocm und pytorch angeboten, die über den Paketmanager pip installiert werden können.
Nach Abschluss der Installation der Arbeitsumgebung sollten die zuvor heruntergeladenen .safetensors-Dateien abgelegt werden: Modelle in das Verzeichnis ComfyUImodelscheckpoints, Text-zu-Token-Converter in ComfyUImodelsclip. Und – es kann losgelegt werden!
Zeit, schneller zu werden
Es ist erwähnenswert, dass AUTOMATIC1111, den Lesern früherer „Workshops“ zum Thema KI-Zeichnen gut bekannt, bis Ende Juni ebenfalls , jedoch bleibt die Unterstützung des neuen Modells in ComfyUI derzeit am vollständigsten. Nicht überraschend – denn bis vor kurzem war der Autor des „Pastamonsters“, der der Gemeinschaft von Enthusiasten unter dem Pseudonym ComfyAnonimous oder einfach Comfy bekannt ist, , wo er unter anderem an der internen Arbeitsumgebung gearbeitet hat, die von den Entwicklern selbst genutzt wird. Wie wir später sehen werden, weist die neueste Version von ComfyUI tatsächlich darauf hin, dass ihr Autor über bestimmte Einblicke verfügt, wie dieses umstrittene Modell aufgebaut ist und funktioniert – Einblicke, mit denen die Schöpfer anderer Arbeitsumgebungen für die lokale Ausführung von Stable Diffusion 3 Medium verständlicherweise nicht prahlen können.

ComfyUI in einer tragbaren (portable) Version unter Windows zu installieren, ist kinderleicht: Nachdem Sie das entsprechende ZIP-Archiv heruntergeladen haben, Es reicht aus, ihn in ein beliebiges Verzeichnis zu entpacken; vorzugsweise natürlich auf einer logischen Partition, die auf SSD basiert und nicht auf HDD, da der Austausch zwischen Speicher und RAM angesichts der bevorstehenden Lade- und Entladezyklen der Modelle selbst für die Generierung eines einzigen Bildes (die Umgebung muss zunächst die Text-zu-Token-Konverter in den Videospeicher bringen, dann den Videospeicher leeren und schließlich das SD3M selbst laden) umso umfangreicher erwartet wird, je weniger Videospeicher der zur Verfügung stehende Computer hat. Übrigens ist die portable Installation auch hinsichtlich ihrer völligen Unabhängigkeit vorteilhaft: Nichts — abgesehen vom Volumen des freien Speicherplatzes auf dem logischen Laufwerk — hindert daran, lokal beliebig viele Kopien von ComfyUI zu entfalten, um in aller Ruhe mit verschiedenen Erweiterungen zu experimentieren, ohne Angst haben zu müssen, ein bereits optimiertes und hervorragend funktionierendes System zu beschädigen.

Stellen Sie sicher, dass die Datei des Hauptmodells SD3M ohne eingebaute Text-zu-Token-Coder (Datei stableDiffusion3SD3_sd3Medium.safetensors, 4,2 GB) im Unterverzeichnis checkpoints (bei unserer Testinstallation lautet der vollständige Pfad — C:Fun-n-GamesComfyUI-SD3ComfyUImodelscheckpoints) abgelegt ist, und dass alle drei Modelliere Codierdateien (Dateien stableDiffusion3SD3_textEncoderClipG.safetensors, stableDiffusion3SD3_textEncoderClipL.safetensors und stableDiffusion3SD3_textEncoderT5E4m3fn.safetensors; 1,3 GB, 234 MB und 4,7 GB jeweils) im Unterverzeichnis clip (C:Fun-n-GamesComfyUI-SD3ComfyUImodelsclip) abgelegt sind, dann kann die Arbeitsumgebung durch einen Doppelklick auf die Datei run_nvidia_gpu.bat im Stammverzeichnis (in unserem Fall C:Fun-n-GamesComfyUI-SD3) gestartet werden. Nach dem Start des Servers öffnet sich automatisch (das ist durch die Einstellungen der BAT-Datei vorgegeben) in einem neuen Tab im Standard-Webbrowser ein Fenster, in dem die Weboberfläche unter der Adresse 127.0.0.1/8188 verfügbar ist. (wenn auch nur im ersten Ansatz) „Nudelmonster“.

Im Prinzip, wenn Sie über eine modernere NVIDIA-Grafikkarte (RTX-Generation und nicht GTX, selbst mit nur 6 GB Video-RAM) verfügen, können Sie sofort das Basis-Workflow-Diagramm von ComfyAnonimous, das bereits erwähnt wurde, in die Arbeitsumgebung laden – die Datei comfy_example_workflows_sd3_medium_example_workflow_multi_prompt.json mit mehreren Eingabefenstern für Aufforderungen, jeweils eines für jeden der drei Encoder – und damit arbeiten. Zuerst müssen jedoch die vier Modelldateinamen (in den Knoten ihrer Speicherung) mit den verfügbaren übereinstimmen. Der Autor des Basis-Workflows hat offensichtlich an seinem Arbeitsplatz (bei Stability AI, wie bereits erwähnt) mit lokalen Dateien gearbeitet, die etwas anders benannt waren, sodass, wenn Sie nach dem Laden des Workflow-Diagramms die Schaltfläche „Queue Prompt“ im spartanischen ComfyUI-Interface drücken, die Arbeitsumgebung eine Fehlermeldung ausgibt.
Drei-Felder für KI-Generierung
Das lässt sich jedoch leicht beheben: Viel ärgerlicher ist die Tatsache, dass unsere alte GTX 1070 die SD3M fürchterlich langsam verarbeitet – die Bildgenerierung erfolgt mit einer Geschwindigkeit von 27-30 Sekunden pro Iteration, und wenn man bedenkt, dass der Parameter „Steps“ im Basis-Workflow auf „28“ eingestellt ist, vergeht unangemessen viel Zeit. Daher werden wir eine kleine Optimierung vornehmen – wir werden das Python-Modul venv () verwenden, das insbesondere dazu dient, die Arbeit von generativen KI-Modellen zu beschleunigen. In der tragbaren Version von ComfyUI ist es nicht enthalten, , die letztendlich darauf hinauslaufen, eine vollständige Python-Umgebung auf dem lokalen PC bereitzustellen – und das erforderliche Modul bereits aus dieser Umgebung zu aktivieren.

Wir hoffen, dass die Leser, die unsere „Werkstätten“ verfolgen, bereits über eine aktive Arbeitsinstallation von AUTOMATIC1111 auf ihren Maschinen verfügen. In diesem Fall ist alles deutlich einfacher: Das venv-Modul ist bereits eingerichtet, und alles, was erforderlich ist, um es beim Start der Arbeitsumgebung ComfyUI zu aktivieren, ist, . Zunächst muss der Server beendet werden, indem man in sein Fenster wechselt und «Strg» + «C» drückt, gefolgt von der Eingabe von «y» zur Bestätigung; danach — kopiere die BAT-Datei run_nvidia_gpu.bat in eine neue, mit dem Namen run_with_venv.bat. Die ursprüngliche Startdatei ist sehr prägnant — sie ruft einfach eine portabel installierte Kopie von Python mit dem Parameter —windows-standalone-build auf:
.python_embededpython.exe -s ComfyUImain.py —windows-standalone-build
pause
Dieser Parameter ist an sich nicht sehr eindeutig — er impliziert bestimmte Optimierungen, die wahrscheinlich auf neuere NVIDIA-Grafikkarten ausgelegt sind und das Leben derjenigen, die weiterhin ihren wohlverdienten GTX treu bleiben, erschweren können. Aus diesem Grund entfernen wir —windows-standalone-build aus der Befehlszeile und verzichten gleichzeitig auf eine weitere moderne Optimierung — den standardmäßig aktiven «intelligenten Speicherverwalter», smart memory, der , ohne sie auszulagern. Dies beschleunigt tatsächlich das Zeichnen von KI-Bildern, verwandelt unseren moralisch veralteten Computer jedoch in ein Einzwecksystem — gleichzeitig im Internet surfen, spielen oder sogar an Dokumenten und E-Mails zu arbeiten, während die Arbeitsumgebung aktiv ist, ist nicht mehr möglich. Daher erscheint für diejenigen, die keinen eigenen Computer für KI-Kunst haben, ein solches BAT-Skript zum Starten von ComfyUI (nicht nur zur Generierung von Bildern mit SD3M, übrigens — es ist auch für SDXL gut geeignet):
@echo off
call cd C:Fun-n-GamesGitstable-diffusion-webuivenvScripts
echo %
call activate.bat
echo venv aktiviert
call cd C:Fun-n-GamesComfyUI-SD3
echo %
call .python_embededpython.exe -s ComfyUImain.py —disable-smart-memory
pause
Hier wird davon ausgegangen, dass die portable Installation von ComfyUI im Verzeichnis C:Fun-n-GamesComfyUI-SD3 erfolgt ist und AUTOMATIC1111 zuvor in C:Fun-n-GamesGitstable-diffusion-webui installiert wurde. Mehrere «echo»-Befehle sind nur zur visuellen Kontrolle gedacht, dass der Ordnerswitch reibungslos funktioniert und die benötigten Befehle ausgeführt werden — nachdem alles getestet wurde, können sie aus der BAT-Datei entfernt werden.

Wir starten die Arbeitsumgebung erneut, diesmal indem wir zweimal auf run_with_venv.bat klicken. Da wir den Server zuvor einfach geschlossen haben und die Weboberfläche nicht berührt wurde, sollte im entsprechenden Tab nach wie vor das gleiche Referenz-Diagramm von ComfyUI mit den angepassten Modellnamen vorhanden sein. Beachten wir den rechten Teil davon: dort befindet sich der Knoten „Preview Image“, der das fertige Bild nicht auf die Festplatte speichert, sondern es lediglich anzeigt. Wenn man jedes Mal das Diagramm zur Generierung eines einzigen Bildes ausführt, es visuell bewertet, einige Parameter ändert und erneut ausführt – das ist eine brauchbare Vorgehensweise: Ein gefallendes Bild kann immer manuell durch einen Rechtsklick darauf gespeichert werden. Aber wenn man in der Arbeitsumgebung viele Generierungen nacheinander durchführt, ist es besser, wenn deren Ergebnisse automatisch im permanenten Speicher (im ComfyUIoutput-Verzeichnis standardmäßig) gespeichert werden.

Es ist also besser, den Knoten „Preview Image“ gleich in „Save Image“ zu ändern. Dazu klicken wir mit der linken Maustaste zweimal auf einen freien Bereich des Diagramms – ein Auswahlfenster für Knoten mit einer Suchzeile öffnet sich. In dieser Zeile beginnen wir, „Save…“ einzugeben – und schon sehen wir den gesuchten Namen. Danach bleibt nur noch, darauf zu klicken und den Eingang des neu erschienenen Knotens mit dem Ausgang „IMAGE“ des Knotens „VAE Decode“ zu verbinden, an den ursprünglich „Preview Image“ angeschlossen war. Den Knoten „Preview Image“ können wir danach einfach entfernen – markieren Sie ihn, indem Sie auf die Überschrift klicken, und drücken Sie die „Entf“-Taste auf der Tastatur.

Und jetzt ist der richtige Zeitpunkt, das Referenz-Diagramm von ComfyAnonimous (mit unseren bescheidenen Anpassungen) auszuführen. Das ergibt Folgendes:

Ein äußerst beeindruckendes Bild, sogar mit Stimmung — und man würde nicht sagen, dass es mit demselben Modell erstellt wurde, das den Befehl zum Zeichnen von Personen, die im Gras liegen, vollständig vermasselt. Dabei arbeitet das System ziemlich flüssig — ungefähr 5–6 Sekunden pro Iteration für ein Bild mit einer Fläche von 1 MPix auf einer GTX 1070 kann als akzeptables Maß angesehen werden. Zum Vergleich: Derselbe PC in demselben ComfyUI mit derselben BAT-Datei erzeugt SDXL-Bilder ähnlicher Größen und benötigt etwa 6–7 Sekunden pro Iteration, sodass die „Drei“ durchaus als weniger ressourcenintensiv für die Hardware des PCs gelten kann, auf dem die KI-Generierung stattfindet.

Jetzt passen wir die Größen der Leinwand an. In der Nähe des Knotens „EmptySD3LatentImage“, der sie definiert, befindet sich ein „leerer“ (d. h. nicht mit irgendetwas verbunden) Hilfsknoten „Note“, der eine wichtige Erinnerung enthält: die Gesamtfläche des Bildes sollte im Fall von SD3M etwa 1 Mpx betragen. Daraus ergibt sich, dass wir die Seitenmaße der rechteckigen Leinwand auf 1344×768 festlegen sollten – genau etwa 1,03 Mpx.
Beachten Sie: Darüber befindet sich der Knoten „Seed“, in dem das eigentliche Seed festgelegt ist, in diesem Fall „945512652412924“, und es wird angegeben, dass es sich nach der Generierung nicht ändern sollte (Parameter „fixed“).

Wir führen dasselbe Diagramm mit dem vorherigen Seed aus, jedoch für die rechteckige Leinwand. Sofort fällt auf, dass die Gesamtzeit für die Ausführung kürzer ist, obwohl die Rendering-Geschwindigkeit gleich geblieben ist – unter 6 s pro Iteration. Das ist logisch: Da sich die Text-Hinweise nicht geändert haben, ist es nicht erforderlich, die Kodierer neu zu laden. Das Bild, das ausgegeben wird, unterscheidet sich, wie zu erwarten, etwas vom ersten, quadratischen, aber nicht grundlegend – die allgemeine Komposition ist erhalten geblieben.

Jetzt achten wir auf die Knoten „CLIPTextEncodeSD3“ und „CLIP Text Encode (Negative Prompt)“. Der erste zeichnet sich dadurch aus, dass er sofort drei Eingabefelder enthält; wenn man den Text von ihnen entfernt, werden die Hinweise sichtbar, für welche Kodierer sie bestimmt sind – von oben nach unten sind das CLIP G, CLIP L und T5XXL. Solche Knoten gab es zuvor aus verständlichen Gründen nicht in ComfyUI. Das Referenzdiagramm enthält sich wiederholende, kurze Hinweise für die ersten beiden Textfelder (für die Konverter CLIP G und CLIP L) und einen wesentlich umfangreicheren Hinweis für das dritte – T5XXL. Es ist klar, dass man mit dem Inhalt dieser Felder in weitem Umfang spielen kann, und die Untersuchung, inwieweit die Änderung des Textes in ihnen das endgültige Bild beeinflusst, stellt eine nicht triviale, aber äußerst interessante Aufgabe dar. Aus Gründen, die später klarer werden, werden wir uns jedoch vorerst nicht intensiv damit beschäftigen.
Im Node „CLIP Text Encode (Negative Prompt)“ hingegen gibt es nichts Besonderes, aber bedenken Sie, wie schwierig der Weg von dort bis zum entsprechenden Eingang „conditioning“ der Hauptnode „KSampler“ ist! Dieser Weg teilt sich, wobei einer seiner Zweige (in diesem Fall der obere) anzeigt, dass das System ab 10 % der Generierungsschritte bis zu ihrem Abschluss die negative Eingabe überhaupt nicht berücksichtigt (der Durchgang durch die Node „ConditioningZeroOut“ bedeutet genau das Zurücksetzen der Bedingung). Während der zweite Zweig die negative Eingabe (ebenfalls bedingt mit halbem Gewicht) unverändert an die weitere Verarbeitung weitergibt — aber nur in den ersten 10 % der Gesamtzahl der Generierungsschritte.
Verschwommenes Fern
Noch einmal: In den ersten 10 %, d. h. 3 von 28, die in diesem Fall zugewiesen sind, wird die negative Eingabe an die Node „KSampler“ übergeben, die mit der Bildformung im latenten Raum (dem Raum der Pixel, d. h. dem menschlich erfassbaren Bild, dessen Ausgabe der folgenden Node „VAE Decoder“ übersetzt) befasst ist, und zwar normal: Der obere Zweig (mit der Bedingungsnullifizierung) ist inaktiv, es arbeitet nur der untere. Bei den verbleibenden 90 % der Schritte (25 von 28 in unserem Fall) funktioniert die negative Eingabe überhaupt nicht: Der obere Zweig der Bedingungsübertragung ist aktiv — mit seiner Nullifizierung — während die Bewegung auf dem unteren durch einen Grenzparameter der Auslösung der entsprechenden Node „ConditioningSetTimestepRange“ blockiert ist. Jetzt ist klar, warum einige Rezensenten behaupten, dass , — denn die Wirkung von ihnen (wenn man genau dieses, zentrale, Zyklusdiagramm betrachtet und annimmt, dass auf den Websites mit Online-Generierung nach dem Modell SD3 Medium ähnliche Regeln gelten) ist minimal.

Und dennoch existiert es: Wenn man einfach den Ausgang des Knotens „CLIP Text Encode (Negative Prompt)“ direkt mit dem entsprechenden Eingang von „KSampler“ verbindet (oder alle dazwischenliegenden Knoten auf diesem Weg als „überspringbar“, „Bypass“, markiert, was denselben Effekt zur Folge hat), verschlechtert sich die Qualität des endgültigen Bildes merklich. Dies kann übrigens als indirekter Beweis für die „Unreife“ von SD3M angesehen werden, da es den Entwicklern eigentlich möglich hätte sein müssen, die Stärke und Bedeutung des negativen Hinweises anzupassen, noch bevor sie die Gewichtungen des Modells öffentlich zugänglich machten. Zwei verzwickte Bedingungen für die Anwendung des negativen Hinweises — eine Art Patch, und in diesem Sinne durch das Marketingteam von Stability AI geweckten Erwartungen genügt, erscheinen durchaus begründet.
Das Fehlen auch nur einer kurzen offiziellen Anleitung zur Arbeit mit SD3M hat dazu geführt, dass bereits Gerüchte im Netz kursieren, die besagen, dass dieses Modell . Was natürlich nicht der Fall ist, aber in jedem Fall müssen diese Hinweise anders angewendet werden, . Insbesondere behaupten Enthusiasten ernsthaft, dass die Hinzufügung detaillierter Beschreibungen von so vielen Unannehmlichkeiten wie möglich zum negativen Feld (ja, ja, die alten guten „nsfw, nude“ reichen nicht aus — da muss die Fantasie wirklich angestrengt werden) selbst des berüchtigten Mädchens, das im Gras liegt. Ob das so ist oder nicht — das lässt sich ohne eingehende Prüfung nicht klären (und es ist nicht sicher, dass sogar die Kennzeichnung „18+“ im Kopf unserer Website das Werk vor Klagen von wütenden Bewahrern der Moral bewahrt, wenn wir riskieren, die von den Enthusiasten zusammengestellte „Wunder-Anweisung“ zu veröffentlichen — zumal sie auf Englisch ist). Diese amüsante Situation erinnert an den Fall mit , durch die — gerade weil sie ziemlich detaillierte Beschreibungen dessen enthielten, was fromme Christen nicht tun sollten — zumindest bruchstückhafte schriftliche Zeugnisse über die Überzeugungen und Bräuche des vorchristlichen Russlands bis zu uns gelangten.

Jetzt möchte man glauben, dass es klarer geworden ist, aus welchen Gründen es nicht besonders sinnvoll ist, sich weiter mit der SD3M zu beschäftigen, zumindest in dieser Phase. Es gibt tatsächlich viel zu diskutieren und zu erforschen: die streng empfohlenen Generierungsparameter im Knoten "KSampler" (CFG — 4,5-5,0; Anzahl der Schritte — etwa 28; die Paarung sampler/scheduler — ausschließlich dpmpp_2m/sgm_uniform, sonst sinkt die Qualität merklich); und die äußerst signifikante Streuung der subjektiven Qualität der Generierungen bei genau denselben Startparametern, jedoch mit unterschiedlichen Eingaben; sowie die Beseitigung des berüchtigten "Fluches des Liegens auf/in dem Gras" (zu dem bereits ); und letztlich das Herausfinden, auf welche spezifischen Generierungsparameter jeder der drei Text-zu-Token-Wandler Einfluss hat — und wie man mit ihrer Hilfe echte Meisterwerke der KI-basierten Kunst schaffen kann (sofern dies mit "drei" prinzipiell möglich ist).
Umso mehr, als die Entlassung von Emad Mostaque im März und von ComfyAnonimous im Juni , — nicht die einzigen Schwierigkeiten sind, die Stability AI getroffen haben. Wie Reuters unter Berufung auf The Information berichtet, hat dieses britische Startup buchstäblich gerade (zum Zeitpunkt der Erstellung dieses Artikels) erneut , dessen neuer Inhaber Prem Akkaraju ist, ein Vertreter einer bekannten globalen Gruppe von IT-Investoren — und diese wiederum bereit sind, eine beträchtliche Summe in das Unternehmen zu investieren (). Die Lage von Stability AI als Geschäftsstruktur ist heute offen instabil; viele enttäuschte — und in einer solchen Situation ist es schwer, von dem Unternehmen durchdachte Arbeiten, selbst an so offensichtlichen Fehlern, zu erwarten.

Die unüberlegte Lizenzpolitik hält die Community leider davon ab, SD3M eigenständig zu optimieren, wie es bei SD 1.5 und SDXL der Fall war. Zumindest die abgeleiteten Checkpoints und Werkzeuge wie LoRA für die letzten beiden Modelle werden garantiert weiterhin lokal verfügbar sein, selbst wenn (und falls) Stability AI seinen Weg als kommerzielle Struktur beendet. Unmittelbar nach dem durchschlagenden Fiasko von „troika“ wurden in den spezialisierten Foren im Netz immer öfter Stimmen laut, die die Schaffung eines gemeinnützigen Projekts zur Entwicklung eines generativen Modells für die Text-zu-Bild-Umwandlung auf Basis von Crowdfunding unterstützen, – und inzwischen beginnt sich diese Bewegung unter dem Namen . Bereits zu seiner aktiven Teilnahme bereit erklärt haben sich Invoke (eine Plattform für Online-KI-Generierung, die sich an professionelle Studios richtet), Comfy Org (ein Team, das die Unterstützung und Entwicklung von ComfyUI übernimmt), Civitai (bedarf keiner weiteren Vorstellung) und das Team hinter LAION (einer Datenbank mit annotierten Bildern, auf deren Grundlage solche Modelle hauptsächlich trainiert werden).
In der absehbaren Zukunft werden neue Ausgaben der „Werkstatt“ wahrscheinlich auf die Arbeit mit den Modellen ausgerichtet sein, für die die Community bereits ein breites Set an Verbesserungen und zusätzlichen Werkzeugen entwickelt hat – auf die „anderthalb“ und „Oversize“. Vielleicht wird die Zeit für das SD3M noch kommen – aber heute ist es schwierig, überhaupt vorherzusagen, wann genau. Bis dahin können Interessierte das Archiv mit den in diesem Artikel präsentierten Generierungen von SD3M herunterladen (die Zyklusdiagramme sind direkt in die PNG-Dateien integriert; es reicht aus, das Bild aus dem „Explorer“ von Windows auf das Arbeitsfeld von ComfyUI zu ziehen, um die gesamte Reihenfolge und die Parameter der Generierung wiederzugeben). Vielleicht wird es jemand unserer Leser schaffen, schneller als die Stammgäste von Reddit und Hugging Face einen optimalen Weg zu finden, um den Text auf drei Felder der Eingabeaufforderung zu verteilen?

Materialien zum Thema:
.
.
.
.
.
Quelle: 3dnews.ru
