Generating retro pixel game characters with Generative Adversarial Networks. Dataset "TinyHero" included.
Dataset TinyHero includes 64x64 retro-pixel character. All characters were generated with Universal LPC spritesheet by makrohn. Each character in the dataset was randomly generated including: sex, body type, skin color and equipment with LPC spritesheet with 4 different angles view.
Image sixe | Dataset size | Source | Download |
---|---|---|---|
64x64 | 3648 images | LPC Spritesheet | data.zip |
912 per class |
According to the rules of the LPC all art submissions were dual licensed under both GNU GPL 3.0 and CC-BY-SA 3.0. Further work produced in this repository is licensed under the same terms.
CC-BY-SA 3.0: http://creativecommons.org/licenses/by-sa/3.0/ See the file: cc-by-sa-3.0.txt
GNU GPL 3.0: http://www.gnu.org/licenses/gpl-3.0.html See the file: gpl-3.0.txt
Based on the DCGAN pytorch tutorial: https://pytorch.org/tutorials/beginner/dcgan_faces_tutorial.html
-
Experimented with latent size (input for Generator) and feature map sizes
-
Added soft and noisy labels
-
Added Wasserstein loss which is a good solution for mode collapse
- Wasserstein loss - https://developers.google.com/machine-learning/gan/loss
- mode collapse - https://machinelearningmastery.com/practical-guide-to-gan-failure-modes/
-
Added dropout in both generator and discriminator
Conditional DCGAN that generates a pixel character seen from selected angle.
- different learning rate for discriminator and generator
- soft labels
- added classification loss to the discriminator. Discriminator have to guess fake/real but also the character angle
- generator is conditioned with embedding from trainable look-up table that gives the info about the character view angle
Deep convolutional autoencoder. This autoencoder have the same architecture as DCGAN above. The only difference is the additional fully-connected layer at the top of the encoder, which projects output from convolutional layer to selected latent size.
- embedding size = 40 is enough for a good-quality reconstruction
- autoencoder have great denoising properties
- easier and more stable to train then GAN's