immich-machine-learning-cpu

immich-machine-learning-cpu

Docker app from rorar's Repository

Overview

Immich Machine Learning service. Handles face recognition, CLIP-based image search, and OCR. This service runs ML models locally. Models are downloaded on first use and cached. The default cache can grow to several GB depending on enabled features. For GPU acceleration, change the image tag to: release-cuda, release-rocm, release-openvino, release-armnn, or release-rknn. Must be on the same Docker network as the Immich server.


License: AGPLv3 Discord

High performance self-hosted photo and video management solution



Català Español Français Italiano 日本語 한국어 Deutsch Nederlands Türkçe 简体中文 正體中文 Українська Русский Português Brasileiro Svenska العربية Tiếng Việt ภาษาไทย മലയാളം

[!WARNING] ⚠️ Always follow 3-2-1 backup plan for your precious photos and videos!

[!NOTE] You can find the main documentation, including installation guides, at https://immich.app/.

Links

Demo

Access the demo here. For the mobile app, you can use https://demo.immich.app for the Server Endpoint URL.

Login credentials

Email Password
demo@immich.app demo

Features

Features Mobile Web
Upload and view videos and photos Yes Yes
Auto backup when the app is opened Yes N/A
Prevent duplication of assets Yes Yes
Selective album(s) for backup Yes N/A
Download photos and videos to local device Yes Yes
Multi-user support Yes Yes
Album and Shared albums Yes Yes
Scrubbable/draggable scrollbar Yes Yes
Support raw formats Yes Yes
Metadata view (EXIF, map) Yes Yes
Search by metadata, objects, faces, and CLIP Yes Yes
Administrative functions (user management) No Yes
Background backup Yes N/A
Virtual scroll Yes Yes
OAuth support Yes Yes
API Keys N/A Yes
LivePhoto/MotionPhoto backup and playback Yes Yes
Support 360 degree image display No Yes
User-defined storage structure Yes Yes
Public Sharing Yes Yes
Archive and Favorites Yes Yes
Global Map Yes Yes
Partner Sharing Yes Yes
Facial recognition and clustering Yes Yes
Memories (x years ago) Yes Yes
Offline support Yes No
Read-only gallery Yes Yes
Stacked Photos Yes Yes
Tags No Yes
Folder View Yes Yes

Translations

Read more about translations here.

Translation status

Repository activity

Activities

Star history

Star History Chart

Contributors

Install immich-machine-learning-cpu on Unraid in a few clicks.

Find immich-machine-learning-cpu in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for immich-machine-learning-cpu Review the template variables and paths Click Install

Requirements

This template uses your CPU for machine learning. For hardware accelerated ML, use one of the template that fits your (i)GPU. Must be on the same Docker network as the immich-server container. The server connects to this service on port 3003 by container name. Full setup guide: https://rorar.github.io/immich-unraid-manual/

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/immich-app/immich-machine-learning:release
Last Updated2026-07-07
First Seen2026-05-25

Runtime arguments

Network
immich_internal
Shell
bash
Privileged
false

Template configuration

Path: Model CachePathrw

ML model cache directory. Models are downloaded on first use (several GB).

Target
/cache
Default
/mnt/user/appdata/immich/model-cache/
Value
/mnt/user/appdata/immich/model-cache/
--- System ---Variable

General settings.

Variable: TZVariable

Timezone. See: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List

Target
TZ
Default
Europe/Berlin
Value
Europe/Berlin
--- Advanced ---Variable

Advanced ML settings. Defaults work well for most setups.

MACHINE_LEARNING_MODEL_TTLVariable

Seconds of inactivity before unloading models from memory. Set to 0 to keep loaded permanently.

Default
300
Value
300
MACHINE_LEARNING_WORKERSVariable

Number of ML worker processes. Increase if you have enough RAM/VRAM.

Default
1
Value
1
MACHINE_LEARNING_WORKER_TIMEOUTVariable

Seconds before a worker is considered unresponsive (use 300 for GPU).

Default
120
Value
120
IMMICH_LOG_LEVELVariable

Log verbosity: verbose, debug, log, warn, error

Default
log
Value
log