The last couple of days I have been working on a Lua Script to auto tag images in the library so that it is easier to find images in your library with similar objects / subjects.
The Lua script is basically a fore-front for OpenCLIP. Every image is scored against a fixed vocabulary of ~1000 labels — the 365 scene categories of Places365, the 601 object classes of OpenImages V7 and a small number of manually added labels. Additional I have added some hierarchy for the labels so it it easier to handle in darktable.
It works very straight forward. Select an image in the light table and click ‘argus: auto tag’
The Lua script then retrieves the largest cached thumbnail from darktable (so crops are respected) and calls a python script (using uv, so ensure that uv is installed) to tag the images. this is running all locally, no cloud, no api’s
Once do you can see in the tagging module the attached tags:
Just for your information, you can implement it without python at all. Convert models to ONNX format, install them in AI prefs and call them from your Lua script. There is Lua AI API for that in darktable.
I have developed images from raw for quite some years (in dt only for the last 1.5 years or so), but never bothered with tags. Because it’s a) too much work for me and b) tags usually don’t carry over well if switching from one developer to another (I used Capture One before and now dt, and maybe in another 10 years something else comes along). But this provides a very straightforward way to tag ones images.
I’d also be very interested in the implementation mentioned by @anry.
@Mica, the advantage of what @martinus created is the Artemis script, which tags animals with common and scientific names. The Argus script is much like Photils. @martinus, Photils does work on Windows
@Martins , @Wayfinder , is this only needed for Win 11? I tried to build the Artemis model under Linux (Kubuntu 26.04) and it failed. Issue raised on Github with all the output from the failed build run.
Edit 2026-10-06: @martinus , are you still working on these scripts, or is this project closed as far as you’re concerned?