123 lines
5.6 KiB
Plaintext
123 lines
5.6 KiB
Plaintext
## GENERAL
|
|
* on viewer:
|
|
- allow face to be used to:
|
|
- create person
|
|
[DONE] - add to existing person
|
|
--> still need to consider whether we trigger an AI search immediately
|
|
[DONE] - ignore/not a face/too young
|
|
[DONE] - redraw 'ignore's as a greyed out box?
|
|
[DONE] - menu should only allow override IF we have put override on...
|
|
all NMO's need to handle delete data and rebuild / allow recreation of content form FS (not just test, it causes a bug now / db constraint violation)
|
|
--> need to test the 'override' when we re-ai-match (AFTER re-build from FS)
|
|
|
|
* should I change the rotation code to use that jpeg util to reduce/remove compression loss?
|
|
|
|
* run_ai_on throws log line, for matching even if there are no faces, would be less noisy to not do that (or should say no faces?)
|
|
|
|
* should allow context menu from View thumbs (particularly useful on search) to show other files around this one by date (maybe that folder or something?)
|
|
|
|
* re-think unmatched faces...
|
|
(the view needs a orig_url and pa_user_state to support viewer for current)
|
|
|
|
* could get better AI optim, by keeping track of just new files since scan (even if we did this from the DB),
|
|
then we could just feed those eid's explicitly into a 'run_ai_on_new_files' :) -- maybe particularly
|
|
if count('new files') < say 1000 do eids, otherwise do path AND no new refimgs
|
|
|
|
* does search of matching dirname give all entries of subdirs of subdirs, etc. (think not) -- maybe a TODO?
|
|
|
|
* delete folder
|
|
|
|
* allow joblog search (less needed with logs visible on a given file now)
|
|
|
|
* back button will fail if we do these POSTs:
|
|
job.py:@app.route("/jobs", methods=["GET", "POST"])
|
|
job.py:@app.route("/job/<id>", methods=["GET","POST"])
|
|
-- these need to store 'job prefs' somewhere... (extras?)
|
|
files.py:@app.route("/fix_dups", methods=["POST"])
|
|
???
|
|
|
|
* browser back/forward buttons dont work -- use POST -> redirect to GET
|
|
- need some sort of clean-up of pa_user_state -- I spose its triggered by browser session, so maybe just after a week is lazy/good enough
|
|
-- pa_user_state has last_used as a timestamp so can be used to delete old entries
|
|
|
|
GUI overhaul?
|
|
* on a phone, the files.html page header is a mess "Oldest.." line is too large to fit on 1 line (make it a hamburger?)
|
|
- searched for text overlaps buttons above and below
|
|
- < 10 files > is subsequently not centered
|
|
- the folder/bin icons might be best below search then? (and on same line as XS/S, etc.)
|
|
* on phone login page, job* pages, etc. are all squished
|
|
* when search, have a way to hide deleted files
|
|
-> not sure where to put this on GUI, its so busy...
|
|
|
|
* metadata at folder level with file level to add more richness
|
|
- store in DB? or store in hidden file (or both)... IF it is outside the DB, then I can 'rebuild' the DB at anytime from scratch
|
|
|
|
* dont allow me to stupidly move a folder to itself
|
|
|
|
* get build process to create a random string for secret for PROD, otherwise use builtin for dev
|
|
|
|
* deal with changing a path in settings
|
|
|
|
* dup issues:
|
|
* when we have lots of dups, sort the directories by alpha so its consistent when choosing
|
|
* auto-detect has 0 choices to keep 0 files -- not sure what that was about really
|
|
|
|
* comment your code -> only html files remaining
|
|
|
|
* read that guys face matching / clustering / nearest neighbour examples, for a whole new AI capability
|
|
https://www.pyimagesearch.com/2018/07/09/face-clustering-with-python/
|
|
|
|
* fix up logging in general
|
|
|
|
* support animated gifs in html5 canvas
|
|
|
|
* think about security - in job_mgr anywhere I can os.replace/remove NEED to protect, etc
|
|
|
|
## DB
|
|
* Dir can have date in the DB, so we can do Oldest/Newest dirs in Folder view
|
|
|
|
### BACKEND
|
|
* revisit SymlinkName() and make it simpler (see comment in shared.py)
|
|
|
|
*** Need to use thread-safe sessions per Thread, half-assed version did not work
|
|
|
|
Admin
|
|
-> do I want to have admin roles/users?
|
|
-> purge deleted files (and associated DB data) needs a dbox or privs
|
|
(only show in DEV for now)
|
|
|
|
### AI
|
|
* faces per file (need a threshold for too many? OR
|
|
* consider size of bbox of face / 'high-quality' faces -- if face is too small in image, dont match it
|
|
|
|
### UI
|
|
* viewer needs to allow toggle to scan_model (and prob. right-click on file... AI (with CNN) AI (with hog)
|
|
- make the form-select AI_Model actually do the change (but need more mem on mara really -- even mem is not enough
|
|
need graphic support --> need to allow pa_job_manager run on borric with acceleration)
|
|
|
|
For AI / rescan:
|
|
way to override per file:
|
|
the threshold used?
|
|
|
|
file details is sort of crap - only works on import path
|
|
- probably better to have a different 'view', e.g. folders/flat/detailed
|
|
|
|
timelineview? (I think maybe sunburst for large amounts of files, then maybe something more timeline-series for drilling in?)
|
|
(vertical timeline, date has thumbnails (small) horizontally along
|
|
a page, etc.?
|
|
https://www.highcharts.com/docs/chart-and-series-types/timeline-series
|
|
https://www.highcharts.com/demo/sunburst
|
|
https://www.highcharts.com/demo/heatmap
|
|
https://www.highcharts.com/demo/packed-bubble-split
|
|
|
|
|
|
### SORTER
|
|
* exif processing?
|
|
* location stuff - test a new photo from my camera out
|
|
-- image is in dir, need to look at exifread output
|
|
|
|
### FUTURE:
|
|
* can emby use nfo for images (for AI/tags?)
|
|
-NO sadly
|
|
|