Diffusion models: transforming data with precision