Bug 281252 - Add framework to manage complex workflows
Summary: Add framework to manage complex workflows
Status: REPORTED
Alias: None
Product: digikam
Classification: Applications
Component: BatchQueueManager-Workflow (show other bugs)
Version: 1.9.0
Platform: Ubuntu Linux
: NOR wishlist
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
: compositor (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-09-03 09:23 UTC by Leonardo Giordani
Modified: 2017-08-01 12:50 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
A visual description of the "multiple products" issue (108.79 KB, image/jpeg)
2011-09-03 09:23 UTC, Leonardo Giordani
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Leonardo Giordani 2011-09-03 09:23:15 UTC
Created attachment 63346 [details]
A visual description of the "multiple products" issue

Version:           1.9.0 (using KDE 4.7.0) 
OS:                Linux

I feel digiKam could be improved to support custom complex workflows. I'm going to describe my current workflow to share with you the usability problems I face and to start a discussion about a possible digiKam enhancement.

Sorry for addressing 1.9.0, I'm trying to install latest version.
I know that 2.x introduced new features like versioning and image groups, but I think they need to be enclosed in a bigger picture (if I correctly understood the relative discussions; if not please forgive me).

Use case
---------------------------------------

My current workflow produces several files for each source raw.

The minimal amount are 3 files: raw picture, the processed full frame TIF not sharpened and the same sharpened and cut with my aspect ratio of choice, in JPEG format.

But if I want to print the picture I save a new version with different processing: I found the "good" sharpening and color balance parameters to obtain the correct print at the shop (no color profiles for the printer, and no monitor calibration, sadly).

Moreover, if I find something wrong in the image, or if I want to develop some special processing, I save it and process it with The Gimp for example, so I can also have one or more intermediate images, produced outside digiKam.

Potentially there is a bunch of pictures for each raw (or whatever source you have).

Problems that arise:

1. Multiple "products"

I have multiple copies of the same image in the main view. Now we added the format label (thank you!) but I can produce 10 JPEGs with different cropping ratios, so this does not solve this problem.

Now I rename each image I save with a complex scheme (<name>_L<processing_level>_R<aspect_ratio>, sorry but its the only solution I found :) ), but the overhead of saving with the correct name is very high and error prone.

My images have different names that allow me to identify the correct one, but in the main interface it is impossible to tell two images apart without selecting them and looking at the name on the bottom status bar, since names are long.

Even tags are not really useful when listed at the bottom of the image, since if you have more than 2 or 3 tags you cannot see them: so using tags to tell the workflow levels apart is time-consuming (each time you save you have to retag the image), error-prone, and not visually useful.

If I interrupt the workflow it is difficult to find the last image since not always the workflow levels are alphabetically ordered.

When I want to export all my beautifully cropped JPEGs to prepare a slideshow or to print them I have to do complex searches, sometimes its faster to perform a find in bash.


2. External processing

Obviously you will always find some program performing something specific better than digiKam: say, as an example, Gimp or Photoshop for complex image retouching.

When I use an external program to develop my picture I cannot take advantage of tags and stars managed by digiKam. I have to first save a copy of the image and then open it with an external program, so that digiKam is already aware of the picture.


Some enhancement proposals
---------------------------------------

1. Detach filesystem structure from GUI structure

I find the solution implemented by Calibre (http://calibre-ebook.com/)
very interesting. Calibre manages e-books, which come in different
formats, e.g. EPUB, PDF, DOC, LIT, etc. This is similar to our digiKam
scenario, with pictures instead of e-books.

For each imported book Calibre creates a directory where all different
files belonging to the same e-book are stored. The files are saved
with a custom name decided by Calibre and hidden to the user. When
books are exported (saved) to disk Calibre saves them with a custom
name scheme the user can configure with a printf()-like technique,
just like the powerful renaming interface already implemented in digikam.

This way I see just one entry for each book in my UI and, when
clicking on the image, a window shows me the different formats,
allowing me to do what I want.


2. Programmable workflows

It would be a terrific enhancement to allow the user to create a personal workflow. Take a simple workflow as an example:

a. I develop a raw and save it unsharpened as TIFF
b. I sharpen it and save as TIFF
c. I crop it and save as JPEG

If I could tell this to digiKam I could also be assisted in my work. For each object I click in my GUI (see enhancement proposal number 1 above) I can be aware of what point of my workflow of choice I reached.

Moreover I can also simply say "Save and go to next step", without messing with file names or tags, since digiKam already knows what workflow level I'm in, so it knows the name scheme, the tags, the file format, and so on.

This is valid also for external processing: when stepping into an external processing step digiKam already knows file name, tags, format and also the external program. It can also launch it for me.


3. Processing log

Except for external programs, the actions I performed in a workflow can be also recorded. This could allow me to delete all that half-processed TIFFs I keep on my HD to be able to reproduce or enhance a result later in time. Sure, I can write down by myself sharpening parameters, but what about curves for examples?
By recording actions I can always reproduce the entire workflow (again, except for external processing) just by clicking a button, saving time and disk space (the former being not cheaper and cheaper as the latter :) )

Conclusion
---------------------------------------

I'm interested to discuss solutions with you all, if you are interested in complex workflows, and to help developing them.

What do you think about?

Thank you very much

Leo



Reproducible: Always



Expected Results:  
Complex workflows easier to manage
Comment 1 Jekyll Wu 2011-12-08 14:38:23 UTC
*** Bug 288432 has been marked as a duplicate of this bug. ***
Comment 2 caulier.gilles 2014-08-30 22:11:30 UTC
*** Bug 310682 has been marked as a duplicate of this bug. ***
Comment 3 Andrej Krutak 2015-10-11 14:54:30 UTC
For me, I would like it very much, if an image pre-processed in DigiKam (e.g. curves) could be loss-lessly transferred e.g. to GIMP for some adjustments (typically - dust removal, local sharpening, gradients...), and then retrieved back after it's finished (and do final touches, like cropping, vignetting).

Right now, one has to export to e.g. tiff, edit in other app, overwrite digikam's jpg, remove tiff...