Courbe de base – un module hybride

Le module Base curve (courbe de base) permet d’ajuster le contraste et la plage dynamique d’une image en appliquant une courbe de transfert sur les valeurs de luminance.
Basé sur le module historique de darktable, Il propose maintenant deux approches distinctes : un mode classique orienté affichage (Legacy) et une extension avancée scène-référencée.

Le pipeline

  • Courbe de base (LUT à nœuds), appliquée aux canaux RGB, commune à tous les modes
  • Mélange du Color look choisi (matrice 3×3), actif dans tous les modes, y compris Legacy
  • En mode Legacy : le traitement s’arrête essentiellement ici (éventuellement combiné à la méthode Preserve colors), pas de tone mapping supplémentaire
  • En mode scène (kinematic / dynamic) : Highlight gain (gain linéaire) et Shadow correction (gamma) appliqués aux trois canaux, avant le tone mapping
  • En mode scène (kinematic / dynamic) : conversion vers XYZ puis JzAzBz, facteur d’échelle adaptatif basé sur la luminance perceptuelle Jz, tone mapping ACES (1.0 en kinematic, 2.0 en dynamic) sur la luminance, puis regain proportionnel réappliqué aux trois canaux pour conserver la teinte d’origine
  • En Cinematic DRT : conversion RGB → Oklab ; ajustement de saturation (Saturation boost + Balance saturation) ; compression douce du chroma (protection de gamut interne à ce mode) ; calcul d’une norme vectorielle façon OpenDRT ; Contrast (brillance), Highlight gain et Shadow correction appliqués à cette norme ; tone mapping ACES 2.0 sur la norme ; correction de teinte/saturation des hautes lumières ; reconstruction Oklab → RGB ; mélange de détail (75 % traité / 25 % original) ; désaturation progressive vers le blanc au-delà de 85 % de luminosité
  • Highlight roll-off : désaturation progressive vers le neutre (vers le blanc en Cinematic DRT) au-delà de 80 % de luminosité, commun aux trois modes scène
  • Balance/boost de saturation en espace JzAzBz, compression de gamut globale (Compression smoothness) et correction de teinte/saturation des hautes lumières, recalculés ici une seconde fois en JzAzBz ; en Cinematic DRT, seule la partie hue/sat s’applique à ce stade, en plus de son propre traitement interne déjà effectué en Oklab
  • Compression de gamut par teinte (seuils et limites cyan/magenta/jaune) puis Purity boost

Le graphique de la courbe

Au-dessus du graphique, quatre boutons :

  • Icône appareil photo : calcule automatiquement une courbe à 5 nœuds à partir de la vignette JPEG intégrée au fichier RAW, utile en mode Legacy pour repartir d’un rendu proche de celui produit par l’appareil.
  • Icône pinceau/styles : calcule une variante de courbe optimisée pour les scènes claires ou à dominante haute-key.
  • Pipette : prélève la luminance d’un point de l’image et l’affiche sur le graphique, sans ajouter de nœud, pour voir où se situe une zone précise de la photo sur la courbe actuelle.
  • Œil : affiche ou masque les deux curseurs numériques de position du nœud sélectionné (X/Y), sous le graphique, pour un réglage fin au clavier plutôt qu’à la souris.

Sur le graphique lui-même :

  • Ctrl + clic sur une zone vide : ajoute un nouveau nœud à cet endroit.
  • Clic-glissé sur un nœud : le déplace.
  • Molette sur un nœud sélectionné : ajuste finement sa position verticale.
  • Flèches du clavier, nœud sélectionné : déplace le nœud pas à pas (X/Y) ; un modificateur (Maj/Ctrl selon la configuration des raccourcis) change l’amplitude du pas.
  • Clic droit sur un nœud sélectionné : le supprime, sauf s’il s’agit d’une extrémité (premier ou dernier nœud), qui est alors ramenée à ses coordonnées d’origine (0,0 ou 1,1) plutôt que supprimée.
  • Double-clic : réinitialise la courbe, au tracé identité à 3 nœuds (0,0 / 0,5,0,5 / 1,1) dans les modes scène, ou à la courbe par défaut de l’appareil en mode Legacy.

Le curseur Scale for graph, sous le graphique, ne change rien au traitement de l’image, il étire l’échelle horizontale (linéaire vers logarithmique) pour rendre plus facile le placement précis d’un nœud dans les ombres ou les hautes lumières, sans avoir à zoomer.
Module : Base curve, mode scène

Extension scène-référencée du module base curve, développée dans ma branche expérimentale Libre DT-Lab de darktable.

Disponible quand le flux de travail est réglé sur kinematic, dynamic ou cinematic DRT (ce dernier remplace le pipeline JzAzBz par un traitement entièrement en espace Oklab).

Choix du mode

Le mode détermine quel moteur de tone mapping s’applique après la courbe de base. Changer de mode réinitialise la plupart des curseurs à leurs valeurs par défaut (sauf en passant directement de kinematic à dynamic, où les réglages sont conservés).

Mode Legacy (display)

C’est le mode d’origine du module, tel qu’il existait avant l’extension scène-référencée. La courbe s’applique directement sur les canaux RGB, sans passer par aucun espace colorimétrique intermédiaire, pas de JzAzBz, pas d’Oklab.

Elle contient par défaut de nombreux nœuds, souvent une courbe spécifique à votre appareil photo, pensée pour imiter le rendu JPEG du fabricant plutôt qu’un point de départ neutre.

Un réglage complémentaire, Preserve colors, permet de limiter les dérives de teinte quand on pousse le contraste avec cette courbe.

Tous les curseurs de saturation, de gamut et de hautes lumières décrits plus bas sont masqués dans l’interface en mode Legacy, ils n’ont pas de sens ici, puisqu’il n’y a pas de tone mapping scène. Seule exception : Color look et Look opacity restent disponibles, même en Legacy.

C’est le mode à utiliser si vous voulez retrouver le comportement historique du module, sans les extensions scène de Libre DT-Lab.

Mode à la scène

  • Kinematic (Inspiration ACES 1.0) : Reprend la philosophie de la courbe RRT/ODT standard v1.0, avec un shoulder progressif modulé par la luminance perceptuelle J_z. C’est le choix par défaut en mode scène, adapté à la majorité des images.
  • Dynamic (Inspiration ACES 2.0) : S’inspire des travaux de la v2.0 visant à adoucir l’épaule (shoulder) et à mieux préserver la teinte dans les hautes lumières grâce à une courbe de ton plus douce et mieux équilibrée. À préférer sur les scènes à très haute dynamique ou avec des sources lumineuses intenses dans le cadre.
  • Cinematic DRT : Utilise la même courbe de compression que le mode Dynamic, mais avec un traitement entièrement différent en espace Oklab (norme vectorielle façon OpenDRT). Il intègre un contrôle de contraste dédié (Contrast) indisponible dans les deux autres modes, et le curseur Shadow correction y est désactivé par défaut.

Un réglage Default workflow (dans les préférences du module) permet de choisir le mode utilisé automatiquement à la réinitialisation, indépendamment du mode actif sur l’image en cours.

Voici, ci-dessous un descriptif des différents curseurs et réglages disponibles.

Highlight gain / Shadow correction / Contrast

Ce sont les trois premiers réglages à ajuster, avant tout ce qui touche à la couleur, ils façonnent la plage tonale que le tone mapping va ensuite comprimer.

Highlight gain (défaut 100 %, plage 25 % – 175 %) : gain linéaire appliqué avant le tone mapping. Vers la droite : davantage de données sont poussées dans la compression des hautes lumières. Vers la gauche : la saturation est mieux préservée dans les tons clairs, au prix de hautes lumières moins comprimées.

Shadow correction (défaut 100 % en kinematic/dynamic, désactivée par défaut en Cinematic DRT ; plage 25 % – 175 %) : agit sur la luminosité des ombres avant le tone mapping. Vers la droite : les ombres sont éclaircies. Vers la gauche : elles sont assombries.

Contrast (Cinematic DRT uniquement, défaut 0 %, plage −100 % à +100 %) : contraste appliqué sur la « brillance » en espace Oklab, propre à ce mode, n’apparaît pas en kinematic/dynamic, qui n’ont pas d’équivalent direct.

Saturation

Deux curseurs distincts, à ne pas confondre : l’un règle un niveau global, l’autre répartit la saturation entre ombres et hautes lumières.

Saturation boost ucs (défaut 0 %, plage −100 % à +100 %) : booste ou réduit la saturation globalement, dans l’espace de travail UCS (JzAzBz en kinematic/dynamic, Oklab en Cinematic DRT). Vers la droite : couleurs plus vives partout. Vers la gauche : image plus désaturée.

Balance saturation ucs (défaut 20 %, plage −75 % à +75 %) : ne change pas le niveau global, seulement l’équilibre entre ombres et hautes lumières. Vers la droite : les ombres gagnent en saturation, les hautes lumières sont tempérées. Vers la gauche : l’inverse, hautes lumières plus saturées, ombres tempérées. Utile pour faire ressortir des couleurs sombres sans faire clipper les zones spéculaires.

Color look et Look opacity

Color look (défaut neutral) : une ambiance colorimétrique prédéfinie à choisir dans une liste (11 presets : neutral, natural look, portrait, nature, vibrant, blue sky, soft warm, soft, deep cool, authentic cinema, bright atmosphere), appliquée sous forme de matrice 3×3 avant le tone mapping. Chaque choix pousse les couleurs dans une direction différente, à essayer les uns après les autres pour voir ce qui convient à l’image.

Look opacity (défaut 100 %, plage 0 % – 100 %) : dose l’intensité du preset choisi. Vers la droite : le preset s’applique pleinement. Vers la gauche : on revient progressivement vers le rendu neutre. Sans effet visible si Color look est sur neutral.

Highlight hue/sat et Highlight roll-off

Ces deux curseurs gèrent ce qui arrive aux couleurs quand une zone devient très lumineuse.

Highlight hue/sat (défaut 0 %, plage −100 % à +100 %) : corrige les dérives de teinte et de saturation propres aux hautes lumières (couchers de soleil saumon, ciels qui virent au magenta). Le masque s’active progressivement entre Jz = 0,20 et Jz = 0,90. Vers la droite : décalage vers le jaune/orange. Vers la gauche : décalage vers le bleu/cyan. À 0 : aucune correction.

Highlight roll-off (défaut 0 %, plage 0 % – 100 %) : désature progressivement les hautes lumières à partir de 80 % de luminosité, pour éviter les aplats de couleur saturée en limite de clipping. À 0 : aucun effet, les hautes lumières peuvent clipper avec leur teinte d’origine. Vers la droite : elles s’effacent plus franchement vers le neutre avant de clipper.

Color space (calcul de luminance)

Détermine les coefficients utilisés pour calculer la luminance servant de base au tone mapping, n’agit pas sur la compression de gamut, qui a ses propres curseurs plus bas. sRGB (Rec.709) utilise des coefficients standards à gamut étroit ; AdobeRGB des coefficients à gamut moyen ; Rec.2020 (recommandé pour les workflows HDR/ACES) couvre le gamut le plus large.

Gamut et options

Section repliable, dédiée à la gestion des couleurs hors gamut. Particulièrement utile en kinematic/dynamic (qui travaillent en JzAzBz) ; en Cinematic DRT, la compression est déjà gérée nativement en Oklab, mais ces curseurs restent actifs et peuvent être combinés au traitement interne pour un effet cumulé.

Compression smoothness (défaut 0 %, plage 0 % – 100 %) : active la compression de gamut et définit à partir de quel niveau de hautes lumières elle intervient. À 0 : aucune compression, risque de clipping sur les couleurs très saturées. Vers la droite : roll-off plus progressif et plus « professionnel » sur les couleurs les plus vives, sans toucher aux tons moyens.

Threshold cyan / magenta / jaune (défaut 15 % chacun, plage 0 % – 100 %) : définissent la portion de gamut protégée, à l’abri de toute compression, pour chacun des trois canaux. Vers la droite : plus de couleurs sont protégées, mais celles qui dépassent quand même la limite peuvent rester mal gérées. Vers la gauche : la compression intervient plus tôt, sur des couleurs moins extrêmes.

Limit cyan / magenta / jaune (défaut 20 % / 30 % / 20 %, plage 0 % – 100 %) : la distance à laquelle la compression de chaque canal sature. Vers la droite : compression plus forte, résultat plus saturé mais plus sûr. Vers la gauche : compression plus faible.

Purity boost (défaut 0 %, plage −50 % à +100 %) : ravive la pureté des couleurs après compression de gamut, en restant dans les limites autorisées. N’a d’effet que si Compression smoothness est activé. Vers la droite : couleurs plus pures après compression. Vers la gauche : compression supplémentaire, couleurs plus sages.

Fusion d’exposition

En mode scène, la fusion d’exposition n’est pas une vraie fusion HDR : elle sert de normalisation radiométrique avant le mapping tonal. Exposez pour les hautes lumières avant de l’activer.

  • Fusion : aucune, deux ou trois expositions à fusionner.
  • Exposure shift : nombre de diaphragmes séparant chaque exposition simulée.
  • Exposure bias : décale la fusion vers la préservation des hautes lumières (−1) ou des ombres (+1).
Workflow conseillé
  1. Choisissez le mode (kinematic, dynamic ou cinematic DRT) selon la dynamique de la scène.
  2. Affinez Highlight gain et Shadow correction en premier (Contrast à la place de Shadow correction en Cinematic DRT).
  3. Réglez Saturation boost pour le niveau global, puis Balance saturation si les ombres ou les hautes lumières paraissent ternes par rapport au reste.
  4. Appliquez un Color look si vous cherchez une ambiance particulière, et dosez avec Look opacity.
  5. N’ouvrez la section Gamut qu’en dernier recours, si des aplats saturés apparaissent dans les hautes lumières.
Retour en haut