Spektrafilm darktable module implementation discussion

No, I have no idea how to do that. I guess I have to wait for this module to be included in the official release.

I don’t think that will happen anytime soon. Better try building it yourself

1 Like

Thanks, I will try.

There seems to be an initializing issue with the “auto print exposure” option. It’s shown off by default, but I have to turn it on and off again to really turn it off (i.e. for film exposure to have an effect).

edit: superseded by the PR

I created a PR for others to look at or maybe start the inclusion process Initial darktable spektrafilm (dev branch) module by piratenpanda · Pull Request #21534 · darktable-org/darktable · GitHub

5 Likes

Good initiative. I think it would be nice to have a test suite which runs images through this module and spektrafilm and compares the outputs. This way the darktable team will be able to find when there are divergences in both algorithms as spektrafilm improves and gets updated over time. If not it seems like it will be a mess trying to keep up or guarantee that we are getting the same results with both solutions. If the results are not equal, at least for me, it doesn’t motivate me to use the module.

4 Likes

Good idea. Let me try to build one

Just a heads-up that equal and visually indistinguishable are often two quite different things in graphics! So when building a test suite, it’s a good idea to leave at least grain out of an automatic comparison suite. Also, exposure and other pre-processing steps might be hard to match exactly.

1 Like

Usually one of the ways to pre-process for spektrafilm is through darktable, so on that front there won’t be an issue, as you can make sure your input is exactly the same

1 Like

We created a testing tool that runs spektrafilm and darktable-cli with the same inputs then compares the outputs.

darktable-spektrafilm-compare.py (44.4 KB)

With

./darktable-spektrafilm-compare --debug
pack        /home/panda/.config/darktable/spektrafilm  (spektrafilm 0.3.3)
darktable   darktable 5.7.0+67~g44ed963cae-dirty
spektrafilm /home/panda/spektrafilm/src/spektrafilm
lattice     17^3 = 4913 samples   quality=standard
combos      22

OK   fujifilm_xtra_400+fujifilm_crystal_archive_typeii mean   0.251  p95   0.653  max    2.687   worst at rgb(0.00,0.00,0.88)
OK   kodak_portra_800_push2+kodak_portra_endura     mean   0.221  p95   0.575  max    4.172   worst at rgb(0.00,0.00,0.38)
OK   fujifilm_c200+fujifilm_crystal_archive_typeii  mean   0.219  p95   0.526  max    1.781   worst at rgb(0.00,0.00,0.88)
OK   kodak_portra_800_push1+kodak_portra_endura     mean   0.211  p95   0.516  max    2.243   worst at rgb(0.00,0.00,0.38)
OK   kodak_ektar_100+kodak_portra_endura            mean   0.194  p95   0.432  max    1.197   worst at rgb(0.00,0.00,0.06)
OK   fujifilm_pro_400h+fujifilm_crystal_archive_typeii mean   0.191  p95   0.414  max    1.010   worst at rgb(0.00,0.00,0.06)
OK   kodak_portra_400+kodak_portra_endura           mean   0.194  p95   0.412  max    0.837   worst at rgb(0.00,0.00,0.06)
OK   kodak_vision3_250d+kodak_2383                  mean   0.196  p95   0.402  max    0.801   worst at rgb(0.31,0.31,1.00)
OK   kodak_vision3_50d+kodak_2383                   mean   0.188  p95   0.400  max    0.698   worst at rgb(0.25,0.44,0.44)
OK   kodak_verita_200d+kodak_2383                   mean   0.195  p95   0.396  max    0.949   worst at rgb(0.00,0.00,0.25)
OK   kodak_portra_800+kodak_portra_endura           mean   0.189  p95   0.390  max    1.150   worst at rgb(0.00,0.00,0.06)
OK   kodak_ultramax_400+kodak_portra_endura         mean   0.190  p95   0.390  max    1.047   worst at rgb(0.00,0.00,0.06)
OK   kodak_portra_160+kodak_portra_endura           mean   0.187  p95   0.385  max    0.943   worst at rgb(0.00,0.00,0.06)
OK   kodak_vision3_500t+kodak_2383                  mean   0.191  p95   0.376  max    0.723   worst at rgb(0.19,0.25,0.00)
OK   kodak_vision3_200t+kodak_2383                  mean   0.184  p95   0.372  max    1.247   worst at rgb(0.00,0.00,0.19)
OK   kodak_gold_200+kodak_portra_endura             mean   0.167  p95   0.330  max    0.913   worst at rgb(0.25,0.06,0.00)
OK   fujifilm_velvia_100[scan]                      mean   0.176  p95   0.302  max    1.012   worst at rgb(0.00,0.00,0.06)
OK   kodak_ektachrome_100[scan]                     mean   0.147  p95   0.263  max    0.611   worst at rgb(0.00,0.00,0.06)
OK   fujifilm_provia_100f[scan]                     mean   0.144  p95   0.251  max    0.562   worst at rgb(0.00,0.00,0.06)
OK   kodak_kodachrome_64[scan]                      mean   0.148  p95   0.241  max    0.773   worst at rgb(0.00,0.00,0.06)
OK   kodak_trix[scan]                               mean   0.013  p95   0.047  max    0.421   worst at rgb(0.00,0.00,0.25)
OK   kodak_doublex[scan]                            mean   0.010  p95   0.029  max    0.206   worst at rgb(0.00,0.00,0.06)

no divergences above threshold

22 ok, 0 diverging, 0 errors

5 Likes

Well, in the end, after a few attempts, I managed to build darktable and install the spektrafilm module. The films and paper are showing up, but the problem is that when I select a film stock and move the sliders, nothing happens. Could it be that the .cube files are not in the right place?

1 Like

which one did you compile? The latest from the PR? This doesn’t use cube files.

According to darktable user manual - configuration directory

You need to point the python script to:

Windows: `%LOCALAPPDATA%\darktable`

* E.g. `C:\Users\<username>\AppData\Local\darktable`
1 Like

I was thinking about reducing the height and offering the other options under a drop down section. What do you think about that? Open for suggestions to improve it. The ordering is still rather random.

Maybe have the enable grain/halation still in the always visible part?

2 Likes

I think the shown setup makes sense; Having “enable grain” and “enable halation” on the main panel would be useful, too.

Also: Seeing Spektrafilms controls in a dt-panel is exciting :smiley: .

2 Likes

i would guess most people want the film printed and not only scanned? Maybe move “scan only, skip printing” to the extended section?

1 Like

It’s used for the positive films. But yeah as this is rather something automatic its not really neccessary there

For negative film:

For positive film:

Agreed. Looks cleaner

2 Likes

Could it could be a choice in the “print paper” (print paper = skip print), to avoid an additional line?