ARTficial, the ultimate image stylization web application. ARTficial allows users to easily register and access a wide variety of filters to give your images a unique and artistic look. With ARTficial, you can turn your ordinary photos into works of art with just a few clicks. Whether you're a professional photographer or a casual user, our user-friendly interface and easy-to-use tools make it simple to stylize your images to your exact specifications. So why wait? Sign up today and start creating stunning images with ARTficial!
The project comprises of the following 4 solutions
- WebApp (Frontend for users created using React JS)
- Backend (Backend server running on Node, Express JS, MongoDB)
- Admin (Admin Panel created using React as well)
- ModelApi (Our model server that generates stylized images using NST)
Make sure you have node ^16.15.1 and npm ^9.1.2 installed on your computer globally from https://nodejs.org/en/download. Also, make sure you have the python installed along with following packages of python installed as well: flask flask_cors flask_limiter tensorflow-hub tensorflow matplotlib numpy cv2 cloudinary cloudinary.uploader
Also, keep notice of that you are in the right directories when running the following command for every solution. e.g. change directory to artficial.modelapi, and then run python app.py
python app.py
or if you are using python3
python3 app.py
The model server should be up and running on localhost:5000
Install packages/dependencies using:
npm install
After succesffuly installing all packages:
npm start
The web app should be up and running on localhost:3000
Install packages/dependencies using:
npm install
After succesffuly installing all packages:
node app.js
or preferably if you have nodemon installed globally
nodemon app.js
The main server should be up and running on localhost:4000
Install packages/dependencies using:
npm install
After succesffuly installing all packages:
npm start
The admin panel should be up and running on http://localhost:3001/
Following are some screenshots of the app showcasing different functional requirements
The original neural style transfer implemented by Gatys has a problem in that, sometimes it generates a more 'filter' like image, which gives it a very synthetic/artificial look. As our platform requires the generation of images to be more like paintings or artwork, the baseline implementation won't suffice. So, we have proposed changes in the architecture of original Neural Style Transfer in the following domains that can aid in rendering painting-like images.
-
Gram matrix alteration
-
Style loss modification
-
Variation of Layers in style and content extraction
-
Miscellaneous hyperparameter tuning
Presentation: https://www.canva.com/design/DAFnkfeeF24/Ci0y6Bcx1PPkqUa7-jR1zQ/view
Colab notebook: https://colab.research.google.com/drive/1m9mvw8kX6So1S7Fz2UzgfBuKeMJHwpyO?usp=sharing