mtg-chair-ai/README.md

37 lines
1.9 KiB
Markdown
Raw Permalink Normal View History

2024-05-20 22:47:54 +00:00
# MTG Visual Search Scripts
This repository contains scripts to search for Magic: The Gathering cards by image contents.
#### generate-card-captions.js
2024-05-20 22:47:54 +00:00
This script takes a JSON file from scryfall.com containing card data. It generates a JSON file containing card names, IDs, and captions for each card. The captions are generated using Azure Cognitive Services Computer Vision API.
#### search-cards.js
2024-05-20 22:47:54 +00:00
This script takes the output of generate-card-captions.js and searches the card captions for keywords provided and outputs another JSON file containing the results.
## Requirements
- Node.js
- Azure Cognitive Services Computer Vision API key and endpoint
## Usage
1. Clone the repository.
2. Run `npm install` to install dependencies.
3. Obtain card data as JSON from [scryfall](https://scryfall.com/docs/api/bulk-data). Data should be an array of card objects as defined by the [scryfall API docs](https://scryfall.com/docs/api/cards)
4. Create a `.env` file in the root directory with the following contents:
```
AZURE_VISION_RESOURCE_URL=https://<your-resource-url>.cognitiveservices.azure.com/
AZURE_VISION_SUBSCRIPTION_KEY=<your-subscription-key>
```
5. Run `node generate-card-captions.js -i <path_to_scryfall_data.json>` to generate card captions.
1. Add `-o <output_file.json>` to specify an output file.
2. Add `-a <api_version>` to specify the Azure Cognitive Services API version.
3. Add `-m <model_version>` to specify the Azure Cognitive Services model version.
2024-05-26 18:03:41 +00:00
6. If you want to search generated captions, currently you must modify `search-cards.js` to include the keywords you want to search for. Then run `node search-cards.js` to search the captions. Maybe I'll add command line arguments for this in the future, idk. Alternatively, check out the [MTG Visual Search Web App](https://git.hobbs.zone/henry/mtg-visual-search) for a clean interface to search for cards.