Skip to content

surajsrivathsa/escomic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

27 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ESCOMIC ๐Ÿ“š

Adaptive and Explainable Search for Comics โ€” An intelligent comic book search system with personalization, explainable AI, and interactive relevance feedback.

Overview

This is research-backed comic book search system that:

โœจ Searches Beyond Metadata โ€” Use visual & textual content, not just titles/genres

โœจ Explains Results โ€” Understand why results were returned with interactive explanations

โœจ Learns From You โ€” Personalization via implicit user feedback (mouse hover tracking)

โœจ 6 Research Systems โ€” Compare different approaches: Wayne, Stark, Croft, Butcher, Gray, BM25

โœจ Production Ready โ€” Optimized Docker images, API documentation, full stack setup

For setup instructions, see:

Key Features

Feature Details
๐Ÿ” Content Search Search by text, visual features, color, texture, artistic style
๐Ÿ’ก Explainability Weights-based local explanations, feature importance analysis
๐Ÿ‘ค Personalization Learns from hover patterns, adapts results per user
๐ŸŽš๏ธ Rich Faceting Filter by genre, character, year, color palette, topics
๐Ÿ“Š Comparison Compare books side-by-side with explanations
๐Ÿ—ฃ๏ธ Feedback Non-obtrusive relevance feedback via UI interactions

Technology Stack

Layer Technologies
Backend FastAPI โ€ข Python 3.8+ โ€ข scikit-learn โ€ข Transformers โ€ข PyTorch
Frontend React 18 โ€ข Material-UI โ€ข Axios โ€ข React Router
Deployment Docker โ€ข Docker Compose โ€ข Nginx โ€ข Ubuntu/Linux
ML/AI Sentence-Transformers โ€ข PyTorch โ€ข scikit-learn
Data Pandas โ€ข NumPy โ€ข 1700+ Comic Books โ€ข 1700+ Cover Images

Project Structure

escomic/
โ”œโ”€โ”€ README.md                 โ† Start here
โ”œโ”€โ”€ docs/                     โ† All documentation
โ”‚   โ”œโ”€โ”€ INSTALLATION_DOCKER_HUB.md      (recommended setup)
โ”‚   โ”œโ”€โ”€ INSTALLATION_LOCAL.md           (local build setup)
โ”‚   โ”œโ”€โ”€ SYSTEMS.md                      (Wayne/Stark/Croft/etc)
โ”‚   โ”œโ”€โ”€ TROUBLESHOOTING.md              (known issues)
โ”‚   โ”œโ”€โ”€ DOCKER_COMMANDS.md              (Docker reference)
โ”‚   โ””โ”€โ”€ FILE_STRUCTURE.md               (detailed directory guide)
โ”‚
โ”œโ”€โ”€ python_backend_api/       โ† FastAPI Backend
โ”œโ”€โ”€ react_frontend_ui/        โ† React Frontend
โ””โ”€โ”€ docker-compose*.yml       โ† Docker configs

๐Ÿ‘‰ Full Directory Guide โ†’

๐Ÿš€ Getting Started

Prerequisites

  • Docker & Docker Compose (easiest option) OR
  • Python 3.8+ + Node.js 18+ (local development)
  • 6GB+ RAM (8GB+ recommended)
  • 8-10GB disk space (more with data files)

Quick Start

Choose your setup method:

Option 1: Docker Hub Images (5 minutes - Easiest)

docker-compose up -f ./docker-compose.remote-pull.yaml -d

๐Ÿ‘‰ Full guide โ†’

Option 2: Build Locally (30 minutes)

docker-compose up -d

๐Ÿ‘‰ Full guide โ†’

Option 3: Manual Development (Advanced)

  • Backend: cd python_backend_api && python -m venv venv && source venv/bin/activate && pip install -r requirements.txt
  • Frontend: cd react_frontend_ui && npm install && npm start

๐Ÿ‘‰ Full guide โ†’

After Starting

๐Ÿ“š Documentation

All documentation is in the docs/ folder:

Document Purpose
COMPLETE_REFERENCE Additional information
PRESENTATION_SLIDES Presentation Slides
INSTALLATION_DOCKER_HUB.md Quick setup with pre-built images
INSTALLATION_LOCAL.md Local build & development setup
SYSTEMS.md Wayne, Stark, Croft, Butcher, Gray explained
TROUBLESHOOTING.md Known issues & solutions
DOCKER_COMMANDS.md Docker command reference
FILE_STRUCTURE.md Detailed directory guide

๐ŸŽฎ Using ESCOMIC

Basic Workflow

  1. Search: Enter book (e.g., "book name")
  2. Browse: See results with explanations
  3. Filter: Apply facet filters (genre, color, etc.)
  4. Interact: Hover over results to provide feedback
  5. Explore: Click for detailed explanations

Features

  • Content-Based: Search visual & textual features
  • Explainable: Understand why results appear
  • Personalized: System learns from your interactions
  • Comparable: Side-by-side book comparisons
  • Faceted: Rich filtering options

โš ๏ธ Known Issues/Quirks:

  1. The facet control filter switch is sometimes finicky and needs 2-3 clicks to toggle properly. This is a known bug of the research implementation.
  2. If you hover on same book twice, then you may see different set of keywords. This is because we have mined multiple keywords based on 5W(Who/When/What/Why/Where)1H(How). Keywords shown randomly across each category.

Systems to Choose From

Select from Wayne, Stark, Croft, Butcher, Gray, or BM25:

  • Wayne โญ (Recommended) - Full features
  • Stark - Test comparison quality
  • Croft - Test explanation quality
  • Butcher - Baseline (no personalization)
  • Gray - Random personalization control
  • BM25 ๐Ÿ†• (Added April 10 2026) - Probabilistic text ranking + free-text search

BM25 variant note (April 10 2026): A BM25-based search variant was added alongside a free-text search capability. Unlike all other variants which require selecting a book as the query, any variant can now accept raw text input in the search bar (e.g. "batman detective crime") โ€” results are powered by BM25 ranking. The BM25 variant additionally uses BM25 for query-by-example book-click searches, replacing TF-IDF cosine similarity.

๐Ÿ‘‰ System Details โ†’

API Documentation

Interactive API docs available at http://localhost:8000/docs (Swagger UI)

Search Endpoints

Endpoint Method Used By Description
/book_search POST Wayne, Stark, Croft Book-click search with personalization & reranking
/book_search_with_no_personalization POST Butcher Book-click search, no personalization
/book_search_with_random_serp_results POST Gray Book-click search, random reranking
/book_search_with_random_explanation_feedback POST Croft Book-click search, random explanation
/book_search_with_bm25 POST BM25 Book-click search using BM25 probabilistic ranking

Search Bar Endpoints

Endpoint Method Used By Description
/book_search_with_searchbar_inputs POST Wayne, Stark, Croft, Butcher Search bar (book select or free-text via BM25)
/book_search_with_searchbar_inputs_and_random_serp POST Gray Search bar with random reranking (or free-text via BM25)
/book_search_with_bm25_searchbar POST BM25 Search bar with BM25 for both book-select and free-text

Free-text search (all variants): All searchbar endpoints accept type: "free text" queries โ€” BM25 is used as the engine, all facet weights default to 1.0, and a random explanation is generated.

Explanation & Utility Endpoints

Endpoint Method Description
/local_explanation POST Explain similarity between two books
/compare_books POST Compare two books with explanation
/compare_books_with_random POST Compare two books, randomized explanation (Stark)
/view_comic_book GET Get full book details
/start_session GET Create new user session

โš ๏ธ Important: Large Files

Due to size (~1.5GB), are also provided separately to help local builds. If you are using dockerhub based docker images then this is not necessary for you as images and feature vector files are already included inside docker image on hub.

โŒ Comic Book Covers (~1700+ JPEGs, 1GB) โ†’ Download from: https://1drv.ms/u/c/ca9d6b4b08cafad5/IQAOXakqjpCoT6uoGtMJDYJ7AZ49rat6QJoCWk2XH8jpakI?e=hYwPQE โ†’ Extract to: react_frontend_ui/public/comic_book_covers_ui/

โŒ Metadata Files (CSV/XLSX, 300MB) โ†’ Download from: https://1drv.ms/u/c/ca9d6b4b08cafad5/IQB5sn0zhH3PR4AxnKQsWkfbASejNBIrv0a4Ra-2lRGH8pk?e=3nR3pi โ†’ Extract to: python_backend_api/data/metadata/

๐Ÿ‘‰ Setup instructions โ†’

See DOCKER_OPTIMIZATION_GUIDE.md for details.

๐Ÿ†˜ Need Help?

๐Ÿ“„ Citation

@article{escomic_2026,
  title={ESCOMIC: User Adaptive Explainable Search for Comic Books},
  author={Suraj Shashidhar, Sayantan Polley, Mounit Roy, Andreas Nurnberger},
  journal={SIGIR 2026},
  year={2026}
}

๐Ÿ“ž Support

  • ๐Ÿ“š TROUBLESHOOTING.md
  • ๐Ÿ› Create an issue on GitHub
  • ๐Ÿ“ง Contact maintainers

About

ESCOMIC is an adaptive, explainable comic search system that blends visual, textual, and high-level comic facets. It uses implicit feedback to refine results and offers clear global and local explanations, improving effectiveness, trust, and user satisfaction.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors