* sort preview cameras in history by ui order
* sort cameras by UI order in various components for consistent display
* add no recordings faq
* fix link
* recording cache faq
* add link
* improve anchor naming in object detector docs
rather than #configuration-1, #configuration-2, etc
* use yaml instead of json for object detector docs
* fix anchor
* add embedded mode to BaseSection so parents can host the save action
* add optional action slot to current Frigate+ model summary
* add w-full to action slot flex wrapper for explicit width contract
* i18n
* merged detectors and model settings view
* fix document title
* Embed detector form in merged settings view
* add detection model card with tabs and custom model embed
* add Frigate+ model selector with filter popover to merged page
* Add mismatch banner and gate save on detector and model compatibility
* Wire atomic save, restart toast, and undo on detectors and model page
* Clear child pending data on undo
* route merged detectors and model view in settings
* trim Frigate+ page to account-only and remove old detection model view
* basic e2e
* Fix unsaved-changes guard, custom path leak, and post-failure cache resync
* Rename to Detectors and model, float Modified badge, use ConfigMessageBanner for mismatch
* Hide Plus/Custom tabs when Frigate+ is not enabled
* Detect active Plus model via model.plus.id instead of path prefix
* Sync state back to snapshot when child form un-modifies and remount on undo
* Always require restart on save since model changes also need one
* Wrap Frigate+ model selector in SplitCardRow with label and description
* rename tab
* update docs
* sync top-level model with default detector's resolved model
when the user doesn't define a top-level `model:` block, `FrigateConfig.model` stayed at pydantic field defaults (320×320, /labelmap.txt) while the per-detector model picked up `DEFAULT_MODEL` for openvino on cpu (300×300, coco_91cl_bkgr.txt introduced in #23127), causing `RemoteObjectDetector` to fail with "buffer is too small for requested array" because the SHM was sized from the per-detector model but mapped using the top-level one. After the detector loop, copy the first detector's resolved model up to `self.model` so both sides agree on dimensions and labelmap
* revert to cpu detector by default
use openvino cpu for new configs only
* add defaults
* hide camera overrides badge from system sections
* show empty card on camera metrics page when no cameras are defined
* fix enabled camera state switch after adding via wizard
Cameras added mid-session have no WS state until the dispatcher publishes camera_activity (which only happens on a fresh onConnect). Fall back to the config's enabled value so the switch reflects reality immediately after the wizard closes.
* guard camera enabled access
console would throw errors after adding via camera wizard
* fix useOptimisticState dropping debounced setState under StrictMode
* use openvino on cpu as default model
- faster than tflite on cpu
- add to default generated config
* use an enum for model_size
the frontend will then render this as a select dropdown because of the changes in the json schema
* i18n
* sync object filter entries with tracked labels in camera config form
Filter sub-collapsibles in the camera Objects section are driven by `filters` dict keys, but profile merges and live track-switch edits don't add matching entries, so newly tracked labels (like from a profile override) had no collapsible. Synthesize default filter entries from `track` in the form data so every tracked label renders a collapsible; baseline data also gets the synthesized entries, so save payloads are unchanged.
* revalidate raw paths cache after config save so CameraPathWidget shows fresh credentials
* fix test
* restore masked ffmpeg credentials when persisting camera config
* formatting
* rebuild ffmpeg commands when enabling recording for the first time
Toggling record.enabled from the config UI updated the in-memory config but left ffmpeg running with its original command, so the record output args were never wired in and nothing landed in the cache for the maintainer to move. The record config update now rebuilds ffmpeg_cmds when enabled_in_config transitions, and the camera watchdog restarts ffmpeg on a false to true transition so the record output gets wired in. MQTT toggles, which only flip record.enabled at runtime, are unaffected and continue to work via the maintainer's drop/keep gate.
* keep record toggle switch in single camera view disabled until enabled in config
* fix override detection for sections unset in the global config
Override badges and the blue dot now compare against schema defaults for sections like motion that the API serializes as null when omitted from the global YAML, instead of treating any populated camera config as an override
* add support for config-aware patterns in section hiddenFields
Section configs can now declare dynamic hidden-field entries as functions of the loaded config; objects.ts uses this to hide auto-populated attribute filters (DHL, face, license_plate, etc.) from the form, save flow, and override popover when those labels aren't user-settable
* siimplify object filters handling
live updating was getting very messy. users will just need to save once they enable a new object in order to see filters for that object
* tweaks
* update docs for new detector default
* make genai provider required and add special case for UI
prevent validation errors from appearing on initial creation of genai provider by setting the first option in the select dropdown as default
* Update to ROCm 7.2.3
* Add inference time for 9060XT
* Update times
* Update hardware info for latest ROCm
* Add env vars to save kernels and miopen database
* re-enable face recognition for ROCm
* Update
* Save LLVM cache
* set edgetpu for multi-instance
* improve error messages when mixing/matching detectors
* allow custom add button text via uiSchema
* clarify language in docs for configuring detectors via the UI
* add generation script
a script to read yaml code blocks from docs markdown files and generate corresponding "Frigate UI" tab instructions based on the json schema, i18n, section configs (hidden fields), and nav mappings
* first pass
* components
* add to gitignore
* second pass
* fix broken anchors
* fixes
* clean up tabs
* version bump
* tweaks
* remove role mapping config from ui
* fix config examples
* remove reference to trt model generation script
* tweak tmpfs comment
* update old version
* tweak tmpfs comment
* clean up and clarify tensorrt
* re-add size
* Update docs/docs/configuration/hardware_acceleration_enrichments.md
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Docs: fix missing dependency in YOLOv9 build script
I had this command fail because it didn't have cmake available.
This change fixes that problem.
* Docs: avoid failure in YOLOv9 build script
Pinning to 0.4.36 avoids this error:
```
10.58 Downloading onnx
12.87 Building onnxsim==0.5.0
1029.4 × Failed to download and build `onnxsim==0.5.0`
1029.4 ╰─▶ Package metadata version `0.4.36` does not match given version `0.5.0`
1029.4 help: `onnxsim` (v0.5.0) was included because `onnx-simplifier` (v0.5.0)
1029.4 depends on `onnxsim`
```
* Update Dockerfile instructions for object detectors
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* disable modal on dropdown menu in explore
* add another example case for when classification overrides a sub label
* update ollama docs link
* Improve handling of automatic playback for recordings
* Improve ollama documentation
* Don't fall out when all recording segments exist
* clarify coral docs
* improve initial scroll to active item in detail stream
* i18n fixes
* remove console warning
* detail stream scrolling fixes for HA/iOS
* Improve usability of GenAI summary dialog and make clicking on the description directly open it
* Review card too
* Use empty card with dynamic text for review based on the user's config
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* fix coral docs
* add note about sub label object classification with person
* Catch OSError for deleting classification image
* add docs for dummy camera debugging
* add to sidebar
* fix formatting
* fix
* avx instructions are required for classification
* break text on classification card to prevent button overflow
* Ensure there is no NameError when processing
* Don't use region for state classification models
* fix spelling
* Handle attribute based models
* Catch case of non-trained model that doesn't add infinite number of classification images
* Actually train object classification models automatically
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Remove source_type from API
* Don't require state classification models to select all classes
* Specifically validate provided end_time for manual events
* Remove yolov9 specification for warning
* Remove warning for coral
* clarify zone name tip
* clarify replace rules in lpr docs
* remove periods
* Add explanation for review report
* adjust HLS gap controller params
defaults to false, should help to recover from hangs and stalling in tracking details videos on chrome
* only redirect to login page once on 401
attempt to fix ios pwa safari redirect storm
* Use contextual information from other cameras to inform report summary
* Formatting and prompt improvements for review summary report
* More improvements to prompt
* Remove examples
* Don't show admin action buttons on export card
* fix redirect race condition
Coordinate 401 redirect logic between ApiProvider and ProtectedRoute using a shared flag to prevent multiple simultaneous redirects that caused UI flashing. Ensure both auth error paths check and set the redirect flag before navigating to login, eliminating race conditions where both mechanisms could trigger at once
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* Adds support for YOLO v9 models running on Google Coral
* fix format by using ruff instead of black
* Remove comment
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Remove log message
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* revert to hard-coded settings. use ModelTypeEnum directly
* remove log messages. detect invalid output tensor count
* remove 1-tensor processing. add pre_process() function
* check for valid model type
* fix formatting
* remove unused import and variable
* remove tip that indicates other YOLO models may be supported.
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* pin onnx in rfdetr model generation command
* Apply suggestion from @NickM-27
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* update live view docs
* use swr as single source of truth for searchDetail
rather than maintaining a separate state, derive the selected item from swr cache. fixes websocket sync when regenerating descriptions or fetching transcriptions
* fix key warning in console
* don't try to fetch event from review item for audio events
* update audio transcription toast wording
* Add a community supported badge to specific detectors in the info summaries to better separate
* Make object classification publish to tracked object update and add examples for state classification
* Add item to advanced docs about tensorflow limiting
* Don't show submission for in progress objects
* fix for ios not reporting video dimensions on initial metadata load
in testing, polling with requestAnimationFrame finds the dimensions within 2 frames
* Catch jetson nvidia device tree
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* show id field when editing zone
* improve zone capitalization
* Update NPU models and docs
* fix mobilepage in tracked object details
* Use thread lock for openvino to avoid concurrent requests with JinaV2
* fix hashing function to avoid collisions
* remove extra flex div causing overflow
* ensure header stays on top of video controls
* don't smart capitalize friendly names
* Fix incorrect object classification crop
* don't display submit to plus if object doesn't have a snapshot
* check for snapshot and clip in actions menu
* frigate plus submission fix
still show frigate+ section if snapshot has already been submitted and run optimistic update, local state was being overridden
* Don't fail to show 0% when showing classification
* Don't fail on file system error
* Improve title and description for review genai
* fix overflowing truncated review item description in detail stream
* catch events with review items that start after the first timeline entry
review items may start later than events within them, so subtract a padding from the start time in the filter so the start of events are not incorrectly filtered out of the list in the detail stream
* also pad on review end_time
* fix
* change order of timeline zoom buttons on mobile
* use grid to ensure genai title does not cause overflow
* small tweaks
* Cleanup
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Update ROCm to 7.0.1
* Update ONNXRuntime
* Add back in
* Get basic detection working
* Use env vars
* Handle complex migraphx models
* Enable model caching
* Remove unused
* Add tip to docs
* [Init] Initial commit for Synaptics SL1680 NPU
* add a rough detector which is testing with yolov8 tflite model.
* [Feat] Add dependencies installation in docker build
- Add runtime library and wheels installation in main/Dockerfile
- Add model.synap(default model, transfer from mobilenet_224full80) in docker/synap1680
* [Update] Remove dependencies installation from main Dockerfile
- remove deps installation from Dockerfile
- add dependencies installation and split wheels, deps stage in synap1680 Dockerfile
* Refactor synap detector to more closely match other implementations
* [Update] Add model path configuration check
* [Update] update ModelType to ssd
* [Update] Remove unuse script
- install_deps.sh has already been executing in deps download stage
- Dockerfile.toolchain is for testing to extract runtime libraries from Synaptics toolchain
* [Update] update Synaptics SL1680 setup description
* [Update] remove install_synap1680
- The deps download and installation is existed in synap1680
* [Fix] update document content
* [Update] Update detector from synap1680 to synaptics
This update is in order to make the synaptics SL-series NPU detector more general.
- Fix detector `os` module not import bug
- Update detector type `synap1680` to `synaptics`
- Update document description `SL1680` to `Synaptics` only
- Update docker build content `synap1680` to `synaptics`
* [Fix] Update configuration document
* Update docs/docs/configuration/object_detectors.md
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* [Update] Update document content and detector default layout
- Update object_detectors document
- Update detector's default layout
- Update default model name
* [Update] Update object detector document content
* [Fix] Fix InputTensorEnum not defined error
- import InputTensorEnum from detector_config
* [Update] Update detector script coding format
* [Update] Update synaptics detector coding format
* [Update] Add synaptics ci workflow
* [Update] update synaptics runtime libs download path
- Fork Synaptics astra sdk repo and put the runtime lib package on it
- Frigate team can update this download path later
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>