|
||
---|---|---|
images_md | ||
misc | ||
src | ||
tools | ||
.eslintrc.js | ||
.gitignore | ||
LICENSE | ||
README.md | ||
additional.d.ts | ||
ecosystem.config.js | ||
how_it_works_scenery.md | ||
next-env.d.ts | ||
next.config.js | ||
nodemon.json | ||
package-lock.json | ||
package.json | ||
tsconfig.json | ||
tsconfig.server.json |
README.md
scenery
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
#OLD: How it works: https://habr.com/ru/post/578254/ [RU]
Features
- Search by tags (supports logical expressions, https://scenery.cx/search_syntax)
- Semantic text search
- You can find images with similar tags, color pallete or visuals/semantics
- Reverse image search
- Image anti-duplication mechanism
- Automatic tagging and captioning
- IPFS support (using additional microservice)
Current stack:
- Node.js + TypeScript
- ambience
- Fastify
- MongoDB
- Next.js
- MUI
- sharp
Installation
- Clone the repository
npm install
npm run bootstrap
- install ambience
Docs
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_with_check
-> import images from /import/images with duplication check and calculation of ambience features, including tags and captions
npm run import_without_check
-> import images from /import/images without duplication check and calculation of ambience features, including tags and captions
if you add "-- --use_filename_id" to these npm scripts, image_id will be extracted from file name. File name must be an unique number > 0