Die Technologie zur KI-Bildgenerierung entwickelt sich rasant weiter, doch die Modelle werden immer größer und damit für normale Benutzer sowohl in der Ausbildung als auch in der Anwendung sehr teuer. Nun gibt es ein neues Text-zu-Bild-Framework namens „Sana“, das hochauflösende Bilder mit bis zu 4096×4096 Pixeln effizient und schnell generiert – sogar auf der GPU eines Laptops.
Das Kernkonzept von Sana umfasst:
Tiefer Komprimierter Autoencoder: Im Gegensatz zu herkömmlichen Autoencodern, die Bilder nur um das 8-fache komprimieren, komprimiert der von Sana verwendete Autoencoder Bilder um das 32-fache. Dies reduziert die Anzahl der benötigten Tokens erheblich und ist entscheidend für die effiziente Schulung und Generierung von Bildern mit sehr hoher Auflösung.
Linearer DiT: Sana ersetzt alle herkömmlichen Aufmerksamkeitsmechanismen in DiT durch lineare Aufmerksamkeit. Dies verbessert die Effizienz bei der Verarbeitung von hochauflösenden Bildern, ohne die Qualität zu beeinträchtigen. Die lineare Aufmerksamkeit reduziert die Komplexität von O(N²) auf O(N). Darüber hinaus verwendet Sana Mix-FFN, das 3x3-Faltungen in das MLP integriert, um lokale Informationen der Tokens zu aggregieren, wodurch die Positionscodierung überflüssig wird.
Dekoder-basierter Text-Encoder: Sana verwendet moderne, kleine dekoderspezifische LLMs (wie Gemma) als Text-Encoder anstelle der bisher üblichen CLIP oder T5. Dies verbessert das Verständnis und die Inferenzfähigkeit des Modells für Benutzereingaben und erhöht die Übereinstimmung zwischen Bild und Text durch komplexes Lernen mit künstlichen Anweisungen und Kontext.
Effiziente Trainings- und Sampling-Strategien: Sana verwendet Flow-DPM-Solver, um die Anzahl der Sampling-Schritte zu reduzieren, und effiziente Methoden zur Beschriftung und Auswahl von Titeln, um die Konvergenz des Modells zu beschleunigen. Das Sana-0.6B-Modell ist 20-mal kleiner und über 100-mal schneller als große Diffusionsmodelle wie Flux-12B.
Sana reduziert die Inferenzlatenz durch folgende Innovationen:
Algorithmische und systemische gemeinsame Optimierung: Durch verschiedene Optimierungsmaßnahmen reduziert Sana die Generierungszeit für 4096x4096-Bilder von 469 Sekunden auf 9,6 Sekunden – 106-mal schneller als das bisher beste Modell Flux.
Tiefer Komprimierter Autoencoder: Sana verwendet die AE-F32C32P1-Struktur, um Bilder um das 32-fache zu komprimieren, wodurch die Anzahl der Tokens deutlich reduziert und die Trainings- und Inferenzgeschwindigkeit erhöht wird.
Lineare Aufmerksamkeit: Die Ersetzung der traditionellen Selbstaufmerksamkeitsmechanismen durch lineare Aufmerksamkeit verbessert die Effizienz bei der Verarbeitung von hochauflösenden Bildern.
Triton-Beschleunigung: Die Verwendung von Triton zur Fusion der Kernels für Vorwärts- und Rückwärtsprozesse im linearen Aufmerksamkeitsmodul beschleunigt Training und Inferenz weiter.
Flow-DPM-Solver: Reduziert die Inferenz-Sampling-Schritte von 28-50 auf 14-20 Schritte bei gleichzeitig besserer Generierungsqualität.
Sana zeigt eine hervorragende Leistung. Mit nur 590 Millionen Parametern erreicht das Sana-0.6B-Modell bei einer Auflösung von 1024x1024 eine Gesamtleistung von 0,64 GenEval – vergleichbar mit vielen größeren Modellen. Das Sana-0.6B-Modell kann auf einer Laptop-GPU mit 16 GB Arbeitsspeicher eingesetzt werden und generiert 1024×1024-Bilder in weniger als einer Sekunde. Bei der Generierung von 4K-Bildern ist Sana-0.6B über 100-mal schneller als die fortschrittlichsten Methoden (FLUX). Sana erzielt nicht nur Geschwindigkeitsvorteile, sondern auch eine wettbewerbsfähige Bildqualität, selbst bei komplexen Szenen mit Textrendering und detaillierten Objekten.
Darüber hinaus verfügt Sana über eine starke Null-Shot-Sprachübertragung. Selbst mit nur englischen Trainingsdaten versteht Sana Anweisungen auf Chinesisch und Emojis und generiert entsprechende Bilder.
Sana senkt die Einstiegshürde für die Generierung hochwertiger Bilder und bietet Fachleuten und normalen Benutzern ein leistungsstarkes Werkzeug zur Inhaltserstellung. Der Code und das Modell von Sana werden öffentlich zugänglich gemacht.
Demo-Adresse: https://nv-sana.mit.edu/
Paper-Adresse: https://arxiv.org/pdf/2410.10629
Github: https://github.com/NVlabs/Sana