Commit Graph

58 Commits

Author SHA1 Message Date
d2bd3ff319 make sure JobExtra values is a string - issue with newer ps/sqlalchemy 2023-09-27 14:28:05 +10:00
ffe6c309b6 remove db.session.execute and use simple ORM statements - less efficient, but only really deleting a small amount anyway 2023-09-26 12:10:09 +10:00
a84ff49413 added BUG-120, somehow losing pref info. No prints are working in PROD, so changed a lot of printf( in the F/E to SetFELog with error and persistent/cant_close set across many files. Also used opportunity to remove a few unnecessary debugs 2023-04-09 13:10:28 +10:00
ef9f26189a another large clean up of code, all POSTs are now using make_response() and returning json OR are for a form that flask handles with rendering direct html. Where there is a POST with json response, the jscript now calls CheckForJobs() to show it in the F/E. Removed several debugs. Fixed up undocumented BUG where import datetime was wrong, and prefix/suffix also to offer directories near the date of an image. Removed unused routes for clearing messages 2023-01-12 16:47:43 +11:00
a29cbb143c Huge change, removed Status class and all "alert" messages are now shown as BS toast() and are via the DB and handled async in the F/E in jscript via Ajax. Fixed BUG-113 where toasts() were repeating. Removed many of the explicit alert messages (other than errors) and hooked {New|Finish}Job to consistently send messages to the F/E. Other messages (F/E without a job, like save settings) now use this model as well. Finally converted most of the older POST responses to formal json 2023-01-11 13:50:05 +11:00
c3971eb495 first-pass of popups for job creation for more than just move files, and fix BUG-112 (after move highlighting is broken) 2023-01-04 12:26:25 +11:00
2a1e2d7d5d cleaned up code around json, *locn -> transitioned to top, right, bottom, left to finally fix ORM replacing [ with { <- FIXES BUG-108 2022-12-23 16:18:27 +11:00
46c0f3a06f remove temporary code to fix faces (move coords from locn to top, right, etc.) 2022-12-23 16:04:46 +11:00
ab63f5aaba remove more face_locn code for BUG-108 clean up 2022-12-23 14:36:49 +11:00
87d7bea53a remove use of tmp_locn, use explicit coords, sizes - partial BUG-108 fix 2022-12-23 13:41:38 +11:00
a89063d366 interim commit - person now has a fix_faces route that will be used as part of the conversion to get locn -> top, right, bottom, left and using PA class for __repr() instead 2022-12-23 12:02:22 +11:00
497909693c try/except for os.remove & remove DEBUG. Also deal with odd situation where we find a face then add it as a refimg and library cant find a face all of a sudden 2022-08-08 21:18:01 +10:00
a8af00fe66 big change to get metadata working fully in DB and on Filesystem, and recover from most common scenarios, improved GUI as well for allowing an immediate search after adding refimg as well 2022-08-01 23:44:38 +10:00
391b61f3c4 first pass at keeping overrides on face delete - should at least stop code crashing if you try to delete faces from DB and they still had a matching override 2022-07-28 21:23:34 +10:00
96810fa1e3 can now do an AI search if we add refimg to new/existing person, cleaned up that dialog to look better with buttons for those options rather than a link. Noticed BUG-100, 2 x mich in one image 2022-07-28 18:16:10 +10:00
382647a91b now can create a new person and refimg from viewer - all works 2022-07-17 23:03:46 +10:00
84a4cf7cf8 added ability to auto-rotate jpegs as we import them. The auto-rotation uses /usr/bin/exifautotran which rotates losslessly, and we optimised to then not also re-rotate the thumbmail. This address a few bugs in the 90s, including the one where Mandys photos were not getting faces (they were rotated), and without really doing anything the odd one where we sometimes lost tmp_locn on first load after db recreation - I cant reproduce so ignoring it 2022-07-15 17:18:31 +10:00
8921e5dbcd Fixed BUG-89 -- face_locn -> tmp_locn 2022-07-10 20:28:58 +10:00
9f2ecb1901 just in case, if location or encoding is null when GenFace is run then return None, and catch this in person and show error on GUI -- for now uploading from a phone does odd things to the image format and fails to work in face_recognition.load_image() 2022-07-10 16:22:35 +10:00
6b7694f382 first pass of consolidating search in DBox for existing person, and then using the results to add override force match to that person, and WORKING version of adding refimg to existing person too. Still does not kick off new AI scan at this point, and still need to re-format dbox to be easier to use and code for resetting DB contents, rescaning files from scratch and matching overrides back 2022-07-10 15:21:31 +10:00
b935aa8ab8 can now add/remove overrides (manual or no matchx3) in any sequence of load/reload, or back-to-back and it all works 2022-06-13 18:30:13 +10:00
a53d4896b0 now have functional add/remove manual override to existing person 2022-06-11 22:41:31 +10:00
8c78d9e633 progress towards allowing overrides. dbox can now allow finding a person and clicking them to post to back-end.. More work to make this real, for now it goes through the routes but does not update the DB, see bottom of face.py for next steps 2022-06-10 16:53:13 +10:00
35dbbe86f9 order persons view by tag name 2022-02-02 18:48:24 +11:00
4b89831e0f remove debug 2022-01-23 01:08:00 +11:00
0f4632e240 changing options on files_*, search, also next/prev all now use POST->redirect model, so should allow back/forward browser buttons to work - commit so we can test in PROD 2022-01-22 21:36:58 +11:00
c800bebaab fix syntax 2022-01-20 10:20:33 +11:00
fae1c0666d more back-forward button cleanups 2022-01-20 10:16:38 +11:00
de81db9412 unmatched faces now sorts size of face desc, and is slightly prettier -- still slow and only takes you to the file anyway, might optimise that later. still no code to auto deal with unmatched face, but will add some capabilities next. Also, remembered last dir when file_ip/sp/bin. Also throw error if try to find unknown person - happened since I allowed the back/forward. 2022-01-18 20:59:39 +11:00
12726ed186 added # matches on show persons page, and fixed issue with search OPT being hardcoded and not using those in the DB 2022-01-16 00:55:23 +11:00
5a0f4221ab handle deleting properly - e.g. if had a refimg that was used for a match earlier then deal with it, and when deleting a person, dont leave behind orphaned refimgs 2022-01-15 16:36:11 +11:00
eab8983f40 use url_for not hardcoded routes 2021-09-24 12:47:47 +10:00
85902bbc3c redo Status SetMessage so it defaults to success and danger is a force in the setting of the message, to fix BUG-52 where a success message ended up with danger colour somehow -- might not perfectly fix it, but its neater and if it does not fix it, then its a timing issue I am not sure how to test/fix 2021-09-16 21:18:09 +10:00
bbb222b363 set created_on when we create a refimg 2021-09-16 19:22:35 +10:00
b6f672b575 ai stats has divs not tables, so more compact/responsive, also stats now have clickable link to appropriate AI:<tag> search 2021-09-15 00:23:25 +10:00
2f5e3a4d40 fix import line for PROD, more strict? 2021-09-13 17:54:36 +10:00
06f3fcccd1 updated comments 2021-08-11 18:12:04 +10:00
b7d346c206 model_used is now per file, not per face, implemented split of default_model to default_refimg_model and default_scan_model in settings, and default_refimg_model actualy works when creating refimgs in person.py. The model_used in face_file_link is based on default settings model and will scan with cnn if chosen and store that in DB as needed. Need viewer to allow changing per file / not just default for future scans 2021-07-27 17:14:03 +10:00
2064e02ae8 clean up status message for when refimg removed from person 2021-07-22 19:49:09 +10:00
ffa2dd91f5 made refimg <-> person connection viewonly to avoid ORM confusion 2021-07-17 23:55:12 +10:00
3827836381 added person to refimg class so it can be used in viewer.html 2021-07-17 16:33:16 +10:00
f394e39c2f refimgs now contain face, orig_w, orig_h and face_locns. This is done via json.* to allow arrays to be saved/loaded back into face_locn - not useful for refimg as there has to be only 1, but tested for images where there will be many faces. This commit has a fair few changes. So overall, no more refimg menus/creation. You now create a person (the add button is hidden until you save), when you save you go back to the person you created rather than the list of persons. From there you can click add ref img, and it will create a thumbnail, and draw a green box around the face locations based on the data. Persons can have many refimgs, and they will all work the same, be formatted prettily no matter how many you have. Each refimg "tab" not only has the thumbnail, but also a red X click to delete button that will remove all refimg data and connection to the person table too. This all works/is tested. 2021-07-11 22:35:59 +10:00
17180d9f24 removed debugs 2021-07-06 17:44:26 +10:00
2e06c0b285 moved class Refimg to person, and ditched all other routes/direct access to ref images, they are only a part of Person in UI now 2021-07-05 16:51:44 +10:00
6f95260ce2 remove new from fname, doh! 2021-07-04 20:18:58 +10:00
d608531cab reference images are now added in person.py (and removed) as buttons on person page. Will need to re-think the whole of refimg.py 2021-07-04 20:06:17 +10:00
371e2af64b added python ldap / login pages 2021-06-26 09:20:11 +10:00
6d071f14dd fixed up a few issues found from linter 2021-03-19 18:03:00 +11:00
18b8a30140 Fixed BUG-11: we have changed to file_refimg_link table (from file_person_link), this means we now have some optimisations, and can definitely re-run AI jobs without crashing. Several optims could still be done - see TODO 2021-01-25 01:05:30 +11:00
c976858c27 fix file_eid->file_id to match db 2021-01-22 21:15:15 +11:00