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.54k stars 1.13k forks source link

Export a list of pictures names in a collection #7563

Closed aurelienpierre closed 1 year ago

aurelienpierre commented 3 years ago

Sometimes, the person doing the culling in a photo collection is not the person doing the editing and might not even be the photographer either. Therefore, we need a quick way to communicate a list of chosen pictures between photographer, retoucher and artistic/creative director, maybe even with the customer when there is one.

Proposal

  1. A button somewhere in lighttable that exports the file names of the pictures in the current collection, in a text file, possibly with stars rating, color labels and tags, for example :

    collection.txt
    $(BASE_DIRECTORY)/$(COLLECTION_FOLDER)/DSC_0005.NEF ; 4 stars ; red, blue ; tag1, tag2, tag3 ;
    $(BASE_DIRECTORY)/$(COLLECTION_FOLDER)/DSC_00012.NEF ; 1 stars ; yellow ; tag1, tag2, tag3 ;
    $(BASE_DIRECTORY)/$(COLLECTION_FOLDER)/DSC_00015.NEF ; 5 stars ; red, blue ; tag1, tag2 ;
    etc.

    where the file name of the export file (collection.txt) can be input by user and the $(XXX) masks are replaced with the actual folders. Stars ratings, tags and color labels could be optional.

  2. A button somewhere in lighttable that imports the file names of the pictures from the exported text file to create a new collection and set it active in lighttable. The import will let user choose if the $COLLECTION_FOLDER is to be kept as-is or changed to account for the local repository structure, while the $(BASE_DIRECTORY) will be updated silently depending on the global parameter of dt or changed upon user request.

Further extension

This could later be extended by optionally adding:

  1. the XMP history file of each picture in the collection,
  2. the RAW files,
  3. the low-res JPEG previews

and zip them altogether.

Implementation

I feel this could be implemented in core and written in C or implemented in an extension and written in Lua. I see advantages and drawbacks for both, I'm not sure what's best.

johnny-bit commented 3 years ago

Sooo... Something like contact sheet but in txt form?

wpferguson commented 3 years ago

I suggest do it in Lua, let it go through a couple of iterations, then move it to core

chhil commented 3 years ago

Why selection from a collection ? Use tags that can be filtered across collections for export with details. Maybe an import to a collection (which could be done by filtering on tag and then moving them to a collection if the grouping into collection 8s desired).

aurelienpierre commented 3 years ago

Why selection from a collection ?

Because the usual case is this : you have done a photo session of hundreds, if not thousands, of pictures. In that session, you want to tell your retoucher to edit pictures number 5, 258 and 762. So the list you produce is a subset of a collection.

Use tags that can be filtered across collections for export with details.

No. Tags are for archival purposes, aka long-term use. Multiplying short-lived tags is not a solution, since it will pollute the database with convenience tags you will have to cleanup every once in a while. Also, the point is to share and communicate info to other persons, aka other darktable installations, so polluting their database with your convenience tags is not polite.

(I have a load of shit tags I gather from opening other people's XMP, some of them in languages I don't even speak, it's really annoying).

Sooo... Something like contact sheet but in txt form?

Yes, kind of.

wpferguson commented 3 years ago

Started playing with it

wfexport

and

collection.txt

github-actions[bot] commented 3 years ago

This issue did not get any activity in the past 30 days and will be closed in 365 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.

wpferguson commented 3 years ago

@aurelienpierre a question...

What gets returned to the shooter? xmps or exported images or ?

aurelienpierre commented 3 years ago

Well, if everybody "speaks" darktable, exchanging only RAWs the first time, then XMPs for communication, is more bandwidth efficient. Of course, if one of the parties doesn't speak dt, only exported images and list of names can be exchanged.

wpferguson commented 3 years ago

Started working on this again because I had culled images in dt 3.6, but wanted to edit them in 3.7 with the new toys :smile:. I already had the film roll imported in both, so ran the workflow collaboration script I had worked on earlier to generate the "manifest". I then built the part to import the manifest, find the applicable film roll, and then apply the ratings. So, progress.

One gotcha is that the sort order needs to be the same for the source and destination, otherwise settings didn't get applied correctly.

github-actions[bot] commented 2 years ago

This issue did not get any activity in the past 60 days and will be closed in 365 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.

github-actions[bot] commented 1 year ago

This issue was closed because it has been stalled for 300 days with no activity. Please check if the newest release or nightly build has it fixed. Please, create a new issue if the issue is not fixed.