GAAAN is a Generative Album Art Adversarial Network that uses the DCGAN architecture to generate unique music album-art images. This repository contains folders for acquiring the data, training the GAN, and deploying the GAN with a Flask webserver.
The plan is to experiment more with training and different architectures to produce more detailed results as well as re=implementing the user interface of the web service.
-
Webservice Landing Page
-
Training Output
- Output Examples
- Download or clone the repository and change your working directory to the repository.
- Type these commands in to your terminal or command prompt:
cd WebService
pip install requirements
python3 main.py
- You sign up for a spotify developers credential here: https://developer.spotify.com/console/
- Use the albumArtDownloader.py to scrape Spotify and save a csv file with the artists info and weblinks to their album art covers
- THIS DOES NOT ACTUALLY DOWNLOAD THE IMAGES.
- Use DataSetAnalysis.ipynb to load the masterAlbumList.csv and check for duplicates, make smaller subsets.
- THEN download the images to a directory
- you will need to specify the directory name in the Album_Art_GAN.ipynb notebook so the training can find the images.
- You can train locally on your machine using Jupyter Notebooks or upload the repository to your Google Drive and train using Google Colab Pro.
- In the "data_and_training" directory, open Album Art Gan.ipynb
- If you are training locally, skip the first two cells of the Album Art Gan notebook.
- Tensorflow - ML model creation
- Keras - Model creation
- Google Colab - Free Cloud Training
- Flask - Web Server
- Pillow - Library for image handling
- Spotipy - Python library for connecting to Spotify API
- Unsupervised representation learning with deep convolutional generative adversarial networks
- Generating modern arts using generative adversarial network gan on spell
- Generate Anime Style Face Using DCGAN and Explore Its Latent Feature Representation
Michael McDermott, Joshua Matthews, Patrick Caldwell
This project is licensed under the MIT License - see the LICENSE.md file for details