Skip to content

feat: Import Lightroom XMP sidecars - #1280

Open
StephenMasseur wants to merge 1 commit into
CyberTimon:mainfrom
StephenMasseur:feat/xmp-sidecar-import
Open

feat: Import Lightroom XMP sidecars#1280
StephenMasseur wants to merge 1 commit into
CyberTimon:mainfrom
StephenMasseur:feat/xmp-sidecar-import

Conversation

@StephenMasseur

Copy link
Copy Markdown

Summary

  • Add Lightroom XMP adjustment import for individual images
  • Add folder-level import for matching .xmp sidecars by filename
  • Support attribute and element-style crs:* XMP adjustment values
  • Document single-image and folder sidecar import workflows in the README

Testing

  • npm run build
  • cargo fmt --check
  • cargo test
  • git diff --check

@StephenMasseur

StephenMasseur commented Jun 12, 2026

Copy link
Copy Markdown
Author

You can right-click an image to select individual .xmp, or right click on folder in left bar then click "Import Sidecar XMP" for it to import all .xmps with matching filenames from the folder containing the content.
Screenshot 2026-06-13 at 16 47 32
Screenshot 2026-06-13 at 16 48 09

@StephenMasseur StephenMasseur changed the title Import Lightroom XMP sidecars feat: Import Lightroom XMP sidecars Jun 14, 2026
@dimafa

dimafa commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Hi @StephenMasseur. This is great idea and needed feature to help with migrating from Lightroom. Thank you for putting this together.
I have been testing this PR against a real Lightroom library with several cameras, including Sony ARW and Canon CR2 files.

During testing, I found and worked on several additional cases:

  • Crop, rotation, and EXIF-orientation conversion
  • Correct custom white balance relative to the RAW file’s as-shot temperature
  • Legacy Lightroom process-version adjustments (current supports new 2012 process only)
  • Attribute- and element-style XMP values
  • Automatic sidecar discovery for individual images
  • Recursive folder importing
  • Context-menu/file-dialog behavior
  • Focused tests for crop, white balance, and recursive discovery

These changes have become fairly substantial. Current main is also roughly 259 commits ahead of this PR, and rebasing now conflicts in several of the affected files.

Would you be comfortable with me opening a new draft PR based on current main that builds on and supersedes this one? I would clearly credit you and link #1280 as the original implementation. Alternatively, if you would prefer to continue with this PR, I can make the updated work available for you to incorporate.

I also found that directly copying Lightroom XMP values into the corresponding RapidRAW adjustments can produce substantially different images. Although controls such as Exposure, Contrast, Highlights, Dehaze, and Vibrance have similar names, the two applications use different scales, tone curves, processing order, tone-mapping algorithms, and camera profiles. For example, Lightroom Contrast +72 produces a very different tonal response when applied as RapidRAW Contrast +72. I am planning a separate follow-up to derive and validate calibrated conversion functions using reference renders across multiple cameras and scenes. I would keep that work outside this PR so the sidecar-import functionality remains focused and reviewable.

@StephenMasseur

StephenMasseur commented Aug 2, 2026

Copy link
Copy Markdown
Author

Hi @StephenMasseur. This is great idea and needed feature to help with migrating from Lightroom. Thank you for putting this together. I have been testing this PR against a real Lightroom library with several cameras, including Sony ARW and Canon CR2 files.

During testing, I found and worked on several additional cases:

  • Crop, rotation, and EXIF-orientation conversion
  • Correct custom white balance relative to the RAW file’s as-shot temperature
  • Legacy Lightroom process-version adjustments (current supports new 2012 process only)
  • Attribute- and element-style XMP values
  • Automatic sidecar discovery for individual images
  • Recursive folder importing
  • Context-menu/file-dialog behavior
  • Focused tests for crop, white balance, and recursive discovery

These changes have become fairly substantial. Current main is also roughly 259 commits ahead of this PR, and rebasing now conflicts in several of the affected files.

Would you be comfortable with me opening a new draft PR based on current main that builds on and supersedes this one? I would clearly credit you and link #1280 as the original implementation. Alternatively, if you would prefer to continue with this PR, I can make the updated work available for you to incorporate.

I also found that directly copying Lightroom XMP values into the corresponding RapidRAW adjustments can produce substantially different images. Although controls such as Exposure, Contrast, Highlights, Dehaze, and Vibrance have similar names, the two applications use different scales, tone curves, processing order, tone-mapping algorithms, and camera profiles. For example, Lightroom Contrast +72 produces a very different tonal response when applied as RapidRAW Contrast +72. I am planning a separate follow-up to derive and validate calibrated conversion functions using reference renders across multiple cameras and scenes. I would keep that work outside this PR so the sidecar-import functionality remains focused and reviewable.

@dimafa Thanks for taking this further and testing it against a real Lightroom library. The additional support for crop, rotation, white balance, legacy process versions, automatic discovery, and recursive folder importing sounds great.
Please go ahead with the new draft PR based on current main and supersede #1280. I’m not concerned about attribution; I’m just glad the feature is being developed into a more complete Lightroom migration workflow.
Separating the calibrated adjustment conversion into a follow-up also makes sense. Thanks again for putting in the work!

@dimafa

dimafa commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

The replacement PR is now ready for review: #1465.
It is based on current main and supersedes this PR with the additional crop, rotation, white balance, legacy process-version, automatic discovery, recursive import, progress, and import-report work discussed above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants