APP: Propagate Keywords to the Stack!

Started by Jingo, February 13, 2025, 09:40:51 PM

Previous topic - Next topic

Jingo

Well - it has been awhile since I have written an APP for IMatch but I had a few spare minutes and decided to write one to fill a minor hole in my workflow. 

Recently, I've been using ProCapture mode on my Olympus camera when taking birds in flight photos. It buffers photos in the camera when you half-press the shutter and then writes them to the SD card when the shutter is fully pressed. This enables you to 1/2 press the shutter while focused on the bird, wait for that critical moment when the bird is flying off a branch, and then press the shutter to increase the chance of capturing that split second moment.  It works great!

The problem... when I get back home, I have 40 images per shutter press!  Now, I typically go through the stack in the Viewer, displaying 16 images at once, zoom in and then cull the ones that are blurry, missed or not composed well. However, until I do this, I can have over 1000 images from a single day of shooting.

So, I decided to start stacking/auto-stacking the groups which makes my file window display that much cleaner.  The problem... since the view is now so nice and tidy, I keyword the top of the stack and then don't bother to cull the other images within the stack.  However, I do want to ensure all images in the stack get the same keywords.

I searched and found this older thread (https://www.photools.com/community/index.php/topic,12699.msg89747.html#msg89747) where it was confirmed that no propagation exists for stacks.. only versions. 

So, I wrote an App to do the job!

The Always Important APP Icon:
6rSFLGJOcD.png

The App Itself:

IMatch2025x64_RRrpiqkyT4.png

The App will only allow propagation if the focused image is the top of the stack and has a keyword to propagate.  Simply select the stack, click the button and voila... all images in the stack will share the hierarchical keywords.

As always, I've tested this as much as possible but there could be bugs, missing functionality and/or things I didn't consider so please use with caution and keep this in mind.  The code is commented and though might not be the best in the world (I threw this together in an hour), it seems to do the job!  My thx to Mario for the sample apps where I "stole" code to make quick work of gathering the stack info.

Extract the zip file to your C:\ProgramData\photools.com\imatch6\webroot\user folder and IMatch should pick up the app in the manager. This can also be run in the browser as well.

Enjoy!! - Andy

Mario

Quotewhere it was confirmed that no propagation exists for stacks.. only versions.
Right. Stacks are used to reduce clutter in File Windows, easily.

If you plan to propagate metadata, versions and version stacks are the way to go.
Note that a manual version can be used very similar to a normal stack, but with the ability to propagate metadata, collections, categories, and Attributes.

Thanks for sharing.

Jingo

Thx Mario - Yeah.. probably lots of better ways to do this but I only want to propagate keywords, so it seemed logical to just build an app for it.  Now, I can just hit F3+1 and hit the propagate button on the stack.  

Got me back into IM app building for a moment which is always fun (!) and hopefully the app is useful to someone else even just to look at the (not so-great) code and learn.

sinus

Quote from: Jingo on February 13, 2025, 09:40:51 PMSo, I decided to start stacking/auto-stacking the groups which makes my file window display that much cleaner. 

This is a good idea of you.
I do this since years. Say, I have 30 "events" in a month, like weddings, studio-shoothings, reports and so on.
Then every shooting is for me an event.

And each event is only represented by 1 image in a stack. And a stack can hold 5 images or 1000. But if I see the one "representing-stack", then I can remember very quickly, what the event was and if I want, I can open the stack.
Hence in this month my file-window would show 30 images, though maybe there are 3000 images behind in the stack.

Keywording and description and so on I do before I stack, because this is quite quickly done. Hence all my stack- images have keywords and other metadata.

I am very sure, your app is cool and can be very helpful, if one have such a workflow like you.

BTW, because I do this since a long time, I use not events or face recocnation. But I thought, if I have IMatch 2025 (what I think, next week), then I want to try them out.
Best wishes from Switzerland! :-)
Markus

Mario

@sinus: do you use IMatch Events to arrange all your photo shootings on the timeline? I would think that this would be very useful to see the work done in each year, and to quickly open any even to review it. Each event is represented with one tile and 1 to 4 selected images in the Event View.

sinus

Quote from: Mario on February 14, 2025, 09:30:06 AM@sinus: do you use IMatch Events to arrange all your photo shootings on the timeline? I would think that this would be very useful to see the work done in each year, and to quickly open any even to review it. Each event is represented with one tile and 1 to 4 selected images in the Event View.

Thanks, Mario
No, I do not use IMatch Events to arrange in a timeline, until now, because I have created my own timelines, with help of categories and Design & Print. Works very good.

But I will really check this, when I buy and install IMatch 2025, hopefully next week. I will check IMatch Events and face recognition. 
To be on the safe side, I think, I will first copy some pics and check all out, because in these two areas I am a beginner. Not that I end with written stuff in my real images.

But if it looks good, then I will to the same to my production database.  :)
Best wishes from Switzerland! :-)
Markus

Mario

Events don't change metadata, they are stored in the database.
Face recognition writes face regions into XMP when you write back. This allows you to use the faces in other applications now and in the future.