[Digikam-devel] [Bug 281252] New: Adding framework to manage complex workflows

Leonardo Giordani giordani.leonardo at gmail.com
Sat Sep 3 10:23:16 BST 2011


https://bugs.kde.org/show_bug.cgi?id=281252

           Summary: Adding framework to manage complex workflows
           Product: digikam
           Version: 1.9.0
          Platform: Ubuntu Packages
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: wishlist
          Priority: NOR
         Component: Workflow
        AssignedTo: digikam-devel at kde.org
        ReportedBy: giordani.leonardo at gmail.com


Created an attachment (id=63346)
 --> (http://bugs.kde.org/attachment.cgi?id=63346)
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

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the Digikam-devel mailing list