You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bonswouar 7fd878ec36 update readme configuration & .nomedia 1 day ago
.github Add issue template 5 days ago
appinfo v1.6.10 2 weeks ago
img Add app icon 5 months ago
lib fix default checkboxes 6 days ago
model Use efficientnet v2 (21k) XL model 1 month ago
screenshots Add screenshots to app store 5 months ago
src EfficientnetModel: Remove tfjs-node-gpu 2 weeks ago
templates Implement admin settings 3 months ago
test Test images: Add image with faces 3 weeks ago
.eslintrc.js Fix npm version in CI 4 weeks ago v1.6.10 2 weeks ago Let there be 💡 5 months ago
COPYING Let there be 💡 5 months ago
Makefile v1.6.10 2 weeks ago update readme configuration & .nomedia 1 day ago
composer.json Fix app store installation 5 months ago
composer.lock v1.2.1 5 months ago
package-lock.json v1.6.6 3 weeks ago
package.json v1.6.10 2 weeks ago
stylelint.config.js Fix webpack build 3 months ago
webpack.js Try to reduce bundle size 4 weeks ago

Recognize for Nextcloud

Join the chat at

Image recognition for Nextcloud

This app goes through your photo collection and adds fitting tags, automatically categorizing your photos. It also recognizes faces from photos set in your contacts. Tagging works via Nextcloud's Collaborative Tags. You can view your tagged photos with the photos app, as seen in the screenshot above.


This app does not send any sensitive data to cloud providers or similar services. All image processing is done on your nextcloud machine, using Tensorflow.js running in Node.js, which comes bundled with this app.


This is the list of recognized things and which categories they are currently mapped to. I'm happy to accept pull requests for this file to fine tune predictions.

Behind the scenes

Recognize uses EfficientNet v2 for ImageNet object detection

Recognize uses face-api.js to extract and compare face features.



  • php 7.3 and above
  • App "collaborative tags" enabled
  • Processor
    • x86 64bit
    • probably ARMv7 (32bit) (untested)
  • System with glibc (usually the norm; Alpine linux is not such a system)
  • ~3GB of free RAM (if you're cutting it close, make sure you have some swap available)

One click

Go to "Apps" in your nextcloud, search for "recognize" and click install.


Any configuration is done in Settings/Recognize of your Nextcloud instance.

You can also ignore directories (and their children) by adding a .noimage or .nomedia file in them.

Manual install



cd /path/to/nextcloud/apps/
git clone
cd recognize



If you'd like to support the creation and maintenance of this software, consider donating.


We always welcome contributions. Have an issue or an idea for a feature? Let us know. Additionally, we happily accept pull requests.

In order to make the process run more smoothly, you can make sure of the following things:

  • Announce that you're working on a feature/bugfix in the relevant issue
  • Make sure the tests are passing
  • If you have any questions you can let the maintainers above know privately via email, or simply open an issue on github

Please read the Code of Conduct. This document offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other.

More information on how to contribute:

Happy hacking ❤️


This software is licensed under the terms of the AGPL written by the Free Software Foundation and available at COPYING.