darktable-org / darktable

darktable is an open source photography workflow application and raw developer
https://www.darktable.org
GNU General Public License v3.0
9.55k stars 1.13k forks source link

Workflow speedup - automatic grouping #2378

Closed Jopp-gh closed 3 years ago

Jopp-gh commented 5 years ago

Is your feature request related to a problem? Please describe. I am wondering why Dt offers no filters to group pictures having:

Grayish colors Extreme tints (e.g. reddish) Strong under/over exposed Strong cold/warm colors

Describe the solution you'd like With the filters I suggested we could batch process groups of pictures which need similar development using a saved history stack file. Eventually with some tweaking here and there.

Describe alternatives you've considered Maybe Dt could analyze-group pictures with stronger defects in advance with some estimate about tint and tone

Additional context Eventually an automatic adjustments of pictures following the criteria described above, settable as user preference

pphotography commented 5 years ago

When someone uses bracketing there is often an underexposed and a overexposed picture. If DT would have such a function, both pictures would be in different groups.

And what if an under- or overexposed image is intended? I think of low-key and high-key photos. https://duckduckgo.com/?q=high+key+photo&t=h_&iax=images&ia=images https://duckduckgo.com/?q=low+key+photo&t=h_&iax=images&ia=images

Don't think that the photographer wants the same treatment as like a wrong exposure is an accident.

Think this should start with a clear definition of criteria how the program should detect such images.

Jopp-gh commented 5 years ago

OK my initial post isn't than a rough sketch to introduce my idea but I think my idea is clear.

Example let's say you wanna apply a development to a film roll of 50 or more pictures taken in very similar light conditions-i don't talk about single shots collected here and there

I added purposely "strong" to the criteria tags described above and think that over-/ underexposed pictures aren't the norm, the exception shouldn't make the ruler so to say I take advance of bracketing myself but that depends (i'm using a Canon eos D600)

Anyway my idea proposed here was to suggest the grouping OR filtering with more criteria. No batch processing - rather a preparation for such op

Edit Don't worry if Dt groups/filters by low and high key At the end it's our choice to apply eventual manipulations in batch to such groupings. I wouldn't want myself if serious software pre-processed pictures without my consent, therefore messing up my work. What I wrote in the context of my first post is not required and provably not useful most of the time. Styles applied in batch can be simple as having two different layers let's say overlap and screen. Applying this wouldn't destroy an image if fine tuned appropriately. But OK.

To summarize A method to filter / group pictures taken in very similar light conditions, to facilitate batch op

aurelienpierre commented 5 years ago

Grayish colors Extreme tints (e.g. reddish) Strong under/over exposed Strong cold/warm colors

  1. Find a metric to pack every pixel color or exposure into (ideally) a single (scalar) norm for the whole picture, or, worse case, a vector, (could be simple average + standard deviation, max/min, % of pixels in the first/last bin of an histogram, etc.)
  2. Define a threshold:
    • on the absolute norm, to separate extreme (outliers) vs. average pictures,
    • on the difference of norms, to separate similar vs. different pictures, based on the difference between a reference image and an arbitrary set of pictures.
  3. Conduct a statistical analysis to find wether or not that threshold can be assumed constant on a set of picture, and therefore be hard-coded, or if it needs to be user-set to be adapted.
  4. Experiment on a user-friendly UI to control that.
  5. Investigate on the best method to store the grouped images in the database and retrieve them from the UI (tags ? collections ? how to name them ? just pop the group whenever you select one of its members ?)

As you see, this is artificial intelligence R&D. Nothing trivial here.

Jopp-gh commented 5 years ago

@aurelienpierre I know from experience (I myself coded with applescript and bash shell) that code implementation isn't an easy - quick task even if you're equipped well and you know what to do. Anyway I see your point

After discovering Dt's batch-processing capability I felt the need to ask for this filters/groups. I've avalanches of pictures I wanna remaster with Dt and new ones too.

Light conditions in pictures aren't always radically different so a filter / grouping are the way to get an overview and target pictures systematically.. Combined with batch processing a perfect workflow to deal with avalanches of work.. At the end a few tweaks add the needed detail.

pphotography commented 5 years ago

Perhaps it would improve the workflow with extended grouping features. Currently we can only 'group' and 'ungroup' files without any information about that group.

Maybe we could need a group manager with the possibility to give names to groups and a user interface in lighttable that separates images by groups. The group's order should be adjustable, with drag and drop in the group manager. Moreover, the user should be able to move image(s) with drag and drop from one group to another. Think this would improve the ordering process.

Darktable_Lighttable_groupmanager

Jopp-gh commented 5 years ago

@pphotography Grouping is an excellent way to organize files. In Dt, file management is not yet elaborated - it's perfectly working but pretty basic in comparison to e. G. Digikam.

Not really a critique as the development process of photos in Dt is obviously more important. And also more important than file management . But.. Many skills make the skill tree so to say Therefore, I'd welcome if devs focus also and more on the management of files.. Which should be less difficult and less exciting to develop than the retouch modules, IMO.

github-actions[bot] commented 4 years ago

This issue did not get any activity in the past 30 days and will be closed in 7 days if no update occurs. Please check if the master branch has fixed it since then.