Open Source Diffusion Models From Scratch