Creating a 500 piece, 1 of 1, NFT series on Elrond using Midjourney (AI),Elventools, and Frame It.
There are some pretty heated debates happening online when it comes to AI generated art. You can see demonstrations of DALL-E 2 on some mainstream YouTube channels and if you search Twitter for #midjourney, you’ll see some pretty amazing pieces of work. As with any new tool, some people hate it, some people love it.
I’m not here to debate the validity of any AI art tools or sway your opinion one way or the other. There are plenty of free AI Art generating tools out there so you can see for yourself what they hype is about and if you like.
When I got access to the closed beta of Midjourney (an increasingly popular AI Art generator. Apply for beta access HERE), I started playing with it and wondered how difficult it would be to create a semi large series of NFTs. That’s what this article is about. My experience as one person learning to use modern day tools to create a 500 piece, 1 of 1, NFT series using an AI Art generator and current tools available online. Today is June 5th, 2022.
This article is long. I did my best to put as much information as possible to help anyone who wants to create their own NFT series on Elrond.
TLDR/Disclaimer: I used Midjourney to generate 500 totally unique pieces (AI Knights), created the associated metadata needed to mint them using Elventools, and then set up a mint on demand collection through the marketplace Frame It. I’ll start with writing about image generation, move into why I chose Elrond to mint along with the tools used, and then conclude with the minting process I chose to use on Frame It. This is NOT a review or discussion about how Midjourney works. It is still in beta and will be changing quite a bit over time.
Nothing in this article should be considered financial advice. Always do your own research. I have held, and hold, multiple cryptocurrencies including EGLD, but no one from any company or foundation has paid me to write anything about their products. None of the images I placed in this article are advertisements or referral links.
AI Art Generators: Midjourney is one of the latest AI Art generation tools preparing to hit the market. You can apply to their closed beta testing program, or receive an invite from someone who is a current user. Because the program is going through constant improvements, and changes are occurring daily, I am not going to discuss how it works, or talk about what I think is good or bad. If you want to see work other than the “AI Knights” I created for this article, search Twitter or Instagram for #midjourney.
There are several other free AI Art generation tools available if you are interested in jumping into the space. Search Google for the latest Colab Notebooks for AI Art creation like Disco Diffusion, Jax, Improved Multi-Perceptor VQGAN + CLIP, and pyttitools, just to name a few.
I love AI Art and think the programs out there are great tools that allow everyone to expand on their creative desires. They’re still very new and people are finding new ways to use them. Which is what I did with this learning experiment.
My new series: While I was playing with Midjourney, I decided to create a series of knight helmets just for personal gratification and to learn the tool. As I was creating them in different colors, I lost track of time. Before long, I had created over 100 different versions, which really surprised me. They all looked interesting in their own way, each one being 100% unique, and I wanted to share them with others. I’m fascinated by cryptocurrencies and NFTs, so combining my AI creations and the NFT space while writing about it felt like a good idea. Hopefully this can help guide you on your creative journey as well.
How I made the images for my series: One of the most common ways to create a series of unique NFTs is to create several images/layers that can be stacked on top of each other in a random order. There are several different articles covering this concept, and I won’t go into it here. My idea, was to use AI Art software to generate one image, from a variable in the prompt itself.
Instead of having different layers for an eye color like brown, blue, green, etc., I would just change the color I used in the prompt itself. For example, if one prompt was “a beautiful knight helmet made of white armor”, my next one would be “a beautiful knight helmet made of red armor”. That one word would give me different results (hopefully), but also be one of the attributes I would need to keep track of for the NFTs.
The issue I ran into is, current software for creating NFT images with corresponding metadata is NOT designed for these type of single layer images. Also, there is no way for me to modify the code of Midjourney to generate the metadata file I would need to go along with each image. Here’s a picture of the contents of a simple JSON(metadata) file.
Let me detour real quick and talk about NFT data. If you want to create NFTs in the hundreds to thousands quickly, you need at least two files for each NFT you want your customers to mint. One is the actual image itself, and the other is a JSON file containing information specific to that image, including attribues, if you have any. Once you have those two corresponding files, you can upload them to long term storage (IPFS, Arweave, etc.) and create the NFTs on whatever blockchain you are using. If you are an artist uploading single unique pieces every now and then, you don’t create JSON files because whatever marketplace you mint with will TYPICALLY handle the JSON part for you behind the scenes. Ok, back on track.
So I have created my 500 AI Knights, 100 of each for five different colors, but I have no JSON files. Before I can create the JSON files, I need to decide where I’m going to mint because the structure and content of those JSON files change depending on the blockchain. With that in mind, I have to be aware of my own personal limitations when it comes to ability as well. Time isn’t an issue since I have as much time as I need. But I am only one person with no help aside from strangers I reach out to with questions online. I am also paying for everything out of my own pocket. Because of that, I was thinking batch minting would be the way to go. It’s less expensive and takes less time than minting each image one by one.
Batch Minting NFTs: When I refer to batch minting, I mean uploading all of the NFT images and JSON data ahead of time (in one big batch) and letting the customer mint on demand until the supply runs out. This is done in a variety of ways, depending on the marketplace/blockchain.
One way is creating a web site specificially for minting, outside of any marketplace. The team/person will use prepackaged or opensource software to mint the NFTs on demand on a personal web site. You click a “Mint” button, pay the fees, and the NFT shows up in your wallet. After the minting has successfully completed, the team/person will notify secondary marketplaces of the successful sales, and the marketplaces can then decide if they want to offer the ability to sell those NFTs on their site. This is obviously a lot of work, and could work for me, but I’m not that ambitious right now. I have no desire to set up a brand new web site for this learning experiment.
Another way is a team/person will approach the marketplace first. The marketplace will allow the project to mint directly into that one specific marketplace from the beginning. This allows the project/person and buyers to immediately break into the secondary market while the mint is happening. It also lets people buy into the project immediately after the initial mint has sold out.
Now, I don’t have a lot to offer a marketplace as far as volume or pricing. My collection will be relatively small compared to others and I’m not planning on it bringing in a ton of revenue. It’s a learning experience for me, so marketplaces most likely aren’t going to be interested in my small project and won’t have time to help me out. That means I need a marketplace that would allow me to do this without contacting them for permission first. (Spoiler alert! I found one.)
The last option is minting each image, one by one, directly into the marketplace using their own interface. The benefit here is you don’t have to manage the storage for the image, and you don’t have to generate any JSON files. As you mint, you assign the attributes you want and enter the data for each individual image during the minting process. By doing it this way your buyers will be able to pick what specific version they want to buy from the entire collection, and they don’t have to pay a minting fee because you mint it for them.
The drawback here is for large projects, it would be very time consuming and almost cost prohibitive depending on the quantity. If it costs $0.10 USD to mint one NFT, and it takes about 3 minutes to do it through the marketplace, I would have to spend 50 hours plus $100 USD for every 1000 NFTs I mint.
$0.10 USD per mint is a very low price to pay on some blockchains, but it’s also pretty high on others. You’ll also most likely have to pay a storage fee to the marketplace on top of the minting fee because the marketplace will be uploading the image on your behalf. They might pay for a pinning service if they’re using IPFS, or they might pay the Arweave fees behind the scenes for you. That cost is just passed on to you as a customer for using their tools.
These are three major ways to mint that I’m aware of. I found a marketplace called Frame It that will allow me to set up a random mint after uploading all of my images and metadata to IPFS without having to go through a long review process first. I haven’t seen this option offered anywhere before, so I’m excited to give it a try!
Even though Frame It was the only marketplace I found that offered this service, I still did my research when it came to how active they were in supporting their users. Like many other projects, Discord is the platform of choice for support whether that comes from fellow community members, or the two main founders themselves. I was glad to see users were getting answers and support quickly through the support channel.
Frame It has a link to their whitepaper which includes details of where the project is heading, along with Linkedin profiles for their two founders. This gave me more confidence when using the platform and made me even more interested in how I could participate in other aspects of the marketplace. Even if you aren’t interested in creating NFTs, you should head over to Frame It and take a look around. There are other ways to support the marketplace you might be interested in.
Compatibility: One thing to keep in mind when selling and collecting NFTs is that not every marketplace on the blockchain mints their NFTs using the same standard/data. It’s very nice if they do, and makes future sales a lot easier on you as a collector, but you won’t always be that lucky.
This means you might mint/buy your NFT at one marketplace, but not be able to sell it on another marketplace because the standard doesn’t match. You still own the piece, so there is no concern there, but you might have just tied yourself and the future sale of that NFT to that one marketplace. Make sure you do your research in that regard.
Why the Elrond blockchain: After a lot of exploration, my decision to use Elrond for this particular series was based on a few different things. One is how the different Maiar wallet apps interact with the marketplaces/web sites inside the ecosystem. The official app/wallet for Elrond is called Maiar, and can be downloaded in multiple forms. Theres and app for your Android or iPhone called the Maiar app, theres a Chrome extension called the Maiar DeFi Wallet, and you can also just go to https://wallet.elrond.com and create a web wallet there. All of these integrate very well with the marketplaces I was looking at.
When using the apps, all of the transactions are pretty straightforward and you can see what you’ll be paying for each one. There is no selecting slow, medium, or fast in gas fees. Even though the gas fees aren’t the cheapest around, they weren’t over the top expensive either.
I liked how everything I used “just worked” without a hassle or having to configure too many things or change too many settings. I created wallets with and transferred EGLD using the iPhone app, the web wallet, and the Chrome extension. All of them were very easy to navigate, had well thought out interfaces, and were overall easy to use for me. I believe all of these were developed by a core group of developers at Elrond which is probably why they are so consistent and work well together.
Another reason I chose Elrond was the NFT cross compatibility between the marketplaces. While there are only a few marketplaces to choose from right now, the majority of them would let me sell any of my existing Elrond NFTs on their platform, regardless of where I purchased them from. That SHOWS me they’re all following the same standard, not just SAYING they’re following it.
One thing I didn’t understand was the amount of time it took to process transactions. Elrond is supposed to be one of the fastest blockchains running, but it took just about 30 seconds for a lot of my transactions to finalize when interacting with a smart contract. I’m guessing the 6 second finality doesn’t apply to what I was doing, which is a bummer.
All of the positives I experienced definitely outweighed the negatives, and since I was not extremely familiar with Elrond, I felt this was a great opportunity to learn about it and see what it could do.
Creating the Metadata (kinda technical): Now that I picked a blockchain, I need to build my metadata. This is where things can get a bit complicated depending on the blockchain and marketplace you want to use. Since I’m going to be minting on Elrond, there is a free, opensource tool called Elventools that will work perfectly for me and my small project. The author was very nice and answered all of my questions as I worked through the process. I encourage anyone with questions to follow the links on the web site and contact Julian if you run into problems.
My AI Knights are all 100% unique images created by AI, so there are no layers involved. Typical NFT collections are created by randomly stacking multiple layers on top of each other to generate a single image. Each layer is assigned a name/trait, and each trait is used in a specific number of images. The “rarity” of each NFT is then determined by how many in the total collection have a specific trait. Rarity calculations are a whole different topic I won’t get into.
The collection I created has 100 each of black, white, red, blue, and purple knights, so the only variable “trait” is the color. Because of that, I had to trick the Elventools nft-art-maker into thinking each image of a specific color was a layer, but I didn’t want it to stack those layers at all. It took some experimenting, but eventually I got the output I needed which was two folders. One folder containing the images randomized and re-labeled in sequence from 1–500 and one folder containing a JSON file specific to each image, also labeled in sequence from 1–500.
Storing my Future NFTs: Now that I had all of my images, and the corresponding JSON files with the necessary data, I needed to upload them for long term storage. The instructions on the marketplace stated I needed to upload all of the images and JSON files into one folder onto IPFS. Once I did that, I would have a CID pointing to the folder containing all of that information, and that is what I would use to set up the minting smart contract on the marketplace.
The most popular IPFS service I found is pinata.cloud. I won’t go into details about IPFS vs. Arweave or other storage solutions because that’s way beyond the scope of this article. Bottom line is, the marketplace instructions outline what I need to get, and pinata.cloud is the easiest, most popular way for me to get what I need. Storage is free for up to 1Gb and they have other paid plans if I get more serious and need more storage. My entire collection is just over 750Mb, so the free plan worked for me.
I uploaded all of the files into one folder through the web interface on pinata.cloud and got my CID. Now, onto Frame It to create the minting smart contract.
Smart Contract Setup: Before setting up the smart contract for this collection, I decided to create a totally new wallet that I would use specifically to control this collection, and possibly future collections on Elrond. When I was very new to crypto and NFTs, I started just using my own personal wallet for a lot things, like minting the first NFTs I created. I quickly learned it was a lot easier to set up a totally separate wallet for my artwork. This way, my personal funds/NFTs aren’t mixed up with NFTs I am creating as a creator/seller. This is really just a personal preference, but it made me a lot more comfortable when organizing my work and finances.
Creating a wallet is free, it just means you have more seed phrases to store and keep track of. NEVER EVER give ANYONE your seed phrase unless you want them to have 100% unfettered access to everything in that wallet.
Setting up the collection through Frame It was painless. I wasn’t doing anything crazy or out of the ordinary, so I just followed the instructions and was able to set up the smart contract for just a little over 0.75 EGLD which is about $57.75 USD at todays price. There is no coding involved, just the usual questions to answer like a collection bio, name, etc. I was actually pretty surprised at how easy it was to get it up and running.
I created a 512x512 icon to use for my collection pfp and a 1500x500 image for the banner. After adding a description, some links, making some updates, the smart contract for the collection is officially mintable! Feel free to take a look at https://www.frameit.gg/marketplace/AIKNIGHTS-6b2bcc/sale.
I wanted to make sure there were no issues with purchasing, so in the interest of full disclosure, I purchased two of my AI Knights using my own funds. I have noticed some other projects doing this in the past and because they don’t talk about it up front, they get accused of pumping their own work.
The purchase process through Frame It was just as easy as the set up process. I set the price for each piece at 0.1 EGLD which is about $7.65 USD today (June 5th, 2022) and the gas fees for the purchase totalled $0.015 USD. There are some really great projects for sale on Elrond and I encourage everyone to check them out on Frame It.
Wrapping up: If you’re a creator/project that is looking for a fairly quick and painless way to get an NFT collection up and for sale, I would highly recommend giving this process a shot. You can obviously switch out any part with one you are more comfortable with. I proved to myself that a one man operation can create a 500 piece collection and mint it on a blockchain within a reasonable amount of time. The whole process took me about two weeks working on and off, and the majority of that was creating the 500 pieces in Midjourney. The hardest most tedious part was organizing and documenting the process for this article.
Hopefully I have been able to help you understand the NFT creation process a little better so you feel more comfortable buying, selling, or creating in the crypto space going forward. Thank you for reading and good luck on your future projects!