Timelapse photography and darktable

Iā€™m looking forward to this!

1 Like

Here you go :slight_smile:

6 Likes

Thank you very much!

Iā€™d really love to see this integrated into dt. @anon41087856 any change you will have a look into doing this, or would it be faster if I would start learning c now?

Not going to discourage you, but darktable is a vast C++ code base which is more or less a framework around modules. Even if youā€™re going to learn C++ now itā€™ll take you some time until you understand darktableā€™s code base which is (afaik) pretty undocumented. In addition, this is not a standard module in the sense of take pixels from the pipeline, modify pixels and write them back, but rather read information from a group of images and apply it to a group of images, a process darktable was never designed for. So prepare for some hacky solutions here. I wouldā€™ve loved to this in LUA though but the API isnā€™t there, thatā€™s why I ā€œreverse-engineeredā€ the XMP interface.

Apart from that, god speed to you! :slight_smile:

Iā€™ve seen the script and all it does is calculating and applying smoothed out WB across set of images (sorry for trivializing actually great piece of work). Technically it can be either an operation in DT in ā€œselected filesā€ module (so youā€™d have to learn C) or LUA script that would do the same :wink: So you can either learn C or LUA. I think lua script can also call Python script that @jchnkl done (lua scripts can call external binaries to do processing). So ultimatelly options are - introduce this as an op in C, introduce it as an op using LUA (total rewrite in lua) or intruduce it as an op in lua dependent on python script.

My stack of tasks is pretty much full for at least the 2 next months, so if you are able to learn C in less than 2-3 months, chances are you will be faster than I am.

1 Like

Well, you could do a ā€œmoduleā€ for the lighttable (src/libs/copy_history.c is close to what you do here), code a SQL request to fetch exposures/WB for the selected list of pictures, unroll your interpolation of parameters, save the SQL in database and refresh XMP files.

3 Likes

Great idea and doesnā€™t sound to hard either.
Iā€™ll be gone till mid-march soon, but Iā€™ll keep that in mind! Thanks for the hint!

2 Likes

Now that darktable has arbitrary module ordering, making a toolchain of module invocations in lua would be a powerful way to process multiple images.

I recently completed a batch capability for my own software, and it has surpassed my expectations for improving the efficiency of my workflow. For instance, after Iā€™ve produced my proof JPEGs after a dayā€™s shooting, if I find something like a white balance correction that applies to a series of images, I can open one of them (which opens the raw file and re-applies the toolchain to make the JPEG), change the white balance, then I delete the other proofs i want to apply the change to and kick of the batch dialog, which will process new JPEGs with the modified processing. Itā€™s not lua, but the concept is the same: have a scripting language that exposes the same image processing API as the GUI program uses.

Food for thoughtā€¦

No, the modules that you can reorder are the pixel pipe ones (where ā€œmoduleā€ means a GUI widget and an image operation filter, located in src/iop). Those are not accessible from Lua. Lua let you play only with pipeline I/O and the lighttable modules (where ā€œmoduleā€ means only a GUI widget to do arbitrary stuff not affecting pixels, those are located in src/libs)

Okay, some of what Iā€™m getting at is already in darktable-cli. From my initial read of the doc, one needs a previously-saved XMP with the desired history stack. Iā€™m not a large fan of history stacks, Iā€™d rather just have a ā€˜toolchain stackā€™ of the parameters I finally settled on, not all the less-than-desirable iterations it took me to get there. Okay, further reading reveals ā€œcompress history stackā€, which gets rid of all but the essential information needed to process the image with the final editing decisions. That gets me thereā€¦

I still prefer scripting my toolchainsā€¦ :smiley:

Just to be complete her, I found this video ā€œTimelapse stabilised with Hugin toolsā€:

And here is the code:
https://bitbucket.org/brunopostle/panotools-script/src/eee8f84f40fda3d6d1d5954fa7bb20848b8041fc/bin/nona-deshake?at=default&fileviewer=file-view-default

1 Like

I think you will be faster.

This sounds like a very clear plan and a good starting point.

Ladies and Gentlemen, :slight_smile:

I appreciate the conversation here, which I followed silently.

Also I kept back off for the purpose of letting dt-3.0.0 come to earth and getting calm.

Now I would like to go back a little to my initial intention. Hence I have just now opened a Feature Request on github and seriously hope for any helpful supportā€¦

https://github.com/darktable-org/darktable/issues/4250

Sincerely
Axel

With the upcoming darktable 3.2, we will get the new introspection mode , which @dterrahe has been implemented. I am very very grateful for this work and happy that I have had a little minor role of being part of the testing team.

It think there is still a long way to go and patience is needed :slight_smile:

@jchnkl meanwhile has realeased dtlapse, which I still need to try, but looks very promising.

  • Some of you may want to merely use FOSS, then dtlapse probably is the long awaited diamond
  • those looking forward to the very mature LRTimelapse, dtlapse might be the tool, makes the required patience a bit easier to accept.
1 Like

Could you explain what the benefits of the new introspection mode for timelaps are?

AFAIK this is a pre-requisite, that modules can ā€œtalkā€ to each other or control other modules and also the base for human legible PARAMS.

But I am not a coder, so easily I explained it very wrong :slight_smile:

Hi @AxelG I know you had been pursuing this idea very passionately last year.
Do you know if there is any new development on this or has this lost steam?

Hi,

after introspection, unfortunately nothing else happened, besides me or Hubert pushing the git issue away from auto-closure.

At least me would like to keep the steam up, however, Iā€™m still 100%+ busy with house renovation, hence I cannot push it atm. This scenario might last until next summer, Iā€™m afraid. :-/