a photo gallery with extended search capabilities 
https://scenery.cx 
Consists of scenery (photo gallery engine) and ambience (Reverse image search/similarity search engine) 
How it works: how_it_works_scenery.md
- Search by tags (supports logical expressions, https://scenery.cx/search_syntax)
 - Semantic text search (find images by text description)
 - You can find images with similar tags, color pallete or visuals/semantics 
 - Reverse image search (find images by image)
 - Image anti-duplication mechanism 
 - Automatic image tagging and captioning
 - IPFS support (using additional microservice)
 - Automatic image mining (anti_sus)
 
- Node.js + TypeScript
 - ambience
 - Fastify
 - MongoDB
 - Next.js
 - MUI
 - sharp
 
npm run build -> build everything
npm run build_pages -> build next.js pages and some of backend code
npm run build_server -> build .ts files
npm run import_tags -> import tags from /import/id_tags.txt  (generated by places365_tagger_web)
npm run import_captions -> import captions from /import/id_caption.txt   (generated by image_caption_web)
npm run import_images -> import images
args:
--path=/path/to/image_folder  -> imports images from the path, if not specified, default path - /import/images/
--use_filename_id -> parses image id from file (file name must be an unique number > 0), if not specified, uses sequential ids
--bypass_ambience -> do not perform calculation of tags,captions, ambience features and duplicate check