This project explores generative models for images, specifically focusing on Generative Adversarial Networks (GANs) and Diffusion models. The goal is to understand their implementation, analyze specific architectures, and apply different training strategies for image generation, both with and without conditioning.