All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Classifier#getConvertedFilePath: Remove file from queue if it can't be processed
- SettingsService#setSetting: Fix key existence check
- Admin settings: Fix auto-save for batch size settings
- Add status indicators about Node.js and libtensorflow installation
- Allow setting batch sizes in admin settings
- Support .nomedia tags (thanks to @fa0311)
- DAV faces endpoint: Provide number of files per face
- Classifier: Don't process images larger than 8MiB
- Classifier: Use nc preview provider to generate smaller tempfiles
- Don't create duplicate queue entries
- Classifier: Remove file from queue if it can't be found in IRootFolder
- Disable timeout for downloads on cli usage @juliushaertl
- Fix string int conversion
- Fix static analysis errors
- Don't reinsert same face detection multiple times
- Stabilize face clustering across manual cluster edits
- ViewAdmin: Add button to reset faces
- Remove UserController.php
- Only reset faces when explicitly asked
- Fix eslint errors
- Fix info.xml lint errors
- DAV endpoint: Prevent duplicate names
- ClassifierJob: Run with higher frequency
- ViewAdmin: Show message when checking machine failed
- StorageCrawlJob: Exit early if storage root doesn't exist
- Zero safety
- Decrease face distance threshold
- Stabilize face clustering across manual cluster edits
- FaceClusterAnalyzer: Knock out less matching faces from a cluster if they are on the same file
- Add support for HEIC/HEIF/TIFF Convert all images to JPEG and downscale before passing to node
- Admin settings: Don't repush status info
- Fix AdminController#avx
- DownloadModelsService: Unlink archive after extraction
- Fix StorageCrawlJob path issue
Drop support for Nextcloud 24
- Allow scheduling specific classifier/crawl jobs per model
- AdminSettings: Display last classification time
- AdminSettings: Add status of downloaded models
- ClassifierJob: set timeSensitivity
- Fix StorageCrawlJob
- Remove non-existent UserSettings from info.xml
- FaceClusterAnalyzer: Do not delete existing clusters
- Constants::IMAGE_FORMATS: Don't support tiff
- DownloadModelsService: Fix array filter
- InstallDeps: Fix isAVXSupported
- l10n: Source string improvement
- Fix label padding in admin settings
- DownloadModelsService: Increase timeout
- Correct spelling
- ClassifierJob: Stop classify job if model is disabled
- Fix Landmarks switch
- Make admin settings translatable
- Polish admin settings
- FaceDetectionMapper#findByFileIdAndClusterId: setMaxResults 1
- Remove user settings
- Update tfjs
- Extend imagenet rules to be consistent in overarching categories
- ClassifierJob: Fix undefined offset
- Fix s3 support
- Fix SchedulerJob
- FaceClusterMapper#findByUserId: Don't return empty clusters
- FileListener: Check children of deleted folders
- Avoid crawling trash
- BackgroundJobs: Reduce SQL queries in bg jobs
- FaceDetectionMapper: Add table prefix to findByFileIdAndClusterId
- Update translatable strings
- Make tags translatable
- Expose faces via DAV endpoint
- No more commands, classification always takes place in cron jobs
- Refactor classifier jobs to scale well
- faces UI moved to photos app
- movinet: reduce time slice length and fps
- Requires Nextcloud >= v24
- node.js classifiers: Fix fallback to wasm mode
- Fix file listener
- Fix admin settings data submission
- Fix TagManager#assignTags
- TagManager: Use objectMapper#assignTags correctly (no more vanishing tag assignments)
- ViewAdmin: Fix html syntax
- Remove Unrecognized label as it does not work correctly
- Implement MoViNet video classifier
- TagManager: add version to 'processed' tag
- Avoid shipping client-side node modules
- Geo classifier: Fix type error from null tag
- AdminSettings: Fix typo
- AdminSettings: Load settings using initial state
- InstallDeps: Fix tfjs installation
- InstallDeps: Fix AVX check on hardened systems
- Fix avx check endpoint
- Fix musl and platform check endpoints
- Drop support for php v7.3
- Drop support for Nextcloud v20 and v21
- Support Nextcloud 24
- ViewAdmin: Add status indicators for image and audio recognition
- info.xml: Add instruction about post-install steps
- FileFinder: Fail graciously when storage is not available
- FileFinder: Only check original owner for shares
- ViewAdmin: Clarify node path setting description
- ViewAdmin: Add examples for each tagging setting
- ViewAdmin: Update Note about background job interval
- InstallDeps: Fix ffmpeg
- Settings: Allow enabling geo tagging
- Fine-tune musicnn
- Implement GeoClassifier
- Add newly trained musicnn model
- Admin settings: Add system check for WASM mode
- InstallDeps: Add check for AVX
- FileFinderService: Add more debug output
- InstallDeps: Don't enable WASM mode when installation failed
- CLI: Don't call the classifiers with all files in one go
- Fix encoding errors in tags
- Smarter way to detect cpu architecture
- Don't leak exec errors on installation
- Streamline model download
- Add support for musl/Alpine Linux (#145)
- Ignore non-owner images (Thanks to jim)
- Landmarks: Add 'landmark' tag to all landmarks
- Implement commands: cleanup-tags & reset-tags
- Fix classifier_faces
- Clarify debug message
- classifier_landmarks: Don't run landmarks models on 'landscape' images
- classifier_landmarks: Increase threshold to 0.9
- Allow setting amount of used cores
- Speed up image classification models in pureJS mode by using WASM
- InstallDeps: Automatically enable pureJS on ARM
- Implement landmarks
- Reduce BG job batch size in pureJS mode
- imagenet: Try to improve recognition of historic architecture
- imagenet: Don't ignore volcano
- Implement Logger proxy and copy logs to cli
- Lint: Run php-cs-fixer
- Refactor: Move classifier classes out of Service folder
- check faces-classify enabled earlier (thanks @bonswouar)
- fix #121 empty contact photo (thanks @bonswouar)
- Fix Classifier timeouts: Add constant time to account for model download
- Update node.js version
- Set upper limit for image file size
- Support Nextcloud 23
- New logo and cover art
- Music genre recognition
- Fix ViewAdmin API URLs
- higher timeout values
- fix default checkboxes
- Fixed node-pre-gyp execution
- Fixed binary permissions
- Fixed PureJS config checkbox initial values
- Failed to install Tensorflow.js
- Classifier_faces: Always return proper output
- Classifier_imagenet: Correct exit code
- Improve some false-positive thresholds
- Add options for disabling faces/imagenet individually
- Pure js mode: Adjust image timeout values
- Add node.js path option
- Use the TF.js built-in installer for optimal prebuilt binaries
- Fix pure JS mode for imagenet classifier
- Fix pure JS mode for imagenet classifier
- Don't require wasm
- Reduce bundle size
- Disable GPU accelaration for now
- Implement a pure JS option
- Fix file too short error
- Implement js-only fallback for cases where binaries can't be loaded
- Fix build: Dereference symlinks instead of deleting them
- Command: Catch classifier errors
- Fix out-of-path file extraction
- Fix broken pipe error
- Reduce bundle size
- Fix "file too short" error
- Requirements: Add note about alpine
- Fix EAGAIN error in classifier_imagenet
- ReferenceFacesFinder: Don't use system address book
- Fix "More than 1000 expressions on Oracle" warning
- Remove WASM mode for now
- classifier_imagenet: Fix model download
- Add setting for tfjs-node-gpu
- Classifier.js: use fs/promises
- Support 'uri:' photos in contacts
- Add note in admin settings about first run delay
- Fix findMissedClassifications
- Avoid symlink errors
- classifier_faces: Don't fail on unreadable images
- Reduced bundle size to be able to install from app store
- New imagenet model with increased accuracy (EfficientNet v2 XL)
- Face recognition using contact photos
- Support GPU
- Support .nomedia and .noimage files
- Include admin settings in build
- Increase JPEG decoder memory limit
- admin settings
- README and info.xml: Add note about privacy
- Improve classification
- classifier_imagenet.js: Catch errors
- Fix build
- Add a command line interface to run classifier on full speed
- Add support for ARMv7l
- Fix installation via appstore
- Support ARM64
- Fix build to allow installation via app store
- Use new rules to tag photos
- Fix build to allow installation via app store
Initial version