Ein Diffusionsmodell ist ein generatives Modell, das neue Inhalte erzeugt, indem es Daten zunächst schrittweise Rauschen hinzufügt und dann lernt, dieses Rauschen schrittweise wieder zu entfernen, und es ist heute eines der gängigsten Verfahren zur Bilderzeugung. Es zeichnet ein Bild nicht direkt. Stattdessen geht es von reinem Rauschen aus und beseitigt das Rauschen Schritt für Schritt, sodass das Bild langsam Gestalt annimmt.
Erst Rauschen hinzufügen, dann entfernen: zwei entgegengesetzte Prozesse
Der Vorwärtsprozess fügt Rauschen hinzu: Er nimmt ein echtes Bild und mischt in festen Schritten nach und nach zufälliges Rauschen hinein, bis das Bild nach vielen Schritten zu Rauschen wird, in dem das Original überhaupt nicht mehr erkennbar ist. Dieser Prozess erfordert kein Lernen; er bringt das Bild lediglich nach einer Regel durcheinander.
Der Rückwärtsprozess entfernt das Rauschen, und dies ist die Richtung, die bei der Erzeugung verwendet wird. Das Modell geht von einer Masse zufälligen Rauschens aus, sagt einen Teil des Rauschens voraus und entfernt ihn, um ein etwas klareres Ergebnis zu erhalten, und wiederholt dies, bis ein vollständiges neues Bild entsteht. Die Erzeugung beginnt mit zufälligem Rauschen, nicht mit einem vorhandenen Bild.
Im Training lernt das Modell, Rauschen vorherzusagen
Beim Training geht es nicht darum, dass sich das Modell Bilder einprägt. Stattdessen übt es, Rauschen vorherzusagen: Bekommt es ein verrauschtes Bild und den Rauschschritt, soll es genau erraten, welches Rauschen hineingemischt wurde. Dasselbe Bild wird unterschiedlich stark verrauscht, damit das Modell wiederholt üben kann.
Sobald es Rauschen vorhersagen kann, hat die Entrauschung eine Grundlage. In jedem Schritt bringt das Abziehen eines Teils des vorhergesagten Rauschens das Bild dem Aussehen echter Daten ein wenig näher. Was das Modell lernt, ist die Verteilung der Daten selbst, sodass es neue Kombinationen erzeugen kann, die nie im Trainingsdatensatz vorkamen, statt ein Originalbild zu kopieren.
Die Schrittzahl entscheidet über die Geschwindigkeit und beeinflusst die Qualität
Die Erzeugung mit einem Diffusionsmodell ist iterativ: Jeder Schritt ändert nur wenig, und für ein Bild sind in der Regel Dutzende Schritte nötig. Je mehr Schritte es sind, desto kleiner ist jede Änderung, und das Ergebnis ist oft stabiler mit saubereren Details, braucht aber länger. Bei zu wenigen Schritten ist der Umfang jeder Änderung zu groß, und verzerrte Strukturen und verschwommene Details treten leichter auf.
Das ist auch seine deutliche Schwäche: Im Vergleich zu Verfahren, die ein Ergebnis in einem Durchgang liefern, ist es von Natur aus langsamer. Spätere Verfahren zur beschleunigten Abtastung und zur Destillation zielen im Kern alle darauf ab, die nötige Schrittzahl zu verringern und dabei möglichst wenig Qualität zu verlieren.
Der Unterschied zu GAN und autoregressiver Erzeugung
Ein GAN beruht auf dem adversariellen Training von Generator und Diskriminator. Es gibt ein vollständiges Ergebnis in einem Durchgang aus und ist schnell, aber das Training ist instabil und die Vielfalt manchmal begrenzt. Die autoregressive Erzeugung funktioniert dagegen wie das Schreiben eines Satzes: Sie erzeugt ein Pixel oder einen kleinen Block nach dem anderen in Reihenfolge, was logisch klar ist, aber leicht Fehler anhäuft.
Ein Diffusionsmodell ist relativ stabil zu trainieren, und seine Ergebnisse sind vielfältig und in den Details steuerbar. Es tauscht mehrere iterative Schritte gegen Qualität und Stabilität, auf Kosten der Inferenzgeschwindigkeit. Die drei Verfahrenstypen ersetzen einander nicht grundsätzlich; sie beruhen vor allem auf unterschiedlichen Abwägungen.
Zwei häufigste Missverständnisse
Das erste Missverständnis ist die Annahme, ein Diffusionsmodell mache ein vorhandenes Bild unscharf und stelle es dann wieder her. Rauschen hinzuzufügen und wieder zu entfernen ist nur eine Methode, um im Training eine Lernaufgabe zu konstruieren. Bei der tatsächlichen Erzeugung sind die Eingaben nur zufälliges Rauschen und Bedingungen wie ein Textprompt; es gibt kein Originalbild, das wiederhergestellt werden könnte, und die Ausgabe ist ein völlig neues Bild.
Das zweite Missverständnis ist die Annahme, es verändere bei der Erzeugung irgendein Ausgangsbild. Nur in einem speziellen Modus wie Bild-zu-Bild stellt der Nutzer aktiv ein Ausgangsbild bereit und steuert, wie stark es sich verändert, und das ist nicht dasselbe wie der übliche Prozess der Text-zu-Bild-Erzeugung.
Stable Diffusion ist eine der bekanntesten Anwendungen von Diffusionsmodellen und nutzt latente Diffusion: Es komprimiert ein Bild zunächst in einen kleineren latenten Raum, führt dort das Verrauschen und Entrauschen durch und dekodiert es schließlich wieder zu einem Bild. Dadurch sinkt der Rechenaufwand erheblich, sodass es auch auf gewöhnlichen Grafikkarten laufen kann.