Diffusion Models Explained