I was introduced to NFT's through the Sologenic NFT Marketplace as an early adopter. At the time, I was creating AI Artworks combined with traditional digital art. The community I built from this NFT was very interested in generating their own artworks, so I provided them a discord AI Art bot to use. I would then mint their artworks by hand, and send it to them as a benefit for holding my NFT. When I heard about XLS20, I knew that I could build an automated platform for others to create their own artworks, and own them immediately, without the need to perform manual minting.

What it does

The web application accepts any XUMM Wallet as a login. Once logged in, the user can trade XRP for centralized credits. These credits can be used to generate artworks, and choose to mint them. The application also assists users with creating artworks by providing suggestions on how to create a good "prompt". Prompt engineering uses natural language to describe an image, and the AI models will generate them. Each image generation sends the image to a 3rd party app to create automated attributes for the NFT. The application also denies any harsh language used to encourage safe for work content. Lastly, it creates all the required metadata and IPFS links for the NFT, which can be viewed on Bithomp, ONXRP, and other marketplaces that supports the latest Art.v0 proposed metadata standard on the XRPL XLS26 discussions.

How we built it

The web application is built on with Python Flask, using a combination of XUMM API, XRPL CLIO, Ripples Websockets. The marketplace backend handles NFT Buy/Sell offers, and stores them on an Elastic Search backend. Lastly, images are generated using personal owned hardware consisting of two NVIDIA GTX 3090's that I purchased to support the application.

Challenges we ran into

  1. After release of XLS20, many marketplaces were not handling everyones offers. My application didn't track that, so I present the user the cheapest price for that NFT, even if its not on my own marketplace (where I take a broker fee).
  2. Using the XUMM API can be rate limited, so using more native calls to the web socket ledger helped mitigate this.
  3. The hardware I purchased must be stored in cold areas under heavy load to ensure the GPU's do not burn out.
  4. Teaching new users about how to generate better looking art works. I created a "magic" button that helps them make better images.

Accomplishments that we're proud of

My community loved the idea, so I built it for them in mind. They have already started to use it, and by holding my NFT, they earn these credits passively, so they can use them to generate more artworks. All metadata works great with the marketplaces, and it's fun to see them show up with no issues.

What we learned

I learned a lot about how to use the ledger and using XUMM API.

What's next for

Adding more machine learning models to create other forms of content. Music, Videos, and all the new technology that is moving extremely fast.

Built With

Share this project: