Traitement des négatifs couleurs avec Affinity Photo

Démarré par frmfrm, Décembre 26, 2019, 20:50:35

« précédent - suivant »

frmfrm

Voila un petit truc que j'ai mis en place pour développer des négas couleurs avec Affinity Photo.

J'utilise un scanner Epson 3170 en mode raw, cad que je scanne en mode "Positif couleur" et que dans les paramètres de l'onglet "couleur" j'ai choisi d'utiliser "aucune correction de couleur".

Ensuite, je remonte l'image négative dans affinity photo et je lui attribue un profile "appleRGB" qui à un gamma de 1.8 proche celui de mon scanner.

Enfin le principal :

Se créer un filtre texture procédurale ( dans le menu "filtres/couleurs/texture procedurale" )

Utilise la formule suivante :

var g=vec3(1.8,1.8,1.8); var v1= pow(vec3(R,G,B),g) * vec3(0.21*(1-fr/4),0.81*(1-fg/4), 1.6*(1-fb/4)); (1-pow(v1*(1-lum)*10,1/g*(1+gamma/2))-0.5)*(1+2*con)+0.5

et cocher les canaux R G B

enfin, créer les variables :

fr, fb, fg, luminosity, contrast et gamma ( ce sont des variables de saisie de plage de [-1, 1] )

Ensuite, il ne reste plus qu'a jouer avec les curseur comme ci-dessous.

C'est une version beta :-), n'hésitez pas à laisser vos impressions sur l'utilisation du filtre dans ce fil.

frmfrm

Mince, p... de smiley ...

dans la formule , le bonhomme rigole remplace  "1.8 ) "

Sinon encore un  exemple avec un négatif de Superia Réala issu d'un modeste Diana tout plastique ( original) .

frmfrm

Voila une nouvelle formule qui déplace l'application du gamma après le contraste et qui a une nouvelle valeur par défaut. Ca me semble plus pratique ...

var g=vec3(1.8 ); var v1= pow(vec3(R,G,B),g) * vec3(0.21*(1-fr/4),0.81*(1-fg/4), 1.6*(1-fb/4)); pow((1-pow(v1*(1-lum)*10,1/g)-0.5)*(1+2*con)+0.5 ,vec3(1.6-gamma/1.5))

L'implémentation d'un curseur saturation ne me semble pas possible/simple. On peut quand même rajouter un calque de réglage TSI dans le process.

Ci-dessous, un exemple de dév. de Supéria Réala dans un flexaret VI...

frmfrm

#3
Bon ben le dernier truc avant d'aller au lit :-)

Pour traiter les négatifs noir et blanc, scanner les films comme précédemment et utiliser la formule suivante :

var g=vec3(1.8 ); var v1= pow(vec3(rgbtoi(1-R,1-G,1-B)),g); pow((pow(v1*(0.5+lum/1.2),1/g)-0.5)*(con+1)*3+0.5 ,vec3(1.6-gamma/1.5))

On ne conservera que les variables lum, con et gamma comme indiqué sur la capture ci-dessous.

Pour faire le kéké, j'ai rajouté dans le process une couche " Réglage courbes de transfert et dégradé", mais c'est po obligatoire :-)

frmfrm

Citation de: frmfrm le Décembre 27, 2019, 05:16:13

Pour traiter les négatifs noir et blanc, scanner les films comme précédemment et utiliser la formule suivante :
.....


En fait, ça n'est pas forcement vrai. Je scanne en raw et j'inverse le scan avant sauvegarde lorsque je travaille en noir et blanc. Ca permet de retrouver plus facilement les photos avec l'explorateur windows. Dans ce cas, la formule est la suivante :

var g=vec3(1.8 ); var v1= pow(vec3(rgbtoi(R,G,B)),g); pow((pow(v1*(0.5+lum/1.2),1/g)-0.5)*(con+1)*3+0.5 ,vec3(1.6-gamma/1.5))

Pour finir ce fil, une dernière tof au Kodak Retina II et Tri X développée avec Affinity Photo que j'aime de plus en plus ;-)


frmfrm

J'ai rajouté un bouton "mixage" qui permet de mixer la sortie avec une TRC en S ( sinusoidale toute simple).

Voir ci-dessous comment il est défini.

Formule pour les negs couleur :
var g=vec3(1.8 ); var v1= pow(vec3(R,G,B),g) * vec3(0.21*(1-fr/4),0.81*(1-fg/4), 1.6*(1-fb/4));  var v2=pow((1-pow(v1*(1-lum)*10,1/g)-0.5)*(1+2*con)+0.5 ,vec3(1.6-gamma/1.5)); var v3=smoothstep(vec3(0),vec3(1),v2);  scurveinterp(v2,v3,vec3(mixage))

Formule pour les negs BW :
var g=vec3(1.8 ); var v1= pow(vec3(rgbtoi(R,G,B)),g);   var v2=pow((pow(v1*(0.5+lum/1.2),1/g)-0.5)*(con+1)*3+0.5 ,vec3(1.6-gamma/1.5));  var v3=smoothstep(vec3(0),vec3(1),v2);  scurveinterp(v2,v3,vec3(mixage))

La photo en exemple est prise avec un Retina II et un film chinois que l'on ne trouve plus : l'ERA 100.

frmfrm

#6
J'ai encore rajouté des curseurs mais le calvaire touche à sa fin :-)

rshad, gshad et bshad permettent de corriger les dominantes dans les ombres.

la nouvelle formule :

var g=vec3(1.8 ); var v1= pow(vec3(R,G,B),g) * vec3(0.21*(1-fr/4),0.81*(1-fg/4), 1.6*(1-fb/4));  var v2=pow((1-pow(v1*(1-lum)*10,1/g)-0.5)*(1+2*con)+0.5 ,vec3(1.6-gamma/1.5)); var v3=smoothstep(vec3(0),vec3(1),v2);  var v4=scurveinterp(v2,v3,vec3(mixage)); v4*(1+(1-smoothstepsqi(vec3(0),vec3(0.8 ),v4))*vec3(rshad/1.5,gshad/1.5, bshad/1.5))
[Edit] Ci-dessous, une photo faite au Flexaret Std et de la Superia Reala.

smoothstep , scurveinterp , smoothstepsqi


frmfrm

Pour finir le WE, j'ai encore ajouté un curseur "offset" qui complète le curseur luminosité. L'un ajoute une valeur dans le domaine non linéaire, l'autre la multiplie dans le domaine linéaire.

J'ai aussi modifié l'efficacité de certains curseur.

Formule BW :
var g=vec3(1.8 ); var v1= pow(vec3(rgbtoi(R,G,B)),g);   var v2=pow(((pow(v1*(0.5+lum/10),1/g)+offset/20)-0.5)*(con+1)*3+0.5 ,vec3(1.6-gamma/1.5));  var v3=smoothstep(vec3(0),vec3(1),v2);  scurveinterp(v2,v3,vec3(mixage))

Formule Couleur :
var g=vec3(1.8 ); var v1= pow(vec3(R,G,B),g) * vec3(0.21*(1-fr/3),0.81*(1-fg/3), 1.6*(1-fb/3));  var v2=pow(((1-pow(v1*(1-lum)*10 ,1/g)+offset/2)-0.5)*(1+con)+0.5,vec3(1.6-gamma/1.5)); var v3=smoothstep(vec3(0),vec3(1),v2);  var v4=scurveinterp(v2,v3,vec3(mixage)); v4*(1+(1-smoothstepsqi(vec3(0),vec3(0.8),v4))*vec3(rshad,gshad, bshad))

Enfin, j'ai mis en ligne 2 fichiers à importer dans Affinity Photo pour ne pas avoir à rentrer toutes les variables à la main :

http://dl.free.fr/osALLedWI

Pour les importer, dans la fenêtre des textures procédurales,  menu Préréglages / Gérer les préréglages / Importer des préréglages.


Fred_G

Je ne comprends RIEN à ce que tu fais, mais je trouve ça très intéressant. Et comme je découvre Affinity, j'essaierai d'étudier tout ça après les fêtes.

Si ce n'est pas indiscret, qu'est-ce qui a motivé tes recherches ? Pourquoi as-tu développé tout ça plutôt que d'utiliser les logiciels connus de scan ?
The lunatic is on the grass.

Doc Henry

Beau travail . Merci pour les posts !
Ton scanner Epson a un logiciel d'usine  livré avec non ? ça donne quoi ?
J'avais un V700 et il y a Silver Fast livré en plus du logiciel scan de Epson
Bon réveillon
H

frmfrm

Merci à vous deux.

Je scanne effectivement avec 2 vieux Epson, un 2450 pour les PF et un 3170 pour le reste. Je fais principalement du noir et blanc et si j'ai eu à disposition vuescan et silverfast, j'ai bien vite arrêté de les utiliser. Je préfère  sauvegarder mes scans au niveau le plus bas possible, sans valeur ajouté par un logiciel. J'utilise donc Epson Scan sans gestion des couleurs. Pour jouer sur la luminosité des scans, je place du spun/des gélatines diffusantes lee filter dans la zone de calibration du scanner et cela me suffit pour sauvegarder des tif 16 bits. Après je retravaille les tif dans photoshop ou maintenant affinity.

Reste que la semaine dernière, je suis tombé sur un post de Joubert qui mentionnait le site d'Alex Burke et je suis tombé sur l'article suivant :

https://www.alexburkephoto.com/blog/2019/10/16/manual-inversion-of-color-negative-film

J'ai essayé la méthode sur Affinity , mais je n'ai pas été satisfait du process donc j'ai essayé d'améliorer le truc.

En modifiant 2 ou 3 constantes des formules que j'ai donné, on doit pouvoir adapter le développement au film, au scanner ( ou l'apn pour ceux qui font de la repro) et régler la sensibilité des curseurs.

Reste que l'on peut ensuite affiner le développement avec des fonctionnalités classiques d'Affinity.


Arnaud17

Sans en comprendre toutes les finesses je vois qu'Affinity sait prendre un fichier en sortie de scan et en faire une image plus que potable.
Dans le temps il y avait easyshare de polaroid qui permettait de redonner une santé aux diapos mais ce soft semble avoir sombré avec polaroid.
Perso, quand j'ai quelque chose à faire avec Affinity, je cherche sur youtube et je trouve, je n'ai pas encore été déçu.
Merci en tout cas pour les explications, c'est sympa de partager ton savoir.
veni, vidi, vomi

titisteph

Merci pour le partage, même si je ne pourrai jamais appliquer ta méthode (je ne numérise plus mes négatifs avec un scanner, je fais des repros avec APN), et celle que j'emploie me satisfait, même si elle est très difficile (c'est tout à l'oeil, et j'aurais bien aimé automatiser un peu le process, mais pas possible).

Je salue néanmoins le travail accompli , c'est sympa d'en faire profiter d'autres.

frmfrm

Merci aussi à vous deux.

Sinon, ça devrait aussi marcher un peu pour la repro.

Voila le résultat d'une repro faite à l'arrache avec appareil à main levé au 1/30,  bague allonge et négatif collé sur la vitre de mon bureau :-)

La seule différence avec mon scanner se situe au niveau des coefficients qui annulent le plus gros de la coloration du néga.

pour mon scanner :
var v1= pow(vec3(R,G,B),g) * vec3(0.21*(1-fr/3),0.81*(1-fg/3), 1.6*(1-fb/3));

pour la repro :
var v1= pow(vec3(R,G,B),g) * vec3(0.45*(1-fr/3),0.75*(1-fg/3), 1.1*(1-fb/3));

Le principal est de partir d'une base linéaire. Voir ici ( ne pas tenir compte de la partie calibration ) :

https://www.chassimages.com/forum/index.php/topic,298820.0.html

Puis il suffit d'attribuer le profil appleRGB à l'image développée pour ne pas partir d'une image trop saturée.

Si tu peux mettre en ligne un de tes raw sur free ( http://dl.free.fr ), je pourrais regarder si on peut arriver à quelque chose avec Affinity.

titisteph

Merci d'avoir essayé, ton système semble convaincant. Mais je préfère ne pas te fournir d'image, simplement parce que je ne veux pas te donner du travail, alors que je sais que je n'en aurai pas l'usage (je ne souhaite pas changer de logiciel).
Mais c'est bien que d'autres en aient connaissance.

frmfrm

Citation de: titisteph le Décembre 31, 2019, 14:02:00
... Mais je préfère ne pas te fournir d'image, simplement parce que je ne veux pas te donner du travail, alors que je sais que je n'en aurai pas l'usage (je ne souhaite pas changer de logiciel).

Y'a pas de blème ;-)

Jean-Claude

chapeau pour le gros boulot de paramétrisation dans Affinity  :)

frmfrm

Citation de: Jean-Claude le Décembre 31, 2019, 15:03:47
chapeau pour le gros boulot de paramétrisation dans Affinity  :)

Merci Jean-Claude.

Le gros boulot a surtout porté sur le décryptage des fonctionnalités d'Affinity car cette partie est très peu documentée. On a le nom des fonctions mais pas d'informations sur ce qu'elles permettent :-)

jbpfrance

Superbe, j'ai des plaques de verre et je viens d'acheter Affinity, je sais ce qu'il me reste à faire !

frmfrm

Pour faire suite à une discussion sur la section Leica, voici ma dernière version de filtre Texture Procédurale pour développer les négas couleur.

La formule à utiliser est la suivante :

var v1= (vec3(R,G,B)* vec3(0.97*(1-fr/3),2.12*(1-fg/3), 3.09*(1-fb/3))-offset/2)*(1-lum*2);  var v2=pow((0.5-v1)*(1+con/2)+0.5,vec3(1.5-gamma/1.2)); var v3=smoothstep(vec3(0),vec3(1),v2);  var v4=scurveinterp(v2,v3,vec3(mixage)); v4*(1+(1-smoothstepsqi(vec3(0),vec3(0.8),v4))*vec3(rshad*2,gshad*2, bshad*2))

Et l'exemple suivant montre les curseurs à créer.

Pour le développement procéder de la façon suivante :

1- Pousser vers la droite le curseur offset et descendre le curseur luminosité pour régler le contraste général ( on bosse sur un néga :-) ).
2 - Neutraliser la balance des blancs et le masque orange avec les curseurs  Rouge, vert et Bleu.
3 - régler la gradation de la photo avec les curseurs gamma et scurve.
4 - Affiner les dérives dans les BL avec les curseurs red shadows, green shadows et blue shadows..

Dans l'exemple ci-dessous, le néga est issu d'un Diana. Il est sous-exposé et des infos se trouvent dans le pied de courbe. Ces infos ne peuvent pas être corrigés avec les curseur RGB principaux sans changer la tonalité générale. Il faut utiliser les curseurs RGB shadows.

rico7578

Le rendu des couleurs obtenu est chelou tout de même je trouve non ?
Pas super convaincu par les résultats perso...
Et en noir et blanc, il suffit d'inverser la courbe des tonalités

titisteph

Moi non plus, je ne trouve pas que les résultats vaillent la peine de tout ce travail.

Mais bravo quand même!

frmfrm

Avez vous testé le bidule ? ;-)

Il me semble que le vrai résultat ne peut se juger qu'après essai car mes négatif couleurs sont vraiment pas terribles et difficiles à traiter.

Pour les négas NB, l'avantage peut effectivement ne se situer qu'au niveau de l'ergonomie, enfin il me semble, et là encore çà me semble difficile à juger sans tester ...

Enfin, ça n'est pas du travail, mais juste un amusement . Mon 2ème prénom est curiosité, et ce petit développement m'a servi de banc d'essai pour découvrir/analyser certains problèmes . Le temps passé me semble plutôt bien perdu mais effectivement, chacun perd son temps comme il l'entend ;-)

frmfrm

Une autre photo en exemple rapide ;-)

Le problème sur celle-ci, c'est que le terrain était lourd ( c'est pas le seul il parait )  et que je suis parti d'une photo 8 bits, mais surtout non linéaire . Le résultat n'est surement pas top , mais la photo mérite-t-elle beaucoup plus ;-)

rico7578

A gauche le résultat avec le plugin d'inversion de négatifs "NegativeLabPro" pour Lightroom, à droite ton résultat :



Y'a qd même pas photo, même si en effet, c'est pas la plus jolie image du monde ;)