Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Convertir Film Emulation de G'Mic en DTStyle
#21
Bonne idée que de comparer les résultats des DTStyles produits non pas aux JPEG Fuji, mais à ce que produisent les LUT sortis de RAWThrerapee. Ce que ça permettra surtout, c'est d'enlever toute espèce d'accentuation, de réduction de bruit, de récupération de hautes lumières etc. Parce que les fichier Fuji sont (très) traités avec une accentuation que je n'oserais pas appliquer à un RAW et que du reste, je ne saurais par reproduire fidèlement dans DT. Du coup, toutes les mesures de similarité basées sur la luminosité sont une peu faussées par ce type de problème. Avec ton idée, on peut enlever tous les traitements dans RT comme DT, ne laisser que le dématriçage (même algo) et le style. Là on pourra comparer quelque chose. J'ai essayé de commença mais chez moi, RT plante lamentablement dès que j'essaie de décocher une checkbox ;(

Ceci dit, pour limiter les effets que les différences de traitement (accentuation, bruit etc) entraîent sur la luminosité, j'ai pris plus de fichiers RAW avec leur contrepartie JPG boîtier Fuji,pour à la fin moyenner. J'ai mis tous mes fichiers ici si ça peut éviter à quelqu'un de refaire un boulot, ou bien pour reprendre les RAW avec les références Fuji qui vont bien. C'est dans le dossier TESTS de http://ovh.to/LXHJnC (c'est un peu gros, il y en a pour 2.5Go en tout). Les fichiers ont été exportés en JPG en réduisant le bruit de couleurs mais pas celui de luminance.

L'analyse des luminosités moyennes des fichiers traités fait apparaître que la meilleure correction à appliquer à la mire de base est -0.23EV

J'entreprends donc de refaire tous les styles Fuji en appliquant ce décalage. Avec le style Provia, ce n'est pas toujours complètement exact mais c'est quand même pas mal. Plus précis, on en vient à faire à des mouches ce que la morale réprouve.

J'ai essayé de faire avec GIMP mais je n'ai pas trouvé comment appliquer une compensation en EV. Il y a bien une compensation en luminosité mais ce n'est pas pareil.

PS : quand vous postez des fichiers, vous utilisez quoi qui permette de les conserver longtemps en ligne ? Je n'ai que des trucs à 30j.
Répondre
#22
J'ai terminé. J'ai mis le résultat ici : https://drive.google.com/file/d/1O5S7b8i...sp=sharing

Premiers tests concluants même en ajoutant une réduction de bruit de luminance, de la netteté et du contraste local, mais en laissant telle quelle l'exposition.

Les Provia sont bien. Dans mes images de tests il y en a une dont j'ai le JPEG boîtier avec le style ClassicChrome et ça donne ça :

[Image: DSCF0228.jpg]
[Image: 9758657615.jpg]
Le contraste n'est pas parfaitement identique mais surtout, la couleur du blouson est très très différente. Ca doit venir des LUTs originaux, à moins que ce ne soit l'histoire des 49 qui soit effectivement grave. Mais dans tous les cas, c'est un peu hors de mes compétences et possibilités d'intervention. Au moins niveau workflow, on n'est plus obligé de retoucher son expo à chaque fois qu'on applique un style Fuji. C'était mon objectif de départ donc je suis content Wink

Je n'ai vraiment aucune idée de comment faire mieux. Dans l'image ci-dessus, on dirait que le DTStyle n'accroche pas de point noir aussi bien que le JPG boîtier (mais en veut-on pour simuler un négatif "vintage" ?). Et on en revient aux conversions bizarres des PNG du tout début, avec des choses comme ça :

[Image: Fuji_XTrans_III_Classic_Chrome.png]
[Image: hald_clut_4_with_gradient.png]

...qui laissent apparaître des trucs bizarres dans les ombres (voir les motifs du haut, pas monotones par rapport à la cible en bas, avec des éclaircissements importants des ombres très foncées). Donc s'il y a un truc qui ne va pas, ça doit être dans les LUT directement. Le processus de conversion de JPG54 me semble au point. Et ces histoires de compensation d'expo, je rappelle que ce n'est QUE pour les styles Fuji (il y a un truc bizarre qui se passe pour ces ceux-ci en particulier).

Ces styles sont en tous cas pal mal au final. Ils sont peu nombreux mais bien ciblés, donc faciles à employer parce qu'ils permettent rapidement d'avoir un peu de souplesse sur le N&B (avec des proirités RGB), et pour la couleur d'avoir facilement en avec juste 4 styles une gradation avec une gradation du "punch" entre Classic Chrome - Provia - Astia - Velvia (plus les deux ProNeg), ce qui permet de développer très vite de la table lumineuse. Je les trouve mieux que les DXO, en fait, qui sont également trop nombreux (120) pour être facilement utilisables dans un contexte de workflow rapide.

[Image: 0_classic.jpg]
[Image: 1_provia.jpg]
[Image: 2_astia.jpg]
[Image: 3_velvia.jpg]
Répondre
#23
Pour mieux comprendre, je suis parti de https://github.com/PkmX/darktable/tree/h...ut2dtstyle et c'est éclairant.

En fait, imagemagick (convert) permet de produire des mires avec des commandes de type :

Code :
convert \( \( "hald:${chartsize}" \) \( -size 32x1 gradient: \) -append -depth 8 -colorspace sRGB \) -filter point -resize 200% "${workdir}/identity.png"

où ${chartsize} est à remplacer par 4 ou 5, et où ${workdir}/identity.png peut être remplacé par le nom du fichier de charte qu'on veut produire. Ca donne des chartes comme ça :

[Image: identity.png]

 
et c'est exploitable avec des fichier cht comme https://github.com/PkmX/darktable/blob/h...dclut5.cht
Je tâtonne encore et ce ne sont que des pistes mais j'ai quand même pu produire un DTSyle avec ça, sans passer par l'étape supplémentaire hald_clut_4_with_gradient.png mais en restant avec ces mires là, super précises.
En revanche, la production du .dtstyle avec 49 patches a pris 5 bonnes minutes avec mon CPU chauffé à blanc. Piste à suivre à mon avis...
Répondre
#24
Je regarde de mon côté. Merci pour tes recherches, je n'avais juste essayé de reproduire le tuto fait en anglais et je n'avais pas cherché à comprendre ce qu'il avait été fait.

J'ai pas compris comment tu fais après et aussi pour faire le .png ?
Répondre
#25
Tous les fichiers nécessaires sont ici : https://github.com/PkmX/darktable/tree/h...ut2dtstyle

Si on veut faire avec HALD en 4 lignes par "bande" horizontale, on interprètera les mires avec haldclut4.cht. Si on veut faire des mires HALD plus précises avec 5 lignes par "bande" horizontale, c'est avec haldclut4.cht qu'on les calera dans darktable-chart.

Quelques lignes de commandes :

Pour créer une mire "identité" identity4.png (la source qui va bien) avec 4 bandes (pour 4 bandes, remplacer les 4 par des 5 dans ce qui suit et le reste) :


Code :
convert \( \( hald:4 \) \( -size 32x1 gradient: \) -append -depth 8 -colorspace sRGB \) -filter point -resize 200% identity4.png

Pour transformer cette mire en PFM avec la ligne de commande donc sans risque d'avoir activé je ne sais quel module dans l'IG de DT , on peut employer l'une des 2 commandes suivantes :


Code :
darktable-cli identity4.png to-lab-23.xmp identity4-23.pfm
darktable-cli identity4.png to-lab.xmp identity4.pfm

Là où il ya des 23, c'est que j'ai fait un .xmp maison qui ajoute juste une sous-expo de -0.23EV. Le fichier to-lab-23.xmp est :

Code :
<?xml version="1.0" encoding="UTF-8"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
 <rdf:Description rdf:about=""
   xmlns:xmp="http://ns.adobe.com/xap/1.0/"
   xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:darktable="http://darktable.sf.net/"
  xmp:Rating="1"
  xmpMM:DerivedFrom="identity4.png"
  darktable:xmp_version="2"
  darktable:raw_params="0"
  darktable:auto_presets_applied="1"
  darktable:history_end="2">
  <dc:creator>
   <rdf:Seq>
    <rdf:li>Temperdu</rdf:li>
   </rdf:Seq>
  </dc:creator>
  <dc:publisher>
   <rdf:Bag>
    <rdf:li>photo@temperdu.fr</rdf:li>
   </rdf:Bag>
  </dc:publisher>
  <dc:rights>
   <rdf:Alt>
    <rdf:li xml:lang="x-default">comme vous voulez</rdf:li>
   </rdf:Alt>
  </dc:rights>
  <darktable:mask_id>
   <rdf:Seq/>
  </darktable:mask_id>
  <darktable:mask_type>
   <rdf:Seq/>
  </darktable:mask_type>
  <darktable:mask_name>
   <rdf:Seq/>
  </darktable:mask_name>
  <darktable:mask_version>
   <rdf:Seq/>
  </darktable:mask_version>
  <darktable:mask>
   <rdf:Seq/>
  </darktable:mask>
  <darktable:mask_nb>
   <rdf:Seq/>
  </darktable:mask_nb>
  <darktable:mask_src>
   <rdf:Seq/>
  </darktable:mask_src>
  <darktable:history>
   <rdf:Seq>
    <rdf:li
     darktable:operation="colorout"
     darktable:enabled="1"
     darktable:modversion="4"
     darktable:params="060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     darktable:multi_name=""
     darktable:multi_priority="0"
     darktable:blendop_version="7"
     darktable:blendop_params="00000000180000000000c842000000000000000000000000000000000000000000000000000000000000000000000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f"/>
    <rdf:li
     darktable:operation="exposure"
     darktable:enabled="1"
     darktable:modversion="5"
     darktable:params="00000000000000003e8b6cbe00004842000080c0"
     darktable:multi_name=""
     darktable:multi_priority="0"
     darktable:blendop_version="7"
     darktable:blendop_params="00000000180000000000c842000000000000000000000000000000000000000000000000000000000000000000000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f00000000000000000000803f0000803f"/>
   </rdf:Seq>
  </darktable:history>
 </rdf:Description>
</rdf:RDF>
</x:xmpmeta>

Là, on a soit un fichier identity4.png soit identity4-23.png selon qu'on ait sous-ex ou pas. Supposons pour la suite j'ai sous-ex. ans tous les cas, l'étape suivante consiste à transformer identity4.png avec le HaldCLUT qui va bien. Je peux obtenir un provia-cible4 avec la commande  :

Code :
convert identity4.png provia-hc.png -hald-clut provia-cible4.png

et le transformer en provia-cible4.pfm (ici de toutes façons sans correction d'expo) :

Code :
darktable-cli provia-cible4.png to-lab.xmp provia-cible4.pfm

Enfin, je lance darktable-chart avec une des commandes suivantes, selon que je souhaite la correction d'expo ou non :

Code :
darktable-chart identity4-23.pfm haldclut4.cht provia-cible4.pfm
darktable-chart identity4.pfm haldclut4.cht provia-cible4.pfm


Ca devrait ouvrir darktable-chart avec les bons fichiers. Pour le reste vous savez.

Je n'arrive pas à reproduire mais je poste quand même parce que ça m'a pris du temps. Chez moi ça a vraiment marché une fois.. Pourtant, je ne crois pas avoir changé quoi que ce soit. Bizarre...

Mon point de départ est : https://framadrop.org/r/Sa_sRIxAZU#KDxlt...KU2CDfiuUM=
Répondre
#26
Ouf, va me falloir du temps pour diriger tout ça.
Répondre
#27
En fait, c'est juste une manière de produire les png avec convert au lieu de gimp, et de produire les pfm en ligne de commande. Les étapes sont finalement les mêmes que sur ton tuto. J'aimerais juste pouvoir aller vers une automatiqation. Mais ce qui est écrit là ne marche plus (alors que je ne crois pas avoir changé quoi que ce soit depuis que ça marchait : j'avais même produit un DTStyle comme ça, sans IG).

Ignore la partie xmp spécifique avec correction d'expo. C'est pour après, quand ça marchera !
Répondre
#28
J'ai bossé un peu de mon côté, j'ai fait des tests sur 2 de mes photos que j'ai traité avec Fuji XTrans III - Provia dans RawTerapee, G'mic et darktable :
https://framadrop.org/r/lzAJC0NIoY#O2uDy...szTMvlNwD0=
j'ai aussi mis les exports des 2 photos tel qu'elles sont ouvertes dans ces 3 logiciels.
Répondre
#29
Je vais regarder. Ce que je voulais faire ne marche pas. Dans la version qui est installée chez moi, la commande darktable-chart n'accepte pas toutes les options qui lui permettraient d'automatiser complètement. Il manque par exemple le 49, le fichier de sortie ainsi que le nom du style. Résultat, on en est réduits à employer l'interface graphique.

Cependant, j'ai esayé de limiter au maximum la pénibilité de la chose et j'ai scripté ce qui pouvait l'être. Résultat : une commande qu'on invoque avec deux paramètres :

Code :
./lut2dts.sh classic-chrome.png 23

Le png, c'est le fichier haldlut et le 23, c'est pour spécifier si on veut une correction. Ca suppose des fichiers xmp préparées. J'en ai mis 2 : un pour une correction de 00 et l'autre pour une correction de 23 (pour 0.23EV).

Ca produit dans un dossier RESULTAT tout ce qu'il faut pour darktable-chart. Ca lance même darktable-chart en positionnant les fichier PFM etc. J'ai également mis des bordures à la mire parce que je n'en pouvais plus de tirer les 4 coins à chaque fois. Il ne reste plus à l'utilisateur qu'à utiliser le dernier onglet. Plus de GIMP, de RT ou de DT à lancer. C'est bcp plus rapide comme ça.

Les fichiers sont là (avec un dossier ressources qu'il faut mettre) : https://framadrop.org/r/8LfY1TTowC#OQXeH...Kp4YbkNWBg=

J'ai mis juste deux haldclut (provia et classic-chrome) pour tester. Le lancement se fait dans un terminal avec pour répertoire courant le dossier contenant le script lut2dts.sh

Essaie, tu m'en diras des nouvelles Wink Donc avec 00 pour  aucune correction, et avec 23 pour les styles Fuji.

Je reproduis juste le script ici :

Code :
#!/bin/bash

# par @temperdu
# largement inspiré de https://github.com/PkmX/darktable/blob/haldclut2dtstyle/tools/haldclut2dtstyle/haldclut2dtstyle.sh

expo=$2
resdir="RESULTATS"
workdir=$(mktemp -d)
trap "rm -r ${workdir}" EXIT

if (( $# == 0)); then
   echo USAGE : lut2dts.sh haldclut.png correction-expo - par exemple 00 pour aucune correction
   exit 0
else
   echo Conversion de $f
   echo =======================================================================================================================
   echo Utilisation du répertoire temporaire $workdir
fi

if [ ! -f  ressources/to-lab-$expo.xmp ] ; then
   echo RESSOURCE MANQUANTE. Typiquement, le 2ème paramètre doit être un nb sur 2 chiffres indiquant une correction d\'exposition pour laquelle un fichier xmp a été prévu.
   echo USAGE : lut2dts.sh haldclut.png correction-expo avec par exemple 00 pour aucune correction
   exit 0
fi

mkdir "$resdir"
rm -rf $resdir/identity*

f="$1"

echo DT : Conversion de la mire "ressources/haldclut4xl.png" en PFM "$resdir/identity-$expo.pfm"
darktable-cli "ressources/haldclut4xl.png" "ressources/to-lab-$expo.xmp" "$resdir/identity-$expo.pfm"

echo IM : Application du HaldCLUT à $fichier pour produire "$workdir/output.png"
convert "ressources/haldclut4xl.png" "$f" -hald-clut "$workdir/output.png"

echo DT : Conversion du résultat en PFM dans $resdir
darktable-cli "${workdir}/output.png" ressources/to-lab-$expo.xmp "$resdir/${f%.png}.pfm"

echo Allez dans le dernier onglet. Vous êtes en train de produire "${f%.png}.dtsyle"

echo =======================================================================================================================
echo

darktable-chart "$resdir/identity-$expo.pfm" ressources/haldclut4xl.cht "$resdir/${f%.png}.pfm"
Répondre
#30
Ca coince avec haldclut4.cht avec la premère version :
Code :
jpg@jpg-HP-ProBook-4535s /media/jpg/2604460E2D3538C2/Travail/Nouveau DTStyle/Essai $ darktable-chart identity4.pfm
unknown keyword `PF'
error parsing CHT file, (parse_cht:487)
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 4 visiteur(s)