This project implements a Cycle-Consistent Generative Adversarial Network (CycleGAN) to convert Monet-style paintings into realistic photographs using the MonetGAN dataset. Unlike traditional GANs, CycleGAN does not require paired image data. Instead, it learns to perform unpaired image-to-image translation by using cycle consistency and adversarial training.
Platform: Google Colab
Dataset: MonetGAN (Unpaired Monet paintings and real photos)
Generator Network (G_AB & G_BA)
Converts images between the two domains: Monet → Photo and Photo → Mone
Uses:
Reflection padding
Downsampling with convolutions
Residual blocks for stable translation
Upsampling to return to original resolution
Tanh activation to produce image outputs
Discriminator Network:
PatchGAN structure (classifies image patches as real or fake)
Works separately for each domain
Outputs a probability map instead of a single value
Adversarial Loss: Encourages generators to produce realistic images to fool the discriminators
Cycle Consistency Loss: Ensures image translations are consistent when cycled back to original domain
Identity Loss: Ensures the generator preserves color/content when input image is already in target domain
Trained for 100 epochs
Used unpaired datasets of Monet paintings and real photos
Images were preprocessed to 256×256 resolution
Optimized using the Adam optimizer
The model successfully learned to generate realistic photos from Monet-style paintings.
📸 Sample Output
Input: Monet Painting Output: Realistic Photo Version
Google colab Notebook page :