Technical Anshu
Tutorials Blog
🤖 Immich Machine Learning

Immich Face Recognition and Smart Search How Machine Learning Works on Your Own Hardware

Search 'birthday' and get birthday photos. Open a person and see ten years of their face. Google does this in a data centre; Immich does it on the box under your desk. Here is how that actually works, how long it honestly takes, and how to live with the wait.

✍️ Technical Anshu🐳 Docker / Linux Server⏱️ 6 minute read
🎥 The install video starts this container — this guide explains what it is doing all night

The machine learning container is the part of Immich that feels like magic and behaves like a factory. It runs three distinct jobs over every photo — and on first install it runs them over your entire history. Understanding the queue turns 'why is nothing searchable yet?' from a worry into a schedule: your photos are stored and safe from the first minute; the intelligence arrives progressively as the factory works through the pile.

Administration, Jobs — the first week of a big library
Thumbnail generationFINISHES FIRST
Face detectionHOURS OF WORK
Face recognition and clusteringAFTER DETECTION
Smart search indexing (CLIP)HOURS OF WORK
Video transcodingAS NEEDED

👆 Example job list. Photos are safe and browsable from minute one — the smart features arrive as these queues drain.

1

The Three Jobs, in Plain Words

  1. Face detection — find the faces in each photo and cut them out for analysis. Fast per photo, but your library has tens of thousands of photos
  2. Face recognition and clustering — convert each face into a mathematical fingerprint and group matching fingerprints into people. You then name the people, and a decade of birthdays organises itself
  3. Smart search indexing — a model (the CLIP family) reads each image and records what it contains — dog, beach, car, cake — so plain-words searching works with no tagging from you, ever

All of it runs locally. No photo leaves your house for analysis — that privacy is the entire reason Immich's machine learning lives in a container on your server instead of in a cloud.

2

The Honest Timeline for a Real Library

  1. On a typical modest mini PC or older desktop CPU, expect the initial pass over a large library to take many hours — and for very large libraries, days of background work. Anyone who promises minutes is describing a demo library
  2. The work is a one-time catch-up. After it, each new photo is processed in seconds as it arrives. The mountain is climbed exactly once
  3. Watch progress in Administration → Jobs. Queues drain steadily; a shrinking number is health, not slowness
  4. The server stays fully usable throughout — uploads, browsing and sharing never wait for the factory. Only the smart features lag behind
  5. Practical mercy: you can pause job types, and many owners let the machine run overnight for the first week. The electricity cost of the catch-up is a few evenings of a busy CPU — budget for the patience, not a new computer
3

If It Feels Too Slow — Your Real Options

  1. Give it time first. Most 'it is broken' reports are simply day two of a five-day queue
  2. Hardware acceleration exists: Immich's machine learning supports GPU and accelerator options (NVIDIA CUDA and several others, per the official documentation) — worthwhile only if you already own suitable hardware or run a genuinely huge library
  3. Run machine learning on a second, stronger machine: the container is deliberately separate, and the documentation describes pointing the server at a remote machine learning address. Your storage stays on the quiet NAS; your desktop does the thinking
  4. Reduce the load honestly: video transcoding settings and thumbnail sizes are adjustable. What you should not do is disable face and search jobs and then judge Immich by the features you switched off
4

Accuracy — the Honest Grade

  1. Face clustering is very good with clear adult faces, and noticeably less certain with babies and fast-growing children — expect to merge and correct some people by hand. Immich gives you merge and rename tools because the developers know this
  2. Smart search understands common objects, scenes and activities impressively, and fails charmingly on the specific ('grandmother's red scooter') — it searches concepts, not memories
  3. None of your corrections are wasted: naming and merging people trains the library's organisation permanently, and it all stays on your server
  4. The comparison that matters is not 'as good as Google' — it is 'remarkably close, and nobody else ever sees the photos'. For most families that trade wins easily
🔴 Set expectations on day one: install evening is for uploads. Faces and smart search arrive over the following days as the queue drains. Judge Immich after the first week — not after the first hour.

🎥 Watch the Complete Process in the Video

Watch the install video to see the machine learning container start — then let it work through your library while you read this.

▶️ Watch Full Video
❓ Frequently Asked Questions

Why are my photos uploaded but not searchable by face yet?

Because the jobs run in order behind the upload: thumbnails first, then face detection, recognition and search indexing. On a large library and a modest CPU this catch-up takes hours to days. Check Administration, Jobs to watch the queues drain — a moving number means it is working, not stuck.

Does Immich send my photos to the cloud for face recognition?

No. All machine learning runs inside the container on your own server. The models are downloaded once; your photos never leave your network for analysis. That is the core privacy difference between Immich and the big cloud photo services.

My CPU is at 100 percent for days. Is that normal?

During the first pass over a big library, yes — the machine learning container is built to use what it is given. If it bothers you, pause the jobs during the day and resume them overnight from the administration jobs page. It is a marathon with a finish line; after the catch-up, only new photos need processing.

This guide is based on the Technical Anshu video linked above • Stuck on a step? Ask in the video comments — that is where answers come fastest 🙏