immich-ml-layer
Recipe card from the charly-immich plugin (Images — the deployable catalog).
immich-ml – Immich machine learning backend
Section titled “immich-ml – Immich machine learning backend”Candy Properties
Section titled “Candy Properties”| Property | Value |
|---|---|
| Dependencies | immich |
| Ports | 3003 |
| Volumes | models -> ~/.immich/models |
| Service | immich-ml (supervisord, priority 40) |
| Install files | task: |
Environment Variables
Section titled “Environment Variables”| Variable | Value |
|---|---|
IMMICH_MACHINE_LEARNING_ENABLED |
true (overrides immich default) |
IMMICH_MACHINE_LEARNING_URL |
http://127.0.0.1:3003 |
MACHINE_LEARNING_HOST |
0.0.0.0 |
MACHINE_LEARNING_PORT |
3003 |
MACHINE_LEARNING_WORKERS |
1 |
MACHINE_LEARNING_WORKER_TIMEOUT |
120 |
TRANSFORMERS_CACHE |
~/.immich/models |
Build Setup
Section titled “Build Setup”- Root-phase tasks download the immich ML module, installs via uv/pip into
/opt/immich/machine-learning/.venv - User-phase tasks create
~/.immich/models(TRANSFORMERS_CACHE) and~/.cache/immich_ml(immich ML model cache). The~/.cache/immich_mldirectory must be created at build time because~/.cachemay be root-owned from earlier layer builds (npm/pixi). Creating it in tasks: ensures correct UID 1000 ownership.
# charly.yml -- adds ML to an immich imageimmich-ml: candy: - immich-mlUsed In Boxes
Section titled “Used In Boxes”Related Candies
Section titled “Related Candies”/charly-immich:immich– required base (provides server + database)/charly-distros:cuda– GPU acceleration (when used in cuda boxes)
When to Use This Skill
Section titled “When to Use This Skill”Use when the user asks about:
- Immich machine learning features
- Face detection or CLIP-based search
- ML model caching or downloads
- Port 3003 configuration
- Enabling ML in Immich
Related
Section titled “Related”/charly-image:layer— candy authoring reference (charly.ymlschema, task verbs, service declarations)/charly-check:check— declarative testing (check:block,charly check box,charly check live)