Train A Diffusion Model