This repository contains the implementation of ProGAN (Progressive Growing of GANs), a state-of-the-art generative model architecture for generating high-quality images. ProGAN was first introduced in the paper "Progressive Growing of GANs for Improved Quality, Stability, and Variation" by Tero Karras et al. The Notebook included in this repo is strictly based on the above reseach paper
The ProGAN model is trained progressively, starting from a low resolution and gradually increasing the resolution during training. This progressive training process allows the model to learn finer details and produce high-resolution images.
The ProGAN architecture consists of a generator and a discriminator. The generator takes random noise as input and generates images, while the discriminator distinguishes between real and fake images. As the training progresses, both the generator and discriminator are gradually updated to handle higher-resolution images.
- Python (>=3.6)
- TensorFlow (>=2.0)
- High Power GPU
To train the ProGAN model, follow these steps:
- Prepare your dataset and set the data path in the code.
- Set the hyperparameters and training configuration in the code.
- Run the training script.
During training, the model will generate samples at different resolutions. Some generated samples are shown above.
Please note that due to computational limitation i trained model only to 32x32 image but PROGAN can generate images upto 1024x1024 resolution
Also this notebook is trained on Kaggle with Tesla P100 GPU for 12 hours and and the required time for complete training is 83 hours.
The trained ProGAN model is capable of generating high-quality images with impressive details. Below are some sample generated images:
You can use the trained ProGAN model to generate new images. Here's how to generate images using the pre-trained model:
# Load the pre-trained model
model = load_model('pggan_generator_128.h5')
# Generate new images
generated_images = model.generate_images(num_samples=10)
The implementation of ProGAN is based on the original paper by Tero Karras et al. and open-source implementations available in the community.
Special Thanks to Github Community and Kaggle Notebooks for the resources and Dataset.
This project is licensed under the MIT License - see the LICENSE file for details.
Link for Dataset - https://www.kaggle.com/datasets/badasstechie/celebahq-resized-256x256