Immich KI-Suche einrichten, optimieren und vergleichen (CLIP-Modell)

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

ElaCorp

Benutzer
Registriert
12. Mai 2015
Beiträge
1.087
Reaktionspunkte
109
Punkte
83
Hallo Community,

wir haben hier bei der allgemeinen Einrichtung angefangen vermehrt über eine KI Suche zu diskutieren. Auch weil ich gerade mehrere Fragen dazu habe, möchte ich hier einen Beitrag nur um das Thema KI Suche erstellen.

1. Ich habe "ViT-B-16-SigLIP2__webli" verwendet. bei 40.000 Fotos ging das auf der 920+ nach wenigen tagen. Aber die Ergebnisse sind nicht ausreichend.
2. Warum sind die Ergebnisse auf deutsch englisch so unterschiedlich?
SCR-20250525-oivh.jpeg

3. Hier schreibt jemand vom RunPod. Wie verwendet das mit seinem Docker Immich auf seiner Synology? Bedeutet dass, dass man die KI auslagert?
4. Könnte ich die KI aufgaben auch für die 40.000 Fotos einmalig auf meinem MacBook Pro m4 KI Chip ausführen? Und dann alle einzelnen nur noch auf der Synology?
5. Wie konnte man den Docker optimieren? Mehr CPU und RAM vergeben? Hilft es das LOG vom Docker zu reduzieren? Angeblich soll das volllaufen können.
6. Gibt es ein PlugIn oder eine Möglichkeit, dass die Bilder über KI immer richtig rum gedreht werden? ich fotografier viel, nach vorne gebeugt, Dokumente, Tiere / Pflanzen von Oben. Da wird die Ausrichtung nicht richtig abgespeichert. Nun müsste ich all diese Fotos einzeln drehen. Das könnte doch einfach eine KI machen.
7. Welche KI Modelle kann man pauschal empfehlen?
SCR-20250525-odft.png

8. Macht es überhaupt Sinn, ein nllb-Model zu verwenden? Weil es auch viele Wörter gibt, die Englisch sind und dann nicht so gut erkannt werden, oder?
9. Können wir hier mit den verschiedensten Modellen einige Teste machen? Oder jeder von euch sagt was er mit seinem Modell so feststellt? Da hätten wir eine schöne Stichprobe. =)
10. Was habt ihr optimiert oder eingestellt? Was verwendet ihr, was hilft euch? Oder geht eventuell noch mehr, als den meisten mit immich bewusst ist?
 
Also ich benutze das Modell:
ViT-SO400M-14-SigLIP2-378__webli
Bin bei den Suchergebnissen (nur auf Deutsch) immerwieder erstaunt was da alles erkannt wird. Selbst "Grogu" (Star Wars) den wir hier als Kuscheltier haben wurde da gefunden.
Läuft allerdings bei mir auf einem Raspberry Pi 5 und nur die Bilder liegen auf der Ds224+.
 
Ich nutze ViT-SO400M-14-SigLIP2__webli finde ich wirklich gut. Allerdings habe ich meine 55.000 Bilder mit einem externen Server analysieren lassen.
 
WOW. Ich hab nun auch das größte Modell aktiviert, es aber über die Schnittstelle über mein super schnellen MacBookPro M4Pro+ Prozessor laufen lassen. Das ist so epic! 40.000 Fotos 920+ ONLY damals, ca. 3 Monate wobei nur 80% der CPU zur verfügung stand und das NAS lahm gelegt hat. Naja, und NUN??? ca. 6 Std. Alles fertig. Das ist so episch. Und der treffic ist super gering. ca. 200kb/s, da werden andere Daten übertragen. Und wenn ich mein Notebook zuklappe, dann rendert er auf dem NAS einfach weiter nur einem Prozess weiter. ODer halt gar nicht, und wartet bis mein Macbook wieder da ist. M4Pro+ hat 14 Kerne. Das ist so schnell. EPISCH!!!!
SCR-20250526-fnlj.png

Und das Macbook läuft weiter. Kannst es ganz nromal verwenden. Natührlich will man keine Leistung wegnehmen. Browser etc geht easy. Lüfter dreht auf maximal auf. =D
SCR-20250526-foue.png
Das ist so episch. Und alles in der eigenen Cloud. Alle Dateien bleiben Privat. Und da frage ich mich, warum ich mir überhaupt ein UGreeen mit dem KI Chip holen soll? Das große. Hab schon zwei Tickets angezahlt.

Überlege nun ob ich KI auch für iSpy und Home Asssitant über mein macbook laufen lassen kann. =D
 
  • Like
Reaktionen: ctrlaltdelete
Weisst du, wieso die CPU verwendet wird und nicht die GPU?
 
  • Like
Reaktionen: ElaCorp
Weisst du, wieso die CPU verwendet wird und nicht die GPU?
Ja, das konnte ich sehr gut in Erfahrung bringen. Weil ich mich das auhc gefragt habe. Da wird viel Power liegen gelassen.
Antwort: Weil Docker das nicht durchschleifen kann. Die GPU arbeitet nativ udn hat eine eigene API. Aber Docker virtualisiert alles und hat keinen Zugriff auf diese Schnittstelle. Das wurde experimentell gerade geschafft, aber noch nicht freigegeben. Könnte in 1 Jahr soweit sein.
Native GPU-Nutzung auf Mac: Mit dem aktuellen Immich-Setup und Docker Desktop nutzt Immich unter macOS nur die CPU. Es gibt keine offizielle Metal- oder Neural-Engine-Unterstützung in Containern.
Docker Desktop auf Apple Silicon: Keine GPU-Passthrough

Apple-Silicon-Macs (M1/M2/M3/M4) nutzen integrierte GPUs mit Metal/Neural Engine. Docker Desktop auf macOS startet Linux-Container allerdings in einer virtuellen Linux-VM (über Apple Hypervisor.framework) . In dieser Konstellation gibt es derzeit kein direktes GPU-Passthrough für Metal oder CoreML in den Container. So stellt z. B. die Docker-Umgebung unter macOS keine Apple-GPU als Hardware für den Container bereit  . Entsprechend finden Container nur (falls vorhanden) GPU-APIs wie NVIDIA CUDA oder AMD ROCm – Apple-eigene GPUs und Tensor-Rechner (Neural Engine) bleiben aber außen vor. Praktisch heißt das: Standardmäßig können Docker-Container auf macOS nicht auf die Mac-GPU zugreifen.

Dies wurde mehrfach dokumentiert: Anthony Nocentino etwa schreibt, Docker Desktop (und selbst Alternativen wie OrbStack) unterstütze kein GPU-Passthrough auf Apple Silicon . Auch Immich-Entwickler weisen darauf hin, dass Docker auf dem Mac in einer Linux-VM läuft und „Apple Metal hwaccel“ nicht weitergereicht werden kann . Mit anderen Worten: Ein im Docker-Container laufendes Programm sieht auf einem M1/M2/M3/M4-Mac nur die CPU. Metal- oder CoreML-Beschleunigung kommt so nicht zustande.

Hinweis: Es gibt inzwischen experimentelle Ansätze, dies zu ändern. Docker plant z. B. den „Docker Model Runner“ (ab Desktop 4.40), der Modelle außerhalb von Containern auf dem Mac ausführt und so die GPU nutzt  . Dabei läuft der Inferenzcode nativ (z. B. llama.cpp) auf dem Host. Diese Lösung ist jedoch derzeit auf LLM-Workloads spezialisiert und noch als Beta/Experiment markiert. Andere Alternativen wie Podman mit libkrun/Krunkit nutzen virtio-gpu und Vulkan/Venus, um Metal-GPU-Befehle vom Container zum Host zu leiten  . Das ist technisch aufwendig und keine „out-of-the-box“-Lösung.

Immich Machine Learning auf dem Mac

Immich verwendet für Smart Search und Gesichtserkennung eine separate ML-Komponente (Container oder Service), die üblicherweise auf Linux oder Windows/WSL betrieben wird. Laut den Immich-Dokumenten werden nur die folgenden Hardware-Beschleunigungen unterstützt: ARM NN (Mali-GPUs), CUDA (NVIDIA), ROCm (AMD), OpenVINO (Intel Iris/Arc) und RKNN (Rockchip) . Apple-GPUs und der Neural Engine sind nicht gelistet. Tatsächlich heißt es explizit: „Only Linux and Windows (through WSL2) servers are supported“ . Mac-OS-Systeme werden von den offiziellen Hardware-Acceleration-Images also nicht abgedeckt. Der Immich-Server läuft im Container auf dem Mac in einer Linux-VM, insofern gelten dieselben Einschränkungen wie oben: Es gibt keine CPU-interne GPU, die im Container genutzt werden könnte.

Daher verwendet Immich auf dem Mac per Standard keine GPU-Beschleunigung. Alle Bilderkennungs- und Suchjobs laufen auf der CPU. Die Logs des ML-Containers spiegeln das: Man sieht nur CPU-Auslastung (z. B. [source=cpu_common.go]) und keine GPU-Treibermeldung. Ein Hinweis aus der Community bestätigt: Die ML-Prozesse landen standardmäßig im „CPU-only“-Modus, wie im Immich-Forum diskutiert wurde .

Workaround (CoreML): Um den Mac beschleunigt zu nutzen, empfehlen Entwickler, den ML-Dienst außerhalb von Docker direkt auf dem Mac zu betreiben. Dazu müsste man das Immich-Repository klonen und im Python-Code als ONNXRuntime-Ausführungsanbieter explizit CoreMLExecutionProvider aktivieren . Das setzt voraus, dass die ONNX-Modelle tatsächlich CoreML-kompatibel sind (Experimentieraufwand). Es ist also prinzipiell möglich, Immichs ML-Service lokal mit CoreML/Metal zu starten – aber das erfolgt nicht im Standard-Docker-Setup, sondern als eigenständiger Prozess auf macOS . Bislang gibt es dafür keine „offizielle“ Ein-Klick-Lösung.

Workarounds und spezielle Konfigurationen
• Docker Model Runner: Docker Desktop (ab 4.40, macOS) bietet das experimentelle docker model-Feature. Damit werden Modelle nicht in einem Container, sondern nativ auf dem Mac ausgeführt  . Voraussetzung ist die Aktivierung in den Docker-Settings. Diese Lösung nutzt den Host-Inferenz-Server (z.B. llama.cpp) und erlaubt GPU-Nutzung auf Apple Silicon. Allerdings zielt sie auf generative Modelle (LLMs) ab und noch nicht direkt auf Immich/ONNX.
• Alternative Container Engines: Tools wie Podman (mit Libkrun/Krunkit) oder Colima können prinzipiell virtio-gpu einsetzen. Beispiel: Sergio López zeigt, wie man Podman mit --device /dev/dri plus einem Vulkan/Virtio-GPU-Stack nutzt  . Das ist technisch versiert und eher für Entwickler. Für Immich müsste der Linux-VM-Kernel so konfiguriert sein, dass die Apple GPU (über Metal/Vulkan-Brücke) sichtbar wird. Bislang ist das aber nicht produktiv etabliert. OrbStack plant ebenfalls GPU-Unterstützung, hat aber (Stand April 2025) noch keine reale GPU-Passthrough-Funktion veröffentlicht.
• Immich außerhalb von Docker: Wie oben erwähnt, lässt sich der ML-Service auch als Mac-Anwendung starten. In diesem Fall könnte man ONNX Runtime mit dem CoreML-Provider nutzen. Das erfordert eine manuelle Einrichtung (Python/Poetry, Abhängigkeiten, Umgebungsvariable MACHINE_LEARNING_CACHE_FOLDER setzen etc.) .
 
ok, mit dem runpod ging das :cool:
1748268265791.png
 
Der RunPod hat auch eine nVidea Grafikkarte die dafür optimiert ist. Der Dienst kostet Geld, die Übertragung findet in die Cloud statt. Das hat alles seine Daseinsberechtigung. Ich habe bereits ein MacBookPro M4Pro+ und musste nur einige Klicks machen, und rendere es auf meinen bereits verfügbaren Geräten offline. 6Std ist jetzt auch nicht soo schlecht. Sozusagen, eine Nacht. Fertig.

Wenn ich das richtig erkannt habe. Könnte man so, sogar die Geräte der Familie damit versehen und im Hintergrund die Rechenpower etwas nutezn. =D Eventuell nur 2 CPU´s =D oder 4 von 14 =DDDD. Udn keiner würde es wirklich merken. ^^ DAs geht vermutlich auch durch das VPN, da die Gerät im Ferienhaus eh alle über das Heimnetz laufen. =D
 
  • Like
Reaktionen: ctrlaltdelete
Sorry, das sollte keine Kritik sein. Aber da ich auch ein neues MacBook brauche, habe ich es hinterfragt.
 
Kurze Rückmeldung. Mir ist ein Fujitsu Esprimo E900 I5-2400 in die Hände gefallen (ich habe bei meinen Eltern den PC gegen einen GMKtec G3 Mini-PC Intel Alder Lake N100 Windows 11 Pro Desktop ausgetauscht). Und jetzt laufen alle meine Docker Stacks/Container auf:
Fujitsu Esprimo E900 I5-2400
Nvidia GeForce GTX 1650 low profile OC 4 GB)
32 GB RAM
2 x 256 MB SSD Boot-Pool
2 x 2 TB SSD Data-Pool
True Nas Scale
Portainer mit u.a. Immich, Plex, nextcloud, paperlessngx, etc.

Vorteil: Immich ML (intelligente Suche: ViT-SO400M-14-SigLIP2-378__webli) und Video transcodierung läuft sauber über die GPU, Plex ebenso, da gehen auch 8-10 Streams parallel
 

Anhänge

  • 1763038491807.png
    1763038491807.png
    38,7 KB · Aufrufe: 9
  • 1763038570711.png
    1763038570711.png
    33 KB · Aufrufe: 9
  • 1763038586032.png
    1763038586032.png
    135,4 KB · Aufrufe: 9
  • Like
Reaktionen: Benie
Wie sind denn eure Erfahrungen mit ViT-B-32__openai
 

Additional post fields

 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat