💡 Inspiration 💡
The history of art is rich, deep, and underappreciated. On the other hand, AI generated art has exploded in recent years and the technology has never been more relevant. What better way to learn about art than to play a casual web game involving AI art against your friends?
✨ What it does ✨
Welcome to Forge-It!, a real-time multiplayer party game where you and a group of art forgers work to imitate famous artists’ styles to sneak forged art past the detectives! Armed with a state-of-the-art image generation model, knowledge about an artist and art style, as well as one piece you’ve managed to get your hands on, your aim as a forger is to craft AI generated art that can fool detectives with access to the artist’s portfolio. On the other hand, as a detective, your goal is to root out the "forged" art and stop the forgers!
Forge-It! is a web application that allows many people to play against each other on two teams, the forgers and the detectives. Every round, the forgers generate images by entering prompts that get sent to a Stable Diffusion model which turn descriptions of images into reality. The forgers also vote on which art pieces they think are the best imitations, and the top 3 along with one true art piece by the artist are presented to the detectives, who try to select the real one. The artists take advantage of descriptions of art movements and the artist which are given to them, and the detectives take advantage of 3 art pieces of the artist along with the descriptions.
⚙️ How we built it ⚙️
We used Websocket with Node.js to create our server, which is responsible for broadcasting and handling user events in the back end. We used a Flask server for handling parsing Wikipedia pages for artist and art style information and for accessing our dataset of tens of thousands of art pieces, and another Flask server for accessing the Stable Diffusion model. We hosted the model on Google Cloud and used an Nvidia A100 GPU to generate images. In the front end, we used React to build an aesthetically pleasing web app.
🔥 Challenges we ran into 🔥
There were a couple challenges with hosting the Stable Diffusion model, as well as building real time communication with Websocket. We also had to do a lot of data wrangling when cleaning our art dataset and when scraping Wikipedia.
💪 Accomplishments that we're proud of 💪
We're proud of creating an application that is not only completely functional, but also is extremely clean, aesthetically pleasing and intuitive to use. We're also proud of how well we worked together as a team.
📚 What we learned 📚
We learned a lot about how to communicate between multiple users and the server with Websocket, and also generally how best to approach full stack development.
📈 What's next for Forge-It!📈
We want to make a full points system, where forgers get points for getting votes on art they generated and points for having their art mistakenly chosen by detectives. Also, we want to implement more ways for the detectives and forgers to interact, such as detectives being able to intercept parts of forger prompts.
Built With
- flask
- google-cloud
- node.js
- react
- stable-diffusion
- websockets
Log in or sign up for Devpost to join the conversation.