All pages

XMP sidecars

argus-curator 0.15.2.dev2+g97021d6 @ 97021d6PyPI (opens in new tab)Source (opens in new tab)Changelog (opens in new tab)

Imported from docs/xmp.md on argus-curator's dev branch at that commit. Fixes go upstream, not here.

write_xmp: true (--xmp) writes an XMP sidecar beside each exported file, photo.jpg.xmp, through argus-cortex's shared writer, the one argus-lens uses:

  • mwg-rs:Regions: every detected face, with the name given for its cluster.
  • Iptc4xmpExt:PersonInImage: the names, from face_names (--face-names face_1=Ada,face_3=Ada; two clusters can be one person). An unnamed cluster gets an unnamed region and no person entry.
  • argus:ContentRating: the NudeNet content rating.

The source's own sidecar (lens's captions, a photo app's stars and edits) is the starting point and everything curator does not set is kept; the source's sidecar itself is never changed. Age estimates are never written: a MiVOLO guess in a photo library reads as a fact. A file curator knows nothing about gets no sidecar; xmp_written counts the ones written. A transfer can succeed while a sidecar fails (copied greater than xmp_written); the image still landed, and the failure is logged rather than undoing it.

Writing beside the originals

--xmp-sources (CLI only) merges the same fields into the sidecars beside every scanned original curator has something for — including rejected images — independent of --xmp / --copy-to. That writes into the scanned folder; the server's write paths stay under the export root. Regions are replaced as a whole, so regions drawn by hand on an image with detected faces are lost.