Commit Graph
539 Commits
Author SHA1 Message Date
immich-push-o-matic[bot] eace8c2809 chore: version v3.3.0-rc.1 2026-09-30 21:42:17 +00:00
immich-push-o-matic[bot] a9d102234b chore: version v3.3.0-rc.0 2026-09-28 21:54:03 +00:00
MertandGitHub 76c239c345 feat(ml): trt-rtx (#31863)
* trt-rtx

* update dependencies
2026-09-28 21:39:14 +00:00
MertandGitHub ab159b8118 fix(ml): stricter typing and request validation (#31856) 2026-09-28 14:14:01 -04:00
MertandGitHub 23f1f87dd0 feat(ml): optimized model inference (#31750)
* add immich_model

* graph per shape

* decouple ocr from ort

* prepared graphs

* use f16 for accelerators

* preload all shapes

* warm-up pass after preload

* keep precision for fp32 graphs

* ensure padding for text recognition

* optimize postprocessing for fp16 outputs

* handle raw ctc logits

* use f16 output for rknn

* mmap token embedding

* read device metadata
2026-09-25 14:56:44 -04:00
MertandGitHub de13aab713 feat(ml): improve model loading (#31742)
* use recent mimalloc

* jit caching

* bump onnxruntime-gpu

* explicit memory release

* refactor in-memory cache

* configure hf org and revision

* refactor model load

* move orjson response

* disable direct submission for i915

* flush denormals

* update tests and lock

* disable suboptimal fusions

* respect resize_mode

* increase threads for clip text
2026-09-25 14:56:43 -04:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>mertalev
202015ed95 chore(deps): update machine-learning (#29123)
* chore(deps): update machine-learning

* bump to 3.13, increase minimum to 3.12

* cleanup

* target 3.12

* fix conditional

* fix builder images

* also update prod rknn

* unused parsers

* drop gold

* bump armnn

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2026-09-19 02:21:57 +00:00
renovate[bot]andGitHub 8ab8ce8cf7 chore(deps): update dependency onnxruntime to v1.29.0 (#31563) 2026-09-15 09:35:39 -04:00
renovate[bot]andGitHub cab12ecb51 chore(deps): update dependency onnxruntime-migraphx to v1.27.1 (#31568) 2026-09-15 09:34:23 -04:00
Jason RasmussenandGitHub c0eed4902a chore: version v3.2.0 (#31441)
chore: v3.2.0
2026-09-11 11:02:34 -04:00
WenbinandGitHub 26a25f0c3a fix(ml): race when submitting to rknn execution queue (#31143) 2026-09-03 02:13:35 +00:00
Aditya Raj SinghandGitHub c1a88dd9a3 fix(ml): read CLIP model configs as UTF-8 (#31075) 2026-08-27 23:04:40 -04:00
immich-push-o-matic[bot] e61312084b chore: version v3.2.0-rc.0 2026-08-27 19:43:45 +00:00
renovate[bot]andGitHub 093f5c070a chore(deps): update dependency pydantic-settings to v2.14.2 [security] (#29252) 2026-08-26 10:33:23 -04:00
renovate[bot]andGitHub ef72f1ec5b chore(deps): update dependency pillow to v12.3.0 [security] (#30084) 2026-08-26 10:32:47 -04:00
MertandGitHub dc688edb6f refactor(ml): direct ocr processing (#31016) 2026-08-25 23:13:47 -04:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
6acd870371 chore(deps): lock file maintenance (mise) (#30464)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-25 01:50:02 -04:00
Matthew MomjianandGitHub 161e15ee2f fix(deployment): Add huggingface cache directory to Dockerfile (#30357)
* Add huggingface cache directory to Dockerfile

Updated Dockerfile to include huggingface cache directory.

* Update Dockerfile environment variables and comments

Removed MPLCONFIGDIR environment variable and adjusted comments.
2026-08-08 16:48:33 +00:00
MertandGitHub 79e61c47c7 refactor(ml): remove insightface dependency (#30631)
* remove insightface dependency

* update tests
2026-08-08 12:07:30 -04:00
Matthew MomjianandGitHub 1094b69946 fix(deployment): matplotlib in rootless deployments (#30328) 2026-07-28 10:57:21 -04:00
github-actions 8aa95c6747 chore: version v3.1.0 2026-07-27 18:20:33 +00:00
github-actions cd308ad930 chore: version v3.0.3 2026-07-14 21:10:19 +00:00
github-actions 443b856ac3 chore: version v3.0.2 2026-07-09 17:33:21 +00:00
renovate[bot]andGitHub 628de417e9 chore(deps): lock file maintenance (mise) (#29637) 2026-07-06 14:52:48 +02:00
github-actions f77c8a4699 chore: version v3.0.1 2026-07-02 19:24:13 +00:00
github-actions 05d838b560 chore: version v3.0.0 2026-06-30 20:03:47 +00:00
github-actions ac74bca18b chore: version v3.0.0-rc.4 2026-06-27 13:14:47 +00:00
github-actions 09d4a6815f chore: version v3.0.0-rc.3 2026-06-26 16:49:02 +00:00
github-actions 38920fc4ca chore: version v3.0.0-rc.2 2026-06-18 23:20:14 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
9a3071ae5c chore(deps): lock file maintenance machine-learning (mise) (#29152)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-17 19:34:45 -04:00
Savely KrasovskyandGitHub 8d30cfa2ce chore(ml): update intel graphics compiler and compute runtime (#29163)
chore(ml): update Intel graphics compiler and compute runtime to latest versions
2026-06-16 23:09:53 +00:00
github-actions c9aa9ba711 chore: version v3.0.0-rc.1 2026-06-16 19:50:41 +00:00
github-actions e4dbe777a0 chore: version v3.0.0-rc.0 2026-06-12 14:55:39 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
563cff26bf chore(deps): update machine-learning (#28934)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-11 14:40:20 -04:00
Savely KrasovskyandGitHub a665cec920 feat(ml): update Intel graphics compiler and compute runtime (#28924)
feat(ml): update Intel graphics compiler and compute runtime to latest versions
2026-06-09 11:08:03 -04:00
winstonandGitHub 7f611d9031 test: fix tests when OpenVINO provider is available (#28802)
mocking `onnxruntime.get_available_providers()` to always use the CPU EP.
2026-06-03 20:52:08 -04:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>mertalev
408e1180ca chore(deps): update machine-learning (#28239)
* chore(deps): update machine-learning

* fix typing

* fix deprecation log

* no control socket

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2026-06-02 16:44:50 +00:00
pneulyandGitHub a838167f11 fix(ml): pass model_root_dir to OcrOptions for RapidOCR compatibility (#28610)
* fix(ml): pass model_root_dir to OcrOptions for RapidOCR compatibility

Fix a TypeError (Path(None)) when the OCR model is invoked, caused by an upstream change in RapidOCR v3.8.1 (RapidAI/RapidOCR@8ea9626).
RapidOCR now internally calls `Path(cfg.get("model_root_dir"))`. Since `model_root_dir` was missing from `OcrOptions`, it evaluated to `None` and triggered a `TypeError: argument should be a str or an os.PathLike`.
This fix adds the missing `model_root_dir` argument to prevent the error.
Ref: #28331

* fix(ml-test): update OCR tests for RapidOCR schema change

* chore(ml-test): remove unused `cache_dir` parameter from `TextRecognizer`

* Revert "chore(ml-test): remove unused `cache_dir` parameter from `TextRecognizer`"

This reverts commit 007ad7b3f22b0c93cfc237509b460eb6d5c51075.

* fix(ml): use self.cache_dir for model_root_dir in OcrOptions
2026-05-28 22:54:04 -04:00
Fabian WimbergerandGitHub 53a24783f5 fix(ml): stabilize MIGraphX inference (#28444)
* fix: stabilize ROCm MIGraphX inference

Serialize MIGraphX session runs so lazy compiles cannot overlap within a worker.

Use a fixed face-recognition batch size for MIGraphX to avoid compiling a new program for each detected face count.

* fix(ml): increase ROCm worker timeout

* fix(ml): narrow MIGraphX compile locking

* docs: format environment variables table

* docs: apply prettier to environment variables table
2026-05-26 18:41:56 +00:00
Aaron LiuandGitHub 5386b62dc4 chore(ml): allow insightface 1.x (#28595)
* chore(ml): allow insightface 1.x

The new insightface 1.0 release appears to have no breaking code changes nor relevant license changes ([before](https://github.com/deepinsight/insightface/blob/2a78baec428354883e0cda39c54b555a5ed8358a/README.md), [after](https://github.com/deepinsight/insightface/blob/70f3269ea628d0658c5723976944c9de414e96f8/README.md), c.f. https://github.com/immich-app/immich/blob/fd7ddfef54cdf2b6256c4fc08bc5ff3f86176775/machine-learning/README.md), and it works on my machine.

* Update uv.lock

* please excuse my incompetence
2026-05-25 12:32:50 -04:00
bo0tzzandGitHub a5a7380a26 feat: use lockfile for mise tools (#28503) 2026-05-20 11:37:33 +00:00
MertandGitHub 8c8dc9d32f chore(ml)!: remove deprecated envs (#28326)
remove deprecated envs
2026-05-09 22:40:05 +00:00
Jason RasmussenandGitHub 25a6a38b30 chore: use mise (#28298) 2026-05-08 15:21:33 -04:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
bfd76570c5 chore(deps): update dependency python-multipart to v0.0.27 [security] (#28286)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-07 15:22:03 -04:00
MertandGitHub 36caeb34ec chore(ml)!: require numpy 2.4 (#28158)
require numpy 2.4
2026-05-07 19:07:39 +00:00
TimonandGitHub 52b00b0bad chore(ml): add mise checklist command (#28267)
* chore(ml): add mise checklist command

* don't depend tests on installing a cpu flavor
2026-05-07 12:28:24 -04:00
TimonandGitHub d93ab7707e chore(ml): configure mise for machine-learning directory (#25579) 2026-05-06 11:03:54 -04:00
David AllenandGitHub eca0e60db8 fix: librknnrt permissions in machine-learning (#28216)
fix librknnrt permissions in machine-learning
2026-05-03 23:39:27 +00:00
AyaanMAGandGitHub 8cff5883b5 fix(ml): respect time zone for logs in cuda container (#28155) 2026-05-03 04:19:56 +00:00
5e89efba64 fix(ml): handle empty/corrupt images in face detection (#27391)
* fix(ml): handle empty/corrupt images in face detection

When a corrupt or degenerate image with zero-dimension (0 width or 0 height)
reaches the face detection pipeline, insightface's RetinaFace.detect() calls
cv2.resize() with a target size of 0, triggering an OpenCV assertion failure:

  error: (-215:Assertion failed) inv_scale_x > 0 in function 'resize'

This crashes the ML worker and returns a 500 error to the server.

Add an early return in FaceDetector._predict() that checks for zero-dimension
images after decoding and returns empty detection results instead of passing
them to the insightface model.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(ml): move empty image validation to request level

Per review feedback, validate image dimensions in the predict endpoint
(returning 400) rather than in each model's _predict method. This
catches all zero-dimension images before they reach any model task.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(ml): resolve mypy strict type error in predict endpoint

Use intermediate `decoded` variable so mypy knows `.width` and `.height`
are accessed on `Image`, not on `Image | str`.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 11:14:34 -04:00