TGViewer
Linux - Reddit Linux - Reddit @r_linux · 1.05K subscribers
Post #42464 52
PhotoFlow: Efficient RAW Automation for Panorama Photography on Linux

For photographers who frequently shoot panoramas—specifically those using exposure bracketing (HDR)—managing the resulting RAW files is often a time-consuming task. PhotoFlow was developed to accelerate the transition between capture and final construction in software such as Xpano.

What is PhotoFlow?
PhotoFlow is a Python script, primarily developed for Linux users, that automates the complete management and preprocessing of large quantities of RAW files. It acts as an intelligent link that handles the "administrative" side of the workflow, allowing the photographer to focus immediately on the stitching process.

Who is it for?
The script is ideally suited for landscape, architectural, or interior photographers who:

Work with large volumes of RAW files in bracketed sequences.
Require a strictly organized folder structure without manual sorting.
Want to generate high-quality HDR intermediate files (32-bit DNG or TIFF) in batches.

The Workflow
The workflow within PhotoFlow is divided into two clear steps:

1. Automated Sorting: The script analyzes the metadata of the RAW files and automatically groups them into sequences based on capture time and exposure differences. A key feature is that the first frame of each sequence (the "master shot"), along with any single individual photos, remains in the source folder. This provides an immediate visual overview of the compositions made, while the full sequences are neatly organized into subfolders.
2. Batch HDR Processing: The sorted sequences can then be converted into HDR intermediate files in a single operation. Users can choose between TIFF files (via Enfuse) for natural tone distribution including lens corrections, or 32-bit DNG files (via HDRmerge) for a linear workflow. Processing occurs serially per folder to manage system load, while still utilizing the full processing power of the CPU.

Specific Optimizations
PhotoFlow has been developed with a focus on technical precision:

Orientation Preservation: A common issue with command-line tools is that portrait-oriented shots accidentally tilt to landscape. PhotoFlow includes a specific fix that restores or forces the correct orientation metadata, ensuring images appear correctly in stitching software.
Edge Correction (Shave): Aligning TIFF files can result in irregular edges. The script can automatically trim these edges by a user-defined percentage.
System Load Management: The script is optimized to remain stable on hardware with limited memory, such as laptops with 4 GB of RAM.

Platform and Technology
PhotoFlow is a Python script that utilizes proven open-source tools such as ExifTool, Darktable-cli, Enfuse, and HDRmerge. While specifically tailored for Linux environments, the underlying Python code is technically robust.

With PhotoFlow, the time-consuming preparation of panoramas is reduced to just a few clicks, ensuring a fluid transition from fieldwork to the digital darkroom.

https://redd.it/1ug7z7k
@r_linux
Reddit From the linux community on Reddit Explore this post and more from the linux community
More from @r_linux
  1. Oct 4, 2026Brazil election - 560K devices, the most fast e electronic election https://redd.it/1wxjix…
  2. Oct 4, 2026Mesa 26.3 Enables Intel's New Jay Shader Compiler By Default, Compile Times 55% Faster Or…
  3. Oct 4, 2026[App] Whisp v1.6.0 Universal launch shortcut and Bug fixes https://redd.it/1wxfpou @r_linu…
  4. Oct 4, 2026European Citizens' Initiative https://eci.ec.europa.eu/066/public/#/screen/home https://re…
  5. Oct 4, 2026Linux 7.2.2 on iPhone XS? First boot! https://i.redd.it/9ub3aiohspsh1.gif https://redd.it/…
  6. Oct 4, 2026else if (strcmp(user_input, "inst") == 0) { inst(); } else if (strcmp(user_input, "rm") ==…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →