Mon usage de Darktable pour l'édition photo
Attention, page en chantier.
Pour tout un tas de raison, j’ai définitivement quitté Apple et le Macbook Pro il y a quelques mois. La seule raison de rester était mon activité photo : je fais beaucoup trop de photos et bien trop peu de temps pour apprendre un nouveau logiciel.
La seule alternative allait être Darktable, compatible mac os, mais dont le rendu sous mac dans sa version 2.6 (stable actuelle) laissait franchement à désirer et qui ne m’a pas permis de m’y habituer AVANT de passer définitivement sous linux.
Quand j’ai franchi le pas, j’ai continué à garder le mac sous le coude, uniquement pour les photos.
Puis j’ai pris le temps de me mettre Darktable. Pour le meilleur… je m’amuse beaucoup. Le hic : je ne passe pas beaucoup de temps à vraiment modifier des photos mais j’apprends plein de choses. Je vais essayer de vous déblayer le terrain.
Sur tous les sujets qui me tiennent à cœur, j’ai pour habitude de partager un retour d’exéprience très détaillé aux contributeurs, voici donc un retour sur mes préoccupations, destinés d’abord pour de la prise de note, aux contributeurs puis à mes connaissances vers qui je pourrais pointer cette page.
Darktable ?
darktable est un logiciel Open Source de traitement photographique qui permet de cataloguer ses photographies numériques et d’y appliquer des corrections et effets divers à ces images. Il autorise également le contrôle en temps réel d’appareil photographique numérique (APN) connecté par un câble à un ordinateur.
Le développement est complètement public et se passe sur github/darktable-org.
Je l’utilise en remplacement d’Adobe Lightroom mais son champ d’utilisation est beaucoup beaucoup plus vaste. Il est développé par des développeurs photographes pour leur propre utilisation, et le moins que l’on puisse dire c’est qu’ils aiment le contrôle et n’aiment pas trop les sliders magiques.
Quelle version ? dev ou pas dev ?
La version actuelle est la 2.6, la 3.0 est actuellement en release candidate 2 et devrait sortir en fin d’année 2019. Je dispose donc des deux sur ma machine. Surtout car je veux savoir où ça va et essayer d’aider.
J’utilise principalement la version master
, en avance de phase donc, en prenant soin de backupper régulièrement mon dossier de config.
Points d’attention : bien vérifier que le support Lua est actif, car on va s’en servir plus tard.
Comment compiler sa propre version ?
TODO
Support de mes appareils et objectifs
La plus grosse partie de la compatibilité n’est pas due à Darktable mais au projet lensfun. Ce projet, sur Linux, est installé au niveau de l’OS, et non pas embarqué dans darkable comme peuvent l’être les autres versions.
Il est découpé en deux parties : le code en lui-même et la base de données. Mettre à jour le code de lensfun n’a rien de bien marrant ni d’utile à ce que j’en sache, par contre la base de données est-elle constamment mise à jour par la communauté.
Pour mettre à jour, suivre cette procédure (sur ubuntu) :
# tout dépendra évidemment de votre distribution...
sudo apt install liblensfun-bin
# et voila...
lensfun-update-data
Les compatibilités se vérifient sur cette liste : https://wilson.bronger.org/lensfun_coverage.html. D’abord vérifier les appareil puis les objectifs.
Support de mes appareils
Je dispose de trois appareils Fujifilm : X-Pro1, X-T2 et X100F. Ces trois appareils sont parfaitement reconnus et ne nécessitent aucune manipulation. À l’heure actuelle, mon certainement futur appareil X-T3 est déjà bien supporté mais pas encore le X-Pro3 qui est en train de sortir (mais ça ira sûrement assez vite).
Ca se vérifie sur cette liste : https://wilson.bronger.org/lensfun_coverage.html.
Support de mes objectifs
Sur la page du support, les trois colonnes (distortion, CTA, vignetting) comptent, pour chaque objectif.
Je dispose de pas mal d’objectifs, au support inégal (pour le moment) :
- le Fuji
XF 35mm f/1.4 R
est totalement supporté, normal c’est le plus ancien et le plus légendaire. - l’objectif fixe 23mm X100F
FinePix X100 (fixed lens)
n’a pas de correction de vignetting, et je constate du coup qu’il y en a beaucoup (corrigé par le boîtier en JPG et par le support Adobe / Fujifilm sur Lightroom). Mais je m’en suis occupé et la PR est en attente de merge. - le Fuji
XF 56mm f/1.2 R
n’a pas de correction de vignetting, je vais m’en charger. - le Fuji
XF 90mm f/2 R LM WR
n’est pas du tout supporté, je vais m’en charger, mais la correction de la distorsion est plus complexe que le simple vignetting. - le fuji
XF 16-80mm f/4 R OIS
n’est pas du tout supporté, je vais m’en charger. - le KMZ
MC Helios-44M-4 58mm 1:2
est totalement supporté. - le Samyang
12mm f/2.0 NCS CS
est totalement supporté. - le Pentacon
auto 135/2.8 MC
n’est pas du tout supporté, ce n’est pas dans mes priorités, à voir.
Attention, les objectifs anciens (manuels et sans aucune connectique) ne peuvent pas être reconnus tous seul par Darktable, il convient de les sélectionner soi-même dans la section dédiée.
TODO :
- documenter comment créer une correction de vignetting
- où l’activer et vérifier que c’est ok
Pour tester mes corrections d’objectifs, j’ajoute à la main mes nouveaux correctifs dans les fichiers .local/share/lensfun/updates/version_1/mil-fujifilm.xml
(pour les objectifs) et .local/share/lensfun/updates/version_1/compact-fujifilm.xml
(pour le X100F) puis je relance Darktable.
Tous les trucs super cools
TODO, mais il y en a plein, Darktable est vraiment un chouette logiciel.
- correction de perspective
- culling
- support multi OS
- open source
- excellente documentation qui fait vraiment apprendre beaucoup de chose
- de vrais modules d’export
- scripting en lua
- support des notations par étoiles Fujifilm (via script lua)
- des raccourcis claviers pour tout, et possibilité d’en ajouter
- le module retouch par wavelets, qui évite de sortir / revenir du logiciel
Performance
Il y a deux modes principaux de calculs dans darktable : CPU et GPU, via opencl. Pour de nombreux gros traitements, avoir un GPU est évidemment un gros plus.
Je dispose d’un Lenovo T490 avec tous les paramètres boostés… sauf la carte graphique qui est une Lenovo UHD Graphics 620 (Whiskey Lake)
.
Le driver par défaut est beignet
qui est blacklisté par défaut depuis la version > 2.6. Ca veut donc dire pas d’optimisatoin GPU pour moi, sous prétexte que le driver est tellement à l’ouest que mieux vaut utiliser les optimisations CPU à fond.
TODOs :
- creuser
Intel Compute Runtime OpenCL
(lien 1, lien 2, lien 3), comme nouveau driver d’accès à opencl sur GPU Intel. Est-ce bien ça que l’on appelle neo ? - documenter ici le petit benchmark mentionné ici et fournir mes résultats. Tester avec le driver ci-dessus voir si ça améliore les choses ?
- parler de ce billet qui explique BEAUCOUP de choses sur les performances de darktable. Clairement, ça ne me concerne pas vraiment car j’ai un portable dont l’usage principal est loin d’être darktable, donc il ne va pas pouvoir être optimisé pour ce cas d’usage.
Les changements de config
Darktable est un logiciel conçus par des développeurs quasi pour des développeurs, en tout cas des personnes à l’aise avec l’informatique. Il est donc automatiquement configurable et personalisable.
- config
- je force en anglais par défaut, c’est une habitude
- j’utilise le (nouveau) darktable-elegant
- je n’importe pas récursivement les fichiers, c’est dû à mon workflow où j’ajoute régulièrement des photos dans un dossier, alors que j’ai déjà un darktbable_exported de créé (et que je ne souhaite pas importer donc)
- désactivation de l’auto activation de la basecurve, vérifier qu’ils sont tous décochés
- raccourcis claviers
- les plus utiles :
D
pour aller dans la darkroomL
pour revenir sur la lightable- noter avec 1-5,
R
pour rejeter - mettre un label rouge avec
F1
, je l’utilise pour signaler quelle duplicate exporter tab
pour afficher / masquer les siebars. Il existe des raccourcis pour chaque sidebar égalemnt.Ctrl+E
pour exporter la/les photos courantesCtrl+H
pour afficher / masquer la barre du haut. Masquée à 98% du temps, mais elle permet de voir le nombre de photos non rejetées, donc utile
- mes modifications (j’en avais plus pour retrouver l’ergonomie de Lightroom, mais je suis en supprimer ces habitudes volontairement) :
- inversement de
W
etCtrl+W
pour que par défaut la preview soit sticky.
- inversement de
- les plus utiles :
- scripts lua
contrib/fujifilm_ratings
contrib/OpenInExplorer
Mon workflow d’import de photos
TODO, à documenter :
- import via rapid photo downloader (documenter son utilisation / configuration, ainsi que mes différences entre projet et courant).
- import dans darktable des raw et des JPG (ne pas cocher “ignorer jpg”, laisser récursif décoché)
- activer le mode “group” (
G
à côté de l’étoile en haut à droite dans la vue Ligthtable) - tri / culling
- filtrer par
- suppressions
- Q: dois-je faire l’inverse ? JPG first et n’utiliser le raw que si nécessaire ?
à savoir que souvent, j’ai déjà mis des étoiles directement depuis l’appareil photo pour les photos que je pense être déjà correctes, afin de me faire gagner du temps. Lightroom ne savait pas quoi en faire, donc je l’utilisais assez peu. Il existe une extension lua sur darktable (TODO expliquer comment l’activer) qui le gère automatiquement pour moi maintenant. Et c’est bien bien pratique.
Les tutos suivis
TODO
RAF
- bulk update des dates exif : quand j’oublie de synchroniser les heures de mes appareils en amont d’un shoot, je peux me retrouver avec un décalage bien pénible. C’était super bien supporté sur LR, à voir comment résoudre ce point avec darktable
- mes appareils à objetifs interchangeables ne me permettent pas de déclarer un objectif manuel sans connexion électronique en amont, je dois donc les changer à la main dans les exif. C’était supporté avec une extension sur LR.
- documenter mes profils d’exports JPG (avec ou sans méta données, etc.)
- tester les exports google photo ?
- réfléchir à l’utilisation de “mouse wheel scroll modules side panel by default”
- hdr ? => enfuse
- panorama ? => hugain
- suppression des jpg en même temps que le raw ?
- delete all rejected
- update current folder (sync) ok pour l’ajout, pour la suppression par contre… (script lua ?)
- optimiser le rendu de la version master sur petit écran retina (fait avec du CSS pour le moment, à voir avec les contrib)
- sharpen /noise redéuction spécifique fujifilm
- DR 200 / 400 issues : https://www.darktable.org/2014/08/using-x-trans-cameras-with-darktable/
- css edit : https://github.com/darktable-org/darktable/issues/2673
- tester l’edit de fichiers distants (via import local)
- import de l’historique de lightroom
- script avec lua
- filtrer par type de fichier ? raf vs jpg ? => actuellemnt group leaders / followers
- compatibilité avec le night mode de gnome ? https://github.com/darktable-org/darktable/pull/3280
- tester haldcut / lut3d https://github.com/darktable-org/darktable/issues/3299