The grass is rarely greener, but it's always different

I created my own NFT collection of Pixel Art RPG avatars

When I was a kid I remember my first videogame was Super Mario Land. The moment I started playing and seeing the character sprite moving and jumping I was completely hooked. I don't remember how old I was, but I do know I was spending hours playing until the batteries died. I wouldn't even realize the sun went down and I'd often end up playing in complete darkness.

The grass is rarely greener, but it's always different

Super Mario Land (GameBoy)

From there, I started exploring all kinds of video games and genres for the GameBoy Pocket. From Donkey Kong, Kirby's Dream Land, Bomberman, and Wario Land to the Pokemon series: Red, Blue, Yellow, Silver, and Gold.

Later on, I had a Playstation (PSX) and discovered RPG games through the Final Fantasy series. The whole endeavor of following the adventure of the main character, leveling up, building your team, and improving your gear and skillset over time had a grip over me like nothing else. I was particularly drawn to JRPG titles. Those leaned more toward heavy grinding and a deeper storyline, as well as a particular aesthetic, brighter, more colorful, and upbeat.

final-fantasy-9-fight

Final Fantasy IX (PSX)

Although graphics had improved significantly, I still had a predilection for the 16 and 32-bit games with an isometric perspective. Examples of such games were Final Fantasy VI, Breath of Fire IV, Grandia, and Suikoden 2 to name a few, but I could go on with many more.

grandia-fight

Grandia (PSX)

This love for the pixel art world has stayed constant over time. I'd follow and sporadically play new pixel-art JRPGs, I also used to print pixel-art posters for decoration. A very good friend of mine even did a papercraft model of Vivi Ornitier from Final Fantasy IX because he knew I was amazed at the character:

grandia-fight

Vivi Ornitier (Final Fantasy IX)

Finally, when I was a recent graduate from college, I wanted to do something fun and flashy for my personal portfolio to stand out while looking for a job, so I implemented an interactive portfolio using Phaser.js. The idea was to make it look like a JRPG game level with a character that could move around and interact with different objects representing each section of a CV. It wasn't of much quality but it was really fun 🕺.

phaser-portfolio-gif

Phaser interactive portfolio

Generative AI and NFTs

I have been getting increasingly interested for a while in blockchain, crypto, and more recently generative AIs.

The appearance of text-to-image AI generators blew my mind. First I came to know about OpenAI's DALL-E which I played with for a bit, especially simple prompts with different art styles to marvel at how a penguin or a flower could be portrayed through Impressionism, Realism, or Renaissance.

I then played for a bit with Stable Diffusion and it was mind-bending. I even tried to run it locally on my Macbook and almost get cooked Macbook.

The level of detail in the images that were generated by these models made me realize we are at the beginning of a computing revolution. I've primarily dabbled with text-to-image models and tried image-to-image a couple of times, but I can only imagine the possibilities for creators, artists, and designers. It is a huge powerful tool. Moreover, a friend of mine showed me the inpainting plugin for Adobe Photoshop (which he now uses daily), and I was taken aback.


Non-Fungible Tokens or NFTs are based on the ERC-21 standard. They represent unique, non-fungible tokens. As opposed to an ERC-20 token in the Ethereum blockchain, these can be traded but each of them represents their own entity. The common example of a fungible token is any 5€ bill that can be swapped for any other and they represent the same value. NFTs each have a unique identifier, that along with custom metadata makes the token identifiable and traceable across the blockchain transaction history. Patrick Collins explains the whole ballgame quite nicely in his YouTube channel:

NFTs can have some metadata associated with them. It can be an image, a gif, a video, or even a piece of ownership.

They started out initially focused on digital art, and ever since, plenty of artists, creators, and hobbyists, have jumped on the NFT wagon. Very well-known NFT art collections are the Bored Ape Yacht Club and the CoolCats. Nowadays you can invest, trade, and exchange NFTs in multiple marketplaces like OpenSea, Rarible, and SuperRare.

Some other uses for NFTs are ticketing, virtual real estate or even tokenizing actual real estate.

Motivation

I started scouting OpenSea for collections with the JRPG, RPG, and Pixel Art themes and didn't really find much.

Then I thought to myself that it would be cool to have a collection of NFTs that evoked those characters from the JRPG games I love. And, for them to be generated using a combination of classes, traits, attributes, and gear so that no two characters would be the same. Getting that collectibles vibe on.

Creating the NFT Collection

I set out to create 64 different images by combining three different sets: character classes, color schemas, and weapons. I decided to keep it very simple.

I asked ChatGPT to generate 20 different prompts to feed the AI model using the prompt:

I want to generate a bunch of prompts that will be used to generate images using machine learning. To do that, I will give you a list of classes, a list of colors, and a list of weapons. I want you to write 20 prompts that I can use to generate images by combining these groups of words. The classes are barbarian, druid, wizard, paladin, priest, warlock, and shaman. The colors are blue, red, green, yellow, pink, white, and black. The weapons are scepter, axe, sword, two swords, bow, hammer.

The result of executing the prompt is a list of character descriptions featuring the class, color scheme, and weapon of choice. Here are a couple of examples of the generated output:

Descriptive, succinct, and to the point. On to the next step.

The next step in line is to feed each prompt to a text-to-image AI generator and generate 4 images per prompt to get some variability within the same description. For the A shaman with tribal tattoos, wearing a headdress of feathers and bones, holding a mystical green gem. prompt, here is an example of a generated image:

final-fantasy-9-fight

Shaman

The final step was to create a collection in OpenSea with the generated characters. I chose this platform as 98% of the NFT traffic goes through their portal, and listing NFTs comes at no cost for the winter using lazy minting.

I created each of the NFTs manually, this was a proof-of-concept so I didn't want to dive into the particularities of programmatically automating the image generation and listing on the marketplace. Eventually, I want to learn more about how to streamline a similar workflow of image generation > minting NFT > announce the thing somewhere.

Additionally, I assigned each NFT with different Traits based on the class, color scheme, alternative color scheme, weapon, and alternative weapon.

Finally, what was left was to publish the collection, and then Role Pixel Guild was born.

What's next

I want to keep learning more about generative AI and automate the whole process of generating different prompts based on different cues, then feeding those prompts to other models I found in HuggingFace that look amazing, and listing the images I like the most as NFTs.

All in all, although there was no coding involved in this exercise, I very much enjoyed the process of getting to a handful of images I liked and publishing them. If you enjoy JRPGs, pixel art, and the likes as much as myself, throw me a message in private if you have any ideas or projects we could work on, I feel the new wave of AI is just starting.

Have fun!