Art Affinity is an AI powered search engine that allows you to search for art using images and text. The search focuses on the actual content of artworks and not keywords or meta tags.
demo.mp4
Both the backend and frontend are in this repo, so to get a local version running you only need to clone this repo.
git clone https://github.com/marcelmarais/art-affinity.git
The vector database the powers embedding search is ChromaDB. This needs to run separately from the main backend. You need to set the url / ip address to your chroma instance in the following environment variable:
export CHROMA_DB_URL="your_chroma_instace"
All data is scraped from Artsy's partner sites (mostly galleries), for example: 99 Loop Gallery. This code does not need to be run in a Docker container as it has fewer potential conflicts. To scrape first identify the gallery slug on Artsy and then run:
cd backend
python -m venv venv
source venv/bin/activate
cd src
pip install -r requirements.txt
python scraper/artsty_scraper.py
The backend is mainly built with FastAPI and Pytorch. To ensure compatibility you should run everything from the docker container:
cd backend
./buildDocker.sh
./runDocker.sh
The frontend was created using create-react-app. The design system used is from Arsty - it's called palette. To run the development server:
cd frontend
npm install
npm start
Distributed under the MIT License. See LICENSE.txt
for more information.
Marcel Marais -> marcelmarais2000@gmail.com | marcelmarais.github.io | Linkedin
Project Link: https://github.com/marcelmarais/art-affinity
Thanks to Artsy for their design system and for great open engineering in general!