68083f4653 | ||
---|---|---|
bootstrap | ||
images_md | ||
misc | ||
src | ||
tools | ||
.dockerignore | ||
.eslintrc.js | ||
.gitignore | ||
Dockerfile | ||
LICENSE | ||
README.md | ||
additional.d.ts | ||
docker-compose.yml | ||
ecosystem.config.js | ||
how_it_works_scenery.md | ||
installation_guide.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
Features
- 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)
Current stack:
- Node.js + TypeScript
- ambience
- Fastify
- MongoDB
- Next.js
- MUI
- sharp
Installation
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_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