AI

Control darktable’s AI features: enable or disable them, choose a hardware accelerator for model inference, point darktable at an ONNX Runtime library, and manage the AI models available on disk.

AI features are powered by ONNX Runtime. What runs out of the box and what GPU acceleration can be added on each platform:

OS Bundled Optional GPU acceleration
Linux CPU only NVIDIA CUDA, AMD ROCm/MIGraphX, Intel OpenVINO
Windows DirectML (any DirectX 12 GPU) NVIDIA CUDA, Intel OpenVINO
macOS CoreML (Apple Silicon, integrated GPU)

Install scripts for the GPU runtimes are described below; see GPU acceleration for the full instructions.

For a deeper explanation of how AI features work – the inference runtime, execution providers, model layout, GPU acceleration, and troubleshooting – see the AI features special topic.

🔗general

enable AI features
Master switch for all AI features. When disabled, no ONNX Runtime is loaded, no model directories are scanned, and AI-dependent modules hide themselves. Turn this off to eliminate AI-related memory and startup cost when you don’t need it (default off).
AI acceleration
The hardware accelerator used for model inference. The list only shows the currently available providers as supported by the loaded ONNX Runtime. Installing a different ONNX Runtime updates the list.
  • auto picks the best available provider for the loaded library, falling back to CPU if no accelerator initialises.
  • CPU runs inference on the processor. Always available.
  • NVIDIA CUDA uses NVIDIA GPUs via cuDNN (Linux, Windows; requires installing a CUDA-enabled ONNX Runtime).
  • AMD MIGraphX uses AMD GPUs via ROCm (Linux only; requires installing a MIGraphX-enabled ONNX Runtime).
  • Intel OpenVINO uses Intel GPUs and iGPUs via OpenVINO (Linux, Windows; requires installing an OpenVINO-enabled ONNX Runtime).
  • Windows DirectML uses any DirectX 12 capable GPU (Windows; bundled by default).
  • Apple CoreML uses the Apple Neural Engine and integrated GPU (macOS; bundled by default).

Double-click the label to reset to the default. If the selected provider cannot be initialised with the currently-loaded ONNX Runtime (for example, if the library was built without that provider) a not available, will fall back to CPU notice appears next to the combo box. After swapping the ONNX Runtime library, the notice becomes restart to apply until darktable is restarted.

ONNX Runtime library
Path to a shared library (libonnxruntime.so* on Linux, onnxruntime.dll on Windows) that darktable should load in place of the bundled one. Leave empty to use the bundled library (see the table above for what that is per OS). To use a GPU runtime, install one via the scripts described below and point this field at it. Double-click the label to reset to empty. Changes take effect after restarting darktable. Hidden on macOS, where ONNX Runtime is statically linked with CoreML support.

To the right of the path field are two buttons:

  • browse (folder icon) – open a file chooser to pick a custom ONNX Runtime library. Selection is validated by loading the library and probing its version and available execution providers; if the file is not a valid ONNX Runtime build it is rejected and the previous path is restored.
  • detect – scan standard system locations for an ONNX Runtime library (package-manager installs, /usr/lib, /usr/local/lib, ~/.local/lib). If multiple candidates are found you will be asked to choose; if exactly one is found it is applied automatically. Useful when you have installed ONNX Runtime via your distribution’s package manager or via the install script described below.

🔗installing a GPU ONNX Runtime

GPU acceleration on Linux and Windows (NVIDIA CUDA, AMD MIGraphX, Intel OpenVINO) requires a GPU-enabled ONNX Runtime build, which darktable does not ship in-app. Install scripts handle this end-to-end – detecting your GPU, downloading the matching runtime, verifying it, and installing under your user account.

See GPU acceleration for the full instructions: one-line installers for Linux and Windows, prerequisites, GPU and driver requirements, alternative manual installation, building AMD ONNX Runtime from source, and troubleshooting.

After installation, restart darktable, then use the detect button above to point darktable at the newly-installed library (or pick the file manually with the browse button).

🔗models

The lower half of the tab lists AI models known to darktable – both already-downloaded ones and those available from the darktable-ai model repository.

model list
Each row has the following columns:
  • select (leftmost checkbox) – include the model in bulk operations (download selected, delete selected). Independent of the enabled state. The header checkbox toggles all rows at once.
  • name – model name.
  • info button (i icon) – click to open the model card with full metadata: scope, author, source, paper, license, training data, data license, notes.
  • version – model version string from the repository manifest.
  • task – which task this model serves: mask, denoise, rawdenoise, upscale.
  • enabled – marks the model as the active model for its task. Only one model can be active per task at a time: ticking it on a second model of the same task automatically un-ticks the previously active one, like a radio button. Un-ticking the active model leaves the task with no active model until another is picked. AI-dependent modules use whichever model is currently active for their task.
  • statusdownloaded, not downloaded, update available, or update required.
  • defaultyes if the model is in the developer-recommended default set (selected by download default), no otherwise.
download / update default
Download or update the subset of models the darktable developers recommend as defaults for each task. Useful to get going quickly with a fresh install, and to pull in any newer versions of those models that the repository has published since.
download / update selected
Download or update the models whose select checkbox is ticked. Use this when you’ve ticked one or a few specific models in the list and only want to operate on those.
import from file…
Install a model from a local .dtmodel archive. The file chooser is filtered to *.dtmodel; once imported, the model immediately becomes available. Use this for models you’ve been given by hand, models you’ve built yourself, or extra per-task alternatives from the darktable-ai repository – the in-app list shows only one or two models per task, but the repository may publish additional alternatives for the same task (different denoise model trained on a different dataset, alternative segmentation backbone, etc.). Download the .dtmodel from the repository’s GitHub releases and import it here.
delete selected
Remove the models whose select checkbox is ticked from disk. Models that were bundled with darktable cannot be deleted.

Downloads run in the background with a progress dialog and can be cancelled. Failed downloads are reported and the affected models remain in their previous state.