- Stable Cascade ist die offizielle Codebasis von Stability AI und bietet Trainings- und Inferenz-Skripte für ein Bildgenerierungsmodell auf Basis der Würstchen-Architektur sowie mehrere Modell-Checkpoints.
- Der zentrale Unterschied besteht darin, dass es in einem deutlich kleineren Latent Space als Stable Diffusion arbeitet: 1024x1024-Bilder werden statt auf 128x128 wie bei Stable Diffusion auf 24x24 encodiert, was Inferenzgeschwindigkeit und Trainingskosten reduziert.
- Das Modell besteht aus einer dreistufigen Kaskade mit Stage A, Stage B und Stage C: Stage A und B übernehmen die Bildkompression, Stage C erzeugt aus Text-Prompts eine 24x24-Latent-Repräsentation.
- Zu den bereitgestellten Funktionen gehören Text-to-Image, Bildvariationen, Image-to-Image, ControlNet, LoRA, Bildrekonstruktion sowie Training von Grund auf und Fine-Tuning; Zugriff ist auch über diffusers 🤗 möglich.
- Die Codebasis befindet sich in einer frühen Entwicklungsphase, daher kann es unerwartete Fehler oder nicht optimierten Trainings- und Inferenz-Code geben. Der Code steht unter der MIT License, die Modellgewichte unter der Stability AI Non-Commercial Research Community License.
Welches Problem Stable Cascade lösen will
- Stable Cascade ist die offizielle Stable-Cascade-Codebasis und stellt Trainings- und Inferenz-Skripte sowie mehrere nutzbare Modelle bereit.
- Das Modell basiert auf der Würstchen-Architektur.
- Der wichtigste Unterschied zu Modellen wie Stable Diffusion ist, dass es in einem deutlich kleineren Latent Space arbeitet.
- Stable Diffusion nutzt einen Kompressionsfaktor von 8 und encodiert 1024x1024-Bilder auf 128x128.
- Stable Cascade erreicht einen Kompressionsfaktor von 42 und kann 1024x1024-Bilder auf 24x24 encodieren.
- Das textkonditionierte Modell wird in diesem hochkomprimierten Latent Space trainiert.
- Ein kleiner Latent Space führt zu schnellerer Inferenz und günstigerem Training.
- Eine frühere Version dieser Architektur erzielte gegenüber Stable Diffusion 1.5 eine 16-fache Kostensenkung.
Leistung und Effizienz
- Stable Cascade wird als Modell vorgestellt, das für Einsatzfälle geeignet ist, in denen Effizienz wichtig ist.
- Bekannte Erweiterungsmethoden wie Fine-Tuning, LoRA, ControlNet, IP-Adapter und LCM sind auch mit diesem Ansatz möglich.
- In der eigenen Evaluation zeigte Stable Cascade in fast allen Vergleichen die beste Leistung sowohl bei Prompt-Ausrichtung als auch bei ästhetischer Qualität.
- Die menschliche Bewertung wurde mit einer Mischung aus parti-prompts und aesthetic prompts durchgeführt.
- Stable Cascade wurde mit 30 Inferenzschritten verglichen.
- Vergleichsmodelle waren Playground v2 mit 50 Schritten, SDXL mit 50 Schritten, SDXL Turbo mit 1 Schritt und Würstchen v2 mit 30 Schritten.
- Das größte Modell enthält 1,4 Milliarden Parameter mehr als Stable Diffusion XL, zeigt aber eine schnellere Inferenzzeit.
Dreistufige Modellstruktur
- Stable Cascade besteht, wie der Name andeutet, aus drei Modellen in einer Kaskadenstruktur zur Bilderzeugung: Stage A, Stage B und Stage C.
- Stage A und Stage B komprimieren Bilder, ähnlich wie der VAE von Stable Diffusion.
- Stage C nimmt Text-Prompts entgegen und erzeugt eine kleine 24 x 24 Latent-Repräsentation.
- Stage A ist ein VAE, Stage B und Stage C sind Diffusionsmodelle.
- Dieses Release stellt die folgenden Checkpoints bereit:
- Stage C: Versionen mit 1 Milliarde und 3,6 Milliarden Parametern
- Stage B: Versionen mit 700 Millionen und 1,5 Milliarden Parametern
- Stage A: 20 Millionen Parameter, wegen der geringen Größe fest vorgegeben
- Für Stage C wird die Nutzung der 3,6-Milliarden-Version dringend empfohlen, da sich die meisten Fine-Tuning-Arbeiten auf diese Version konzentrierten.
- Bei Stage B liefern beide Versionen gute Ergebnisse, die Version mit 1,5 Milliarden Parametern ist jedoch besser bei der Rekonstruktion kleiner, feiner Details.
- Für die besten Ergebnisse wird vorgeschlagen, jeweils die größeren Varianten der einzelnen Stages zu verwenden.
Inferenzfunktionen und Notebooks
- Das Modell kann über die Notebooks im Bereich inference ausgeführt werden.
- Dieser Bereich enthält Details zu Modell-Downloads, Compute-Anforderungen und Tutorials zur Nutzung.
-
Text-to-Image
- text_to_image.ipynb bietet grundlegende Funktionen für Text-to-Image, Bildvariationen und Image-to-Image.
- Bildvariationen können Bild-Embeddings verstehen und Variationen eines gegebenen Bildes erzeugen; im Beispiel wird kein Prompt angegeben.
- Image-to-Image funktioniert, indem ein Bild bis zu einem bestimmten Punkt verrauscht und dann von diesem Startpunkt aus generiert wird.
- Im Beispiel wird das linke Bild zu 80 % verrauscht und die Caption
A person riding a rodent.verwendet. - Das Modell ist über die stable-cascade-Dokumentation von Hugging Face auch in der Bibliothek diffusers 🤗 zugänglich.
-
ControlNet
- controlnet.ipynb behandelt die Nutzung der für Stable Cascade bereitgestellten ControlNets oder eines selbst trainierten ControlNets.
- Die ControlNets dieses Releases umfassen Inpainting / Outpainting, Face Identity, Canny und Super Resolution.
- Face Identity ControlNet soll später veröffentlicht werden.
- Sie können im selben Notebook verwendet werden; pro ControlNet muss nur die Konfiguration angepasst werden.
-
LoRA
- Stable Cascade stellt eine eigene Implementierung für LoRA-Training und -Nutzung bereit.
- LoRA kann zum Fine-Tuning des textkonditionierten Modells Stage C verwendet werden.
- Neue Tokens können hinzugefügt und trainiert werden, und dem Modell lassen sich LoRA-Layer hinzufügen.
- lora.ipynb zeigt, wie trainierte LoRAs verwendet werden.
-
Bildrekonstruktion
- reconstruct_images.ipynb zeigt, wie Bilder encodiert und decodiert werden, sowie die Vorteile des hochkomprimierten Ansatzes.
- Der Diffusion Autoencoder von Stable Cascade ermöglicht das Arbeiten in einem stark komprimierten Raum.
- Stage A und Stage B können ähnlich verwendet werden wie der VAE von Stable Diffusion beim Training eigener Modelle.
- Der Beispiel-Batch
4 x 3 x 1024 x 1024wird zu4 x 16 x 24 x 24encodiert. - Der räumliche Kompressionsfaktor beträgt
1024 / 24 = 42.67. - Anschließend kann er mit Stage A und Stage B wieder zu
4 x 3 x 1024 x 1024decodiert werden. - Laut Beschreibung liegen die Rekonstruktionsergebnisse selbst bei kleinen Details sehr nah am Original; mit Standard-VAEs und Ähnlichem sei eine solche Rekonstruktion nicht möglich.
Training, App und Lizenz
- Der Trainingscode umfasst das Training von Stable Cascade von Grund auf, Fine-Tuning, ControlNet und LoRA.
- Ausführliche Trainingsanleitungen stehen im training folder bereit.
- Die Codebasis befindet sich in einer frühen Entwicklungsphase.
- Es kann unerwartete Fehler geben.
- Trainings- und Inferenz-Code ist möglicherweise noch nicht vollständig optimiert.
- Bei Interesse sollen weitere Updates mit aktuellen Verbesserungen und Optimierungen veröffentlicht werden.
- Ideen, Feedback und Beiträge zu Updates sind willkommen.
- Für die Ausführung der Gradio-App wird zunächst Folgendes installiert:
pip3 install gradiopip3 install acceleratepip3 install git+https://github.com/kashif/diffusers.git@wuerstchen-v3
- Im Projekt-Root wird die Gradio-App mit folgendem Befehl gestartet:
PYTHONPATH=./ python3 gradio_app/app.py
- Der Code steht unter der MIT LICENSE.
- Die über Hugging Face verfügbaren Modellgewichte stehen unter der STABILITY AI NON-COMMERCIAL RESEARCH COMMUNITY LICENSE.
1 Kommentare
Meinungen auf Hacker News
Nachdem ich es ein paar Stunden ausprobiert habe, scheint die Prompt-Treue deutlich besser zu sein
Im Moment wirkt die Qualität niedriger als bei einigen SDXL-Modellen, aber ich will mir ein Urteil vorbehalten, bis ich es noch ein paar Tage getestet habe
Es ist auch schnell; gefühlt etwa 2- bis 3-mal schneller als nicht-turbo SDXL
Wenn man ControlNet, OpenPose und sogar eine Depth Map einsetzen muss, um ein bestimmtes Aussehen oder eine bestimmte Tiefe zu erzwingen, wird die Lösung bei jeder Generierung viel zu maßgeschneidert
In meinen eigenen Tests war es beim Befolgen des Prompts besser, und die Bilder gefallen mir visuell auch besser
Das größte Modell soll 1,4 Milliarden Parameter mehr haben als SDXL, und SDXL verlangt schon viel VRAM
Sehr beeindruckend
Soweit ich es verstehe, erhält Stability AI derzeit Venture Capital, aber es sieht so aus, als müssten sie enorm viel Geld verbrennen, und es ist unklar, ob das Geschäftsmodell tragfähig ist
Vielleicht wäre das etwas für staatliche Forschungsförderung
Es wurde berichtet, dass sie zum Zeitpunkt des Deals mit Intel monatlich rund 8 Millionen Dollar für Rechnungen und Gehälter ausgaben, während der Umsatz nur einen Bruchteil davon ausmachte
Der Umsatz im August lag bei 1,2 Millionen Dollar, und es gab einen später gelöschten X-Post von Mostaque, laut dem man in diesem Monat bei Software und Services auf 3 Millionen Dollar zusteuerte
https://fortune.com/2023/11/29/stability-ai-sale-intel-ceo-r...
Heute liefert die HN-Suche keine guten Treffer, deshalb finde ich den konkreten Kommentar, an den ich denke, nicht
Falls ihn jemand finden kann: Die Nutzerseite ist hier: https://news.ycombinator.com/user?id=emadm
Daher frage ich mich, wie diese Struktur aussieht
Ist das exklusive Arbeit für stability.ai?
Den Commits nach wurde die Lizenz von MIT auf eine eigene Custom-Lizenz geändert: https://github.com/Stability-AI/StableCascade/commit/209a526...
Ist es rechtlich möglich, einen älteren Snapshot von vor der Lizenzänderung unter der bisherigen MIT-Lizenz zu verwenden?
Im Allgemeinen betrachten Gerichte den Gesamtzusammenhang und die Absicht und verstehen auch, dass bürokratische Fehler passieren können
Eine Ausnahme könnte aber sein, wenn ein Unternehmen behauptet, es habe im Vertrauen auf die frühere Lizenz erhebliche Ressourcen investiert
Der Zeitpunkt des Commits scheint ziemlich wichtig. Wenn das Repository vor der Veröffentlichung nur ein paar Stunden lang MIT-lizenziert war, dürfte es für ein Unternehmen schwer sein zu behaupten, es habe substanzielle Investitionen getätigt
Diesen Commit kann man weiterhin nach Belieben unter der zum Veröffentlichungszeitpunkt geltenden MIT-Lizenz verwenden
Das ist so ähnlich, als hätte man ein E-Book gekauft und später erscheint die zweite Auflage nur noch als Hardcover; das E-Book der ersten Auflage kann man trotzdem weiterhin lesen
Unterschiedliche Werke stehen unter unterschiedlichen Lizenzen
Stability AI erklärte, diese nicht-kommerzielle Lizenz gelte, weil es sich wie bei SDXL 0.9 um eine technische Vorschau handle
Man kann eine MIT-lizenzierte Codebasis schließen, aber man kann die Lizenz von bereits veröffentlichtem altem Code nicht rückwirkend ändern
In den frühen Commits von Stability gab es eine MIT-Lizenz, also kann man diesen Commit forken und nach Belieben verwenden
Knifflig ist, dass sie einen Commit gemacht haben, der die Lizenz von MIT auf proprietär ändert, aber keine Codeänderungen enthält
Das dürfte möglicherweise unwirksam sein, weil man dieselbe Codebasis nicht unter zwei einander widersprechenden Lizenzen vertreiben kann
Die neue Lizenz kann nur auf Änderungen angewendet werden, die nach der Lizenzänderung zur Codebasis hinzugefügt wurden
Ich würde es nicht unbedingt „illegal“ nennen, aber da dieselbe Software bereits unter einer Open-Source-Lizenz veröffentlicht wurde, dürfte die Behauptung, sie sei proprietäre Software, vor Gericht schwer Bestand haben
Hier gibt es einen optimierten Playground: https://www.fal.ai/models/stable-cascade
Gerade in einem so umkämpften Bereich; und bei der HN-Zielgruppe ist es wahrscheinlich, dass Leute es lieber selbst ausführen, wenn sie sich schon für den Test einer einzelnen Bildgenerierung registrieren sollen
Wie andere Bildgeneratoren, die ich ausprobiert habe, bekommt auch dieser Klaviertasten nicht richtig hin [1]
Um die Gruppen schwarzer Tasten zählen zu können, braucht es vermutlich einen anderen Ansatz
[1] https://fal.ai/models/stable-cascade?share=13d35b76-d32f-45c...
In meinem Fall hatten die meisten Basketballbilder mehr als einen Ball
Ich bin kein Experte, aber es scheint, als würde das Training die grundlegenden Einschränkungen menschlichen kulturellen Lebens – etwa dass alle Klaviertasten gleich sein sollten oder dass es in einem Spiel nur einen Ball gibt – nicht oder nur teilweise erfassen
Dieses Modell wurde auf der Würstchen-Architektur aufgebaut
Es gibt ein Video, in dem einer der Autoren sehr gut erklärt, wie dieses Modell funktioniert
https://www.youtube.com/watch?v=ogJsCPqgFMk
Gemini Advanced> Summarize this video: https://www.youtube.com/watch?v=ogJsCPqgFMk
In diesem Video geht es um die Trainingsmethode für ein Text-zu-Bild-Diffusionsmodell namens Würstchen.
Sie ist deutlich effizienter als bisherige Ansätze wie Stable Diffusion 1.4 und kann mit nur einem Sechzehntel der Trainingszeit und Rechenleistung vergleichbare Ergebnisse erzielen.
Der Kern ist ein zweistufiger Kompressionsprozess.
Im ersten Schritt komprimiert ein VQ-VAE Bilder in einen latenten Raum, der viermal kleiner ist als der von Stable Diffusion verwendete latente Raum; im zweiten Schritt komprimiert ein Diffusionsmodell den latenten Raum erneut um den Faktor 10.
Dadurch ergibt sich eine Gesamtkompression um den Faktor 40, also deutlich mehr als die 8-fache Kompression von Stable Diffusion.
Dank des komprimierten latenten Raums kann das Text-zu-Bild-Diffusionsmodell von Würstchen deutlich kleiner sein und schneller trainiert werden als Stable-Diffusion-Modelle.
Würstchen kann auf einer einzelnen GPU in 24.000 GPU-Stunden trainiert werden, während Stable Diffusion 1.4 150.000 GPU-Stunden benötigt.
Es ist effizient und kann dennoch Bilder in ähnlicher Qualität wie Stable Diffusion erzeugen; bei Bildern mit höherer Auflösung oder mehr Details liefert es teils sogar bessere Qualität.
Insgesamt ist Würstchen ein wichtiger Fortschritt im Bereich der Text-zu-Bild-Generierung: Es ermöglicht ein effizienteres und günstigeres Modelltraining und kann den Einsatzbereich etwa auf Marketingbilder, Buchillustrationen und personalisierte Avatare ausweiten.
Gibt es eine Möglichkeit, mehrere Bilder desselben Modells zu erzeugen?
Zum Beispiel Bilder eines Automodells, das aus verschiedenen Winkeln gedreht wird, wobei es immer dasselbe generierte Auto bleibt.
[1] https://zero123.cs.columbia.edu/
Eingabebild => Embedding => N-Bilder-Flow; und wenn man auch die Perspektive eines 3D-Renderings berücksichtigt, kann man auf diese N Bilder ControlNet anwenden.
Hinweis: „The model can also understand image embeddings, which makes it possible to generate variations of a given image (left). There was no prompt given here.“
Ich erinnere mich, dass ich früher mit diesen beiden Forschern herumexperimentiert habe, um die optimale Methode zu finden, Stage B bedingt an latente Repräsentationen zu koppeln.
Am Ende hat das einfache Aneinanderhängen der Eingangskanäle an das nächstliegende Upsample der latenten Repräsentation besser funktioniert als sehr fancy Cross-Attention mit relativen 2D-Positions-Embeddings, also haben wir es aufgegeben.
Dieses Modell war früher als Würstchen v3 bekannt.
Läuft es auf AMD?
Ich konnte nichts zur Unterstützung finden.
Nutzer, die Stable Diffusion auf AMD ausführen, dürften unter Performance-Einbußen leiden; für solche Projekte ist das also eine ziemlich wichtige Funktion.
Am beeindruckendsten finde ich die Kompression.
Bilder um den Faktor 42 komprimieren zu können, ist ein enormer Vorteil auf Mobilgeräten, bei schlechten Internetverbindungen oder beidem.
Das zielt darauf ab, 8K-Auflösung bei geringer Bandbreite bereitzustellen.