comment fonctionnent les fonctionnalités de l’IA

Cette page couvre ce qui se passe sous le capot : les chargements de la bibliothèque d’inférence darktable, les fournisseurs d’exécution à sa disposition et la manière dont les modèles sont stockés et activés.

🔗the inference runtime

darktable charge les modèles via ONNX Runtime – une bibliothèque d’inférence de qualité production développée à l’origine chez Microsoft et désormais régie par la Linux Foundation – qui accepte les modèles au format ouvert ONNX. ONNX est la norme de facto pour l’échange de modèles d’apprentissage automatique entre les frameworks (PyTorch, TensorFlow, etc.) afin que nous puissions prendre un modèle formé dans l’un d’entre eux, l’exporter vers ONNX et l’exécuter depuis darktable sans embarquer son framework de training en même temps.

Une seule bibliothèque ONNX Runtime est chargée par processus darktable. Il est choisi dans cet ordre :

  1. Si le champ ONNX Runtime library dans préférences IA pointe vers un fichier (ou la variable d’environnement DT_ORT_LIBRARY le fait), cette bibliothèque est chargée à la place.

  2. Sinon, l’environnement d’exécution fourni avec darktable est chargé à partir du répertoire d’installation.

L’environnement d’exécution fourni est uniquement compatible CPU sous Linux, compatible DirectML sous Windows et compatible CoreML sous macOS. Cela rend chaque installation fonctionnelle dès le départ. Si vous souhaitez une accélération GPU NVIDIA, AMD ou Intel sous Linux ou Windows, vous remplacez la bibliothèque par une build compatible GPU – voir accélération GPU.

🔗execution providers

Un fournisseur d’exécution (EP) est un back-end ONNX Runtime pour un accélérateur matériel spécifique – la préférence accélération IA de darktable en est le concept. Une seule bibliothèque ONNX Runtime peut être livrée avec plusieurs fournisseurs ; ceux qui fonctionnent réellement dépendent de ceux qui sont compilés dans la bibliothèque et de ceux qui sont disponibles sur votre système. La combinaison de préférences répertorie uniquement ceux pris en charge par la bibliothèque actuellement chargée :

  • auto – laissez ONNX Runtime choisir le meilleur fournisseur au moment de l’inférence, avec le processeur comme solution de secours ultime. Recommandé sauf si vous avez une raison de passer outre.

  • CPU – toujours disponible. Convient parfaitement pour les masques d’objet et pour un débruitage/un agrandissement occasionnels. Lent pour le travail interactif et pour le haut de gamme à 4x.

  • NVIDIA CUDA – GPU NVIDIA sous Linux/Windows. Nécessite un environnement d’exécution ONNX compatible CUDA et la boîte à outils CUDA correspondante + cuDNN 9.x sur votre système.

  • AMD MIGraphX – GPU AMD sous Linux. Nécessite un ONNX Runtime compatible MIGraphX et une installation ROCm 6.3+. Non pris en charge sous Windows.

  • Intel OpenVINO – GPU Intel intégrés et discrets sur Linux/Windows. L’environnement d’exécution OpenVINO est fourni avec le package installé – aucune installation distincte n’est nécessaire au-delà d’un pilote GPU Intel à jour.

  • Windows DirectML – tout GPU compatible DirectX-12 sous Windows. Bonne solution de secours lorsqu’un fournisseur spécifique à un fournisseur n’est pas pratique. Embarqué.

  • Apple CoreML – Apple Silicon (moteur neuronal et GPU) et les récents Mac Intel. Embarqué.

La première fois qu’un fournisseur GPU exécute un modèle donné, il compile une version optimisée du graphique du modèle pour votre matériel spécifique. Le temps que cela prend varie beaucoup selon le fournisseur : CUDA et DirectML durent généralement quelques secondes ; AMD MIGraphX peut prendre 5 à 30 minutes lors de la première exécution de chaque modèle, en fonction du GPU et de la taille du modèle. Les utilisations ultérieures réutilisent le graphique compilé et s’exécutent rapidement.

🔗models

Chaque fonctionnalité d’IA est soutenue par un ou plusieurs modèles par tâche. Un modèle est un répertoire contenant un fichier ONNX et un petit fichier « config.json » avec des métadonnées (nom, tâche, description, informations de licence). Les modèles vivent sous :

  • Linux : ~/.local/share/darktable/models/

  • macOS : ~/Library/Application Support/darktable/models/

  • Windows : %APPDATA%\darktable\models\

darktable analyse ce répertoire au démarrage (et chaque fois que vous modifiez les modèles dans les préférences) pour découvrir ce qui est disponible. Plusieurs modèles peuvent être installés pour la même tâche – pour Réduction de bruit, par exemple, vous pouvez avoir les options formées par NIND et NAFNet sur le disque à la fois. Un seul peut être actif par tâche à tout moment ; cocher la case activée sur un deuxième modèle de la même tâche décoche automatiquement celle précédemment active. Les modules qui utilisent cette tâche chargent le modèle actuellement marqué comme actif.

Models are not bundled with darktable. They are distributed as .dtmodel packages from the darktable-ai companion repository. The AI preferences tab includes buttons to download the default set directly; for additional per-task models (alternative denoisers, segmentation backbones, etc.), download the .dtmodel from the repository’s releases page and install it via the install model button in the same tab.

translations