Proces dyfuzji składa się z w kółko wykonywanego jednego kroku: mamy model do którego wchodzi zaszumiony obrazek z kroku poprzedniego, w wyniku czego dostajemy odszumioną wersję obrazka. Powtarzając taki jeden krok przechodzimy od całkowitego szumu do w pełni wygenerowanego obrazka.
Łatwo jest wygenerować dataset pod to - mamy obrazek, generujemy szum, zaszumiony obrazek powstaje poprzez dodanie szumu do obrazka. Projektujemy sieć neuronową (np. używaną do segmentacji obrazka (w tym przypadku UNet)), która z zaszumionego obrazka przewiduje szum który na nim jest:

Źródło: The Illustrated Stable Diffusion
Pomysł pochodzi z https://arxiv.org/pdf/2006.11239.pdf