* face library i18n fixes

* face library i18n fixes

* add ability to use ctrl/cmd S to save in the config editor

* Use datetime as ID

* Update metrics inference speed to start with 0 ms

* fix android formatted thumbnail

* ensure role is comma separated and stripped correctly

* improve face library deletion

- add a confirmation dialog
- add ability to select all / delete faces in collections

* Implement lazy loading for video previews

* Force GPU for large embedding model

* GPU is required

* settings i18n fixes

* Don't delete train tab

* webpush debugging logs

* Fix incorrectly copying zones

* copy path data

* Ensure that cache dir exists for Frigate+

* face docs update

* Add description to upload image step to clarify the image

* Clean up

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
This commit is contained in:
Josh Hawkins
2025-05-09 07:36:44 -06:00
committed by GitHub
co-authored by Nicolas Mowen
parent 52d94231c7
commit 8094dd4075
27 changed files with 402 additions and 195 deletions
+14 -4
View File
@@ -8,14 +8,16 @@
"subLabelScore": "Sub Label Score",
"scoreInfo": "The sub label score is the weighted score for all of the recognized face confidences, so this may differ from the score shown on the snapshot.",
"face": "Face Details",
"faceDesc": "Details for the face and associated object",
"timestamp": "Timestamp"
"faceDesc": "Details of the tracked object that generated this face",
"timestamp": "Timestamp",
"unknown": "Unknown"
},
"documentTitle": "Face Library - Frigate",
"uploadFaceImage": {
"title": "Upload Face Image",
"desc": "Upload an image to scan for faces and include for {{pageToggle}}"
},
"collections": "Collections",
"createFaceLibrary": {
"title": "Create Collection",
"desc": "Create a new collection",
@@ -25,7 +27,10 @@
"steps": {
"faceName": "Enter Face Name",
"uploadFace": "Upload Face Image",
"nextSteps": "Next Steps"
"nextSteps": "Next Steps",
"description": {
"uploadFace": "Upload an image of {{name}} that shows their face from a front-facing angle. The image does not need to be cropped to just their face."
}
},
"train": {
"title": "Train",
@@ -38,12 +43,17 @@
"title": "Delete Name",
"desc": "Are you sure you want to delete the collection {{name}}? This will permanently delete all associated faces."
},
"deleteFaceAttempts": {
"title": "Delete Faces",
"desc_one": "Are you sure you want to delete {{count}} face? This action cannot be undone.",
"desc_other": "Are you sure you want to delete {{count}} faces? This action cannot be undone."
},
"renameFace": {
"title": "Rename Face",
"desc": "Enter a new name for {{name}}"
},
"button": {
"deleteFaceAttempts": "Delete Face Attempts",
"deleteFaceAttempts": "Delete Faces",
"addFace": "Add Face",
"renameFace": "Rename Face",
"deleteFace": "Delete Face",
+7 -1
View File
@@ -84,6 +84,7 @@
},
"classification": {
"title": "Classification Settings",
"unsavedChanges": "Unsaved Classification settings changes",
"birdClassification": {
"title": "Bird Classification",
"desc": "Bird classification identifies known birds using a quantized Tensorflow model. When a known bird is recognized, its common name will be added as a sub_label. This information is included in the UI, filters, as well as in notifications."
@@ -168,11 +169,12 @@
"notSelectDetections": "All {{detectionsLabels}} objects detected in {{zone}} on {{cameraName}} not categorized as Alerts will be shown as Detections regardless of which zone they are in.",
"regardlessOfZoneObjectDetectionsTips": "All {{detectionsLabels}} objects not categorized on {{cameraName}} will be shown as Detections regardless of which zone they are in."
},
"unsavedChanges": "Unsaved Review Classification settings for {{camera}}",
"selectAlertsZones": "Select zones for Alerts",
"selectDetectionsZones": "Select zones for Detections",
"limitDetections": "Limit detections to specific zones",
"toast": {
"success": "Review classification configuration has been saved. Restart Frigate to apply changes."
"success": "Review Classification configuration has been saved. Restart Frigate to apply changes."
}
}
},
@@ -338,6 +340,7 @@
},
"motionDetectionTuner": {
"title": "Motion Detection Tuner",
"unsavedChanges": "Unsaved Motion Tuner changes ({{camera}})",
"desc": {
"title": "Frigate uses motion detection as a first line check to see if there is anything happening in the frame worth checking with object detection.",
"documentation": "Read the Motion Tuning Guide"
@@ -527,6 +530,8 @@
"registerDevice": "Register This Device",
"unregisterDevice": "Unregister This Device",
"sendTestNotification": "Send a test notification",
"unsavedRegistrations": "Unsaved Notification registrations",
"unsavedChanges": "Unsaved Notification changes",
"active": "Notifications Active",
"suspended": "Notifications suspended {{time}}",
"suspendTime": {
@@ -587,6 +592,7 @@
"loadingAvailableModels": "Loading available models…",
"modelSelect": "Your available models on Frigate+ can be selected here. Note that only models compatible with your current detector configuration can be selected."
},
"unsavedChanges": "Unsaved Frigate+ settings changes",
"restart_required": "Restart required (Frigate+ model changed)",
"toast": {
"success": "Frigate+ settings have been saved. Restart Frigate to apply changes.",