These images are trained by machine learning. How do you think we got the training data?
Inspiration
Non-fungible tokens (NFTs) have raised interesting questions:
- Who owns an NFT?
- What value does it provide?
- How long does it last?
We wanted to explore these three questions and push the boundaries on what an NFT means.
Furthermore, this site was inspired by thispersondoesnotexist.com, a website that generates a convincingly real, yet non-existent person.
What it does
ThisNFTDoesNotExist.tech generates an image that could plausibly be an NFT, but is not.
- Anyone can right-click and save the image onto their hard drive.
- An individual image has no monetary value. It is not attached to a blockchain.
- The image is ephemeral. It is up to the viewer whether or not they would like to preserve the image by saving or printing it.
How we built it
The core of the generation process is a Generative Adversarial Network (GAN). Two deep learning models, a generator and classifier, compete against one another in a zero-sum game to generate images that are indistinguishable from real images according to the classifier.
Both of our models process 64x64px images, and use two layers of 2D convolutions to generate and upscale or discriminate and downscale (depending on the model).
Challenges we ran into
We had difficulty tuning the parameters for the models, such as convolution sizes and number of layers. To mitigate the time spent on training with different parameters, we prioritized iteration speed over fine-grained improvements per generation. This let us view changes to our parameters faster, but sacrificed image fidelity.
We also had difficulty deploying the model. Our initial goal was to transpile the generator and the training result data into JavaScript so that it could be hosted on a static site deployment provider (like GitHub). However, the interaction that TensorFlow provided between Python and the GPU proved to be too difficult to package into a browser. We eventually hosted the site and generator on an AWS EC2 instance.
Accomplishments that we're proud of
- Creating a working machine learning model
- Making an amazing frontend website ## What we learned
- How to utilize Tensorflow to make a GAN (Generative Adversarial Network) ## What's next for This NFT Does Not Exist
- Training for longer