released vkdt 0.5.0

Much better.

Now the tail of my output looks like this:

[nprof] WARN: reducing expectations 1x because we collected very few valid samples!
[o-jpg] writing ‘Nikon-Z 9-20000.nprof’
mv: cannot stat ‘’: No such file or directory
[ERR] no nodes created!
mv: cannot stat ‘’: No such file or directory
[ERR] no nodes created!
[nprof] WARN: reducing expectations 1x because we collected very few valid samples!
[o-jpg] writing ‘Nikon-Z 9-25600.nprof’
mv: cannot stat ‘’: No such file or directory
[ERR] no nodes created!
mv: cannot stat ‘’: No such file or directory
[ERR] no nodes created!
mv: cannot stat ‘’: No such file or directory
[ERR] no nodes created!

I’m not sure where the ERR are coming from, or where the mv command is coming from. My script looks like this:

for i in ls ~/vkdt-noise-profile-raws; do ./noise-profile.sh ~/vkdt-noise-profile-raws/$i; done

If I do ls -l against data/nprof I see:

[colinadams@fedora bin]$ ls data/nprof -l
total 108
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:52 ‘Nikon-Z 9-10000.nprof’
-rw-r–r–. 1 colinadams colinadams 15 Jan 4 10:51 ‘Nikon-Z 9-1000.nprof’
-rw-r–r–. 1 colinadams colinadams 15 Jan 4 10:51 ‘Nikon-Z 9-100.nprof’
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:51 ‘Nikon-Z 9-1250.nprof’
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:51 ‘Nikon-Z 9-125.nprof’
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:52 ‘Nikon-Z 9-12800.nprof’
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:52 ‘Nikon-Z 9-16000.nprof’
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:51 ‘Nikon-Z 9-1600.nprof’
-rw-r–r–. 1 colinadams colinadams 17 Jan 4 10:51 ‘Nikon-Z 9-160.nprof’
-rw-r–r–. 1 colinadams colinadams 15 Jan 4 10:52 ‘Nikon-Z 9-20000.nprof’
-rw-r–r–. 1 colinadams colinadams 15 Jan 4 10:51 ‘Nikon-Z 9-2000.nprof’
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:51 ‘Nikon-Z 9-200.nprof’
-rw-r–r–. 1 colinadams colinadams 15 Jan 4 10:51 ‘Nikon-Z 9-2500.nprof’
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:51 ‘Nikon-Z 9-250.nprof’
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:52 ‘Nikon-Z 9-25600.nprof’
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:51 ‘Nikon-Z 9-3200.nprof’
-rw-r–r–. 1 colinadams colinadams 15 Jan 4 10:51 ‘Nikon-Z 9-320.nprof’
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:51 ‘Nikon-Z 9-4000.nprof’
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:51 ‘Nikon-Z 9-400.nprof’
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:51 ‘Nikon-Z 9-5000.nprof’
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:51 ‘Nikon-Z 9-500.nprof’
-rw-r–r–. 1 colinadams colinadams 15 Jan 4 10:51 ‘Nikon-Z 9-6400.nprof’
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:51 ‘Nikon-Z 9-640.nprof’
-rw-r–r–. 1 colinadams colinadams 17 Jan 4 10:55 ‘Nikon-Z 9-64.nprof’
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:51 ‘Nikon-Z 9-8000.nprof’
-rw-r–r–. 1 colinadams colinadams 16 Jan 4 10:51 ‘Nikon-Z 9-800.nprof’
-rw-r–r–. 1 colinadams colinadams 17 Jan 4 10:55 ‘Nikon-Z 9-80.nprof’

hm. and the files are created now? the dates look like some of them are old and were already there?

maybe use ls -1 to make sure the list is one image per row? this may be happening by default if used in a pipe though.

the mv comes from the noise profile shell script (it’s really short). if you open it you can see the vkdt-cli command it is calling. it tries to parse the output noise profile file name from the command line and apparently that returns an empty string in some cases here. maybe run it without the script so we can see what’s going on?

  1. isnt Manjaro Arch linux based? so the OBS Arch linux package might work for you.
  2. in doubt see the PKGBUILD file that we use for the OBS build to give you an idea for the needed build dependencies.

OK.
Since I last ran the script, I had opened the directory in both darktable and vkdt - meaning the directory now contain .cfg and .xmp file as well as .nef files. So my mistake.
Running against just one .nef file results in
[colinadams@fedora bin]$ ./noise-profile.sh ~/vkdt-noise-profile-raws/DSC_0505.nef
[nprof] WARN: reducing expectations 1x because we collected very few valid samples!
[o-jpg] writing ‘Nikon-Z 9-4000.nprof’

which looks OK.

And the written file contains two numbers, so that looks OK too.

1 Like

@hanatos Running vkdt, denoise is certainly doing something (if I turn it off in the pipeline configuration, I see magenta where the highlights are blown - not what I expected).
How do I see if it is picking up the profile? (I’m still feeling my way around vkdt, and feel fairly helpless - no youtube tutorials yet - I asked Hal to tackle that - he is agreeable, but he is as new to it as I am).

the denoising in vkdt is done pre-blackpoint subtraction, so it can average noisy values to result in crisp black (different to darktable). this is why the noise profiles have to be redone (but you kept the samples, this is great).

also i took the opportunity to subtract black and scale white in the denoise module too (less carrying values from and to global memory is always better). this is what it does even if you reduce the strength parameter to 0. of course if you disable the module it doesn’t do that any more.

to see whether your values are picked up, you could either wire the rawhist module to the raw input module and the histogram display module to visualise the same thing that the noise profiling script would output from the command line. or if you trust the fit already, you can just look at the parameters in the i-raw module, it will display noise_a and noise_b, the values from your fit. you can also adjust these manually if you think it’s necessary. that’s the quick way i denoise some playraw images btw when i’m too lazy to do the proper profiling. if the profile is missing, these parameters will be left at the default 0.

[edit] there’s some of this written down in the module documentation of the denoise module too. i should probably wire an xdg-open or something to the documentation, along with an optional local install of it.

1 Like

It looks like it is picking values from the wrong noise profile (i.e. getting the ISO wrong). The values are close, but not spot on.
The metadata is reporting the correct ISO though.

@hanatos I tried looking for a profile with the matching noise-a value. Can’t find one.

this is what it looks here if i open the profiled shot in darkroom mode:

noise profile:
569.749 66.7774
gui:
569.74902 66.77740

which seems reasonable to me given the different encoding (base-10 ascii vs float32). is that what you are talking about too?

Which file was that?

I’m seeing much larger differences.
For the file at ISO 125, I see:

646.34998
0.95582

But in the *-125.nprof file I see:
535.324 0.85552

i think i only have the iso 20000 one.

I think the file I sent you was the one for 20000 ISO.
For that I see:
100.00000
1
whereas the nprof file has
1128.78 65.3321

so this is a huge discrepancy.

does this one have a .cfg file too? if you double click the sliders to reset to 0 and force a reload? if the cfg contains older values (inserted by the previously broken fits) they might stick around.

Thanks for your efforts in developing vkdt! I just tried to compile on Win11 and had the same problem with rawspeed. Using your tip gives me a different error message:

CMake Error: Error: generator : Unix Makefiles
Does not match the generator used previously: Ninja
Either remove the CMakeCache.txt file and CMakeFiles directory or choose a different binary director
y.

Do you have any suggestion?

OK.
I deleted all my *.cfg files in the directory. And I deleted the contents of data/nprof and regenerated.

Now for ISO 20000 I get a match!

I’m happy now :slight_smile:

1 Like

hmm maybe nuke the built/ subdirectory? sounds like its just complaining about old cmake caches.

@hanatos How do I submit the complete set of nprof files for sharing? PR?

Yes, that’s solves the problem with rawspeed! Thank you!

A “make clean” didn’t remove the “etc/rawspeed” folder from the built dir and I had to remove it manually. Now there are some other problems but I need to get back to my regular work :slight_smile:

qvk/qvk.c:30:10: fatal error: ‘execinfo.h’ file not found

I see now that File PKGBUILD of Package vkdt - openSUSE Build Service has glfw-x11 after “depends”. So, that looks likely.

It is Arch based, but I’m not sure how that OBS thing helps me. I see nothing about OBS at GitHub - hanatos/vkdt: raw photography workflow that sucks less or in the release notes.

Go to: Install package graphics:darktable:master / vkdt

  1. click on Arch logo
  2. click on “Add repository and install manually” and follow the steps.

voila you should get vkdt and can easily update it in the future. the builds there are directly triggered by github