Implementing Stable Diffusion from Scratch using PyTorch