Echoes is Advanced Duplicate Finder for Lightroom, a Lightroom Classic plugin for finding probable duplicate and near-duplicate photos by comparing Lightroom catalog metadata.
It is designed for review, reporting, and cleanup planning. It does not compare pixels, and it does not delete files.
What The Plugin Does
The plugin scans a chosen Lightroom scope, reads metadata for each photo, compares enabled match criteria, groups probable duplicates, chooses suggested keepers, and writes reports.
It can optionally apply Lightroom markings after a scan:
- Add a duplicate-candidate keyword
- Add a keeper keyword
- Create review collections
- Create one collection per duplicate group
- Mark duplicate candidates as rejected
Those actions only happen when you choose Apply Marking
and the license/trial state allows full processing.
What The Plugin Does Not Do
The plugin never:
- Deletes files from disk
- Moves files
- Renames files
- Removes photos from the Lightroom catalog
- Compares image pixels
- Guarantees that a duplicate candidate should be deleted
Treat results as a review queue. Confirm the files in Lightroom before deleting, removing, or archiving anything.
Safe First Workflow
Use this workflow the first time you run the plugin or when testing new settings:
- Select 2 to 50 photos in Lightroom.
- Open
File > Plug-in Extras > Find Duplicate Images.... - On
Scan Setup, set the scan scope toSelected Photos. - Leave
Duplicate Detection Presetset toBalanced. - On
Advanced Settings, leaveModeset toDry RunorReport Only. - Choose a log folder you can find easily.
- Click
Run Scan. - Review the summary dialog.
- Open the image log and audit log.
- Only after the results make sense, consider using
Apply Marking.
Main Window Overview
The main window has seven tabs:
Scan SetupMatch CriteriaAdvanced Match CriteriaFile HandlingAdvanced SettingsLicenseAbout
The bottom buttons are:
Run Scan: saves the current settings and starts the scan.Cancel: closes the plugin without running a scan.
After a scan completes, the summary dialog has:
Back to Settings: returns to the plugin settings.Close: closes the summary.
Scan Setup
Use this tab to choose what will be scanned and choose a starting preset.
1. Scan Scope
The scan scope controls which Lightroom photos are read.
Selected Photos
Scans only the currently selected target photos.
Best for:
- First tests
- Known duplicate pairs
- Small controlled review sets
Watch for:
- If the wrong photos are selected, the plugin scans those photos.
- This is the safest first scope because it is small and predictable.
Selected Photos Against Current Source
Scans the current Lightroom source but only reports duplicate groups involving at least one selected target photo.
Example:
- The current folder contains 40 photos.
- You select 10 target photos.
- The plugin compares the 40 source photos.
- It reports duplicate groups involving the selected 10 target photos.
- Non-selected source photos may appear as
Referencein the image log if they were used for comparison but were not part of a reported target result.
Best for:
- Checking selected photos against their folder or collection
- Asking “do these selected photos already exist somewhere in this source?”
- Avoiding a full-source report when only selected targets matter
Watch for:
- You must select at least one target photo.
- The active Lightroom source must be the folder, collection, or source you intend to compare against.
- A non-selected source photo can become the suggested keeper if the file-handling rules prefer it.
Current Collection
Scans the active Lightroom collection.
Best for:
- Curated projects
- Review collections
- Temporary duplicate-candidate collections
Watch for:
- Make sure the collection itself is the active source.
- Collection membership is Lightroom organization, not file identity.
Current Folder
Scans the active Lightroom folder.
Best for:
- Folder-by-folder review
- Testing one shoot or import folder
- Avoiding full-catalog scans
Watch for:
- If you meant to scan a collection, use
Current Collectioninstead.
Current Source
Scans whatever Lightroom currently exposes as the active source.
Best for:
- Flexible workflows where the source could be a folder, collection, collection set, or other active source
- Working directly from the current Lightroom view
Watch for:
- Confirm the active source before running.
- If the source is broad, the scan may take longer.
Entire Catalog
Scans every photo in the catalog.
Best for:
- Final broad audits
- Catalog-wide duplicate discovery after settings are already tested
Watch for:
- Large catalogs can take a long time.
- Start with smaller scopes first.
- Use at least one reliable
Requiredcriterion when possible.
Skip Virtual Copies
When checked, Lightroom virtual copies are excluded from duplicate comparison.
Use this when:
- Virtual copies are intentional edit variants.
- You do not want virtual copies reported as duplicate candidates.
Log behavior:
- Skipped virtual copies appear in the image log as
Skipped: Virtual Copy.
Watch for:
- The original/master copy can still be scanned.
- This is different from the
Photos with the same virtual copy namematch criterion. The skip option removes virtual copies from comparison; the criterion compares copy-name metadata for photos that remain in the scan.
Skip Stacked Photos
When checked, photos Lightroom reports as stacked are excluded from duplicate comparison.
Use this when:
- Stacks represent intentional variants.
- Stacks contain bursts, HDR source frames, panorama source frames, or grouped review choices.
Log behavior:
- Skipped stacked photos appear in the image log as
Skipped: Stacked Photo.
Watch for:
- Stack behavior depends on Lightroom catalog organization.
- This is different from the optional
Stack Informationadvanced match criterion.
Skip Photos With Keywords
When enabled, photos with matching Lightroom keywords are excluded from duplicate comparison.
Use this when:
- You already use keywords to mark photos that should stay out of duplicate review.
- You want to avoid scanning exports, client picks, archive markers, or other keyworded sets.
Keyword entry behavior:
- Enter one or more keyword names in the skip keyword field.
- Separate keyword names with commas, semicolons, or new lines.
- The option is off by default for existing saved preferences.
Log behavior:
- Photos skipped because of a matching keyword appear in the image log
as
Skipped: Keyword.
Watch for:
- Only enable this option when the listed keywords reliably mean "do not scan this photo."
- This is different from keyword match criteria, which compare keywords on photos that remain in the scan.
2. Duplicate Detection Preset
The preset is a starting point for match criteria.
Conservative
Uses stricter default matching.
What it emphasizes:
- Filename without extension must match
- Capture time must match
- Camera model, image dimensions, and file size support the match
Best for:
- Lower false-positive risk
- RAW/JPEG pairs from the same capture
- Controlled duplicate searches
Watch for:
- It may miss duplicates with renamed files or shifted capture times.
Balanced
Recommended default.
What it emphasizes:
- Capture time and camera model are strong evidence
- Image dimensions support the match
- Filename without extension and file size provide lighter support
Best for:
- First real scans
- General duplicate review
- Testing before customizing
Watch for:
- Review results before applying markings.
Aggressive
Uses looser scoring and more supporting fields.
What it emphasizes:
- Filename without extension and capture time are strong evidence
- Camera model, lens, and dimensions provide extra support
- File size, ISO, and aperture provide lighter support
Best for:
- Discovery scans
- Finding possible duplicates where metadata may differ
- Building a broad review queue
Watch for:
- Higher false-positive risk.
- Use
Dry RunorReport Onlyfirst.
Match Criteria
Use this tab to choose which basic metadata fields define duplicate evidence.
Each row has:
- A checkbox to enable the criterion
- An importance menu
Importance Levels
Required
The criterion must match. If it does not match, the pair is disqualified.
Required criteria can also make scans faster because obvious mismatches are skipped earlier.
Use Required when:
- The field is reliable.
- A mismatch should definitely reject the pair.
Avoid Required when:
- The field may be missing.
- The field may differ between originals and exports.
- You are doing broad discovery.
Strong
Gives the field a strong influence when it matches.
Use it for fields that are highly meaningful but should not always be mandatory.
Medium
Gives the field a moderate influence when it matches.
Use it for useful supporting evidence.
Weak
Gives the field a small influence when it matches.
Use it for fields that help but should not drive the decision alone.
Ignore
The enabled field is ignored for scoring.
Use it when you want to keep a field visible but prevent it from affecting the current scan.
How A Match Is Decided
A pair becomes a duplicate when:
- All
Requiredcriteria match, if any are enabled - At least one enabled duplicate-evidence anchor matches
- Enough supporting criteria match for the selected preset
Duplicate-Evidence Anchors
Some fields can act as core duplicate evidence. These are anchors:
- Filename
- Filename without extension
- Full path
- Capture time
- Image dimensions
- File size
- GPS location
At least one anchor criterion must be enabled for the scan to create duplicate groups.
If only contextual criteria are enabled, the plugin reports a settings issue instead of creating groups.
Contextual Criteria
Contextual criteria can support a match but should not prove duplicates by themselves. Examples include camera model, lens, ISO, aperture, folder, rating, label, file type, import date, and virtual copy name.
This matters because many unrelated photos from the same shoot can share contextual metadata.
File Information Criteria
Photos With The Same Filename
Compares the full filename.
Use it for:
- Exact filename duplicate imports
- Export/original pairs that kept the same filename
Watch for:
- Different extensions or renamed exports may not match.
Photos With The Same Filename Without Extension
Compares the filename stem without the extension.
Use it for:
- RAW/JPEG pairs such as
IMG_1234.CR3andIMG_1234.JPG - Exports that kept the original base name
Watch for:
- Cameras can reuse filenames after counter rollover.
- Filename alone is usually not enough for catalog-wide cleanup.
Photos With The Same RAW/JPEG File Type
Compares normalized file type.
Use it for:
- Finding duplicates of the same general type
- Supporting other file criteria
Watch for:
- RAW and JPEG versions of the same capture are often intentionally different file types.
Photos With The Same File Size
Compares file size, with optional tolerance from
File size tolerance.
Use it for:
- Exact duplicate files
- Duplicate imports of the same file
Watch for:
- Metadata changes can alter file size.
- Different exports of the same image may have very different file sizes.
Photos In The Same Folder
Compares folder path/name metadata.
Use it for:
- Finding duplicates inside a folder
- Supporting folder-focused cleanup
Watch for:
- Folder is organization, not image identity.
- Many unrelated photos can share a folder.
Photos With The Same Full Path
Compares full path metadata.
Use it for:
- Detecting duplicate catalog references to the same file path
Watch for:
- Most normal duplicate files have different paths.
- This should usually be disabled unless you are looking for duplicate catalog references.
Capture Information Criteria
Photos Taken At The Same Time
Compares capture time, with optional tolerance from
Capture time variance.
Use it for:
- RAW/JPEG pairs
- Duplicate imports
- Camera-original duplicates
Watch for:
- Exported files can have shifted timestamps.
- Burst photos can be close together.
Photos From The Same Camera Make
Compares camera manufacturer.
Use it for:
- Supporting camera metadata
Watch for:
- Very broad. Many unrelated photos can share camera make.
Photos From The Same Camera Model
Compares camera model.
Use it for:
- Supporting capture-time and filename matches
- Separating files from different cameras
Watch for:
- Many photos from one shoot can share the same camera model.
Photos Taken With The Same Lens
Compares lens metadata.
Use it for:
- Supporting duplicate evidence
- Controlled camera-original workflows
Watch for:
- Lens metadata can be missing or formatted differently.
- Lens alone is not duplicate evidence.
Photos With The Same Focal Length
Compares focal length as numeric metadata.
Use it for:
- Supporting capture matches
Watch for:
- Many unrelated photos can share focal length.
Photos With The Same Aperture
Compares aperture as numeric metadata.
Use it for:
- Weak support in controlled workflows
Watch for:
- Aperture is common across many photos.
Photos With The Same Shutter Speed
Compares shutter speed text metadata.
Use it for:
- Weak support
Watch for:
- Formatting may differ.
- Many photos can share shutter speed.
Photos With The Same ISO
Compares ISO as numeric metadata.
Use it for:
- Weak support
Watch for:
- ISO alone is not duplicate evidence.
Image Information Criteria
Photos With The Same Image Dimensions
Compares image dimensions.
Use it for:
- Originals and same-size exports
- Supporting exact duplicate checks
Watch for:
- Crops, resizing, and exports can change dimensions.
Photos With The Same Rating
Compares Lightroom star rating.
Use it for:
- Supporting curated duplicate workflows
Watch for:
- Rating is user behavior, not image identity.
Photos With The Same Color Label
Compares Lightroom color label name.
Use it for:
- Supporting workflows where labels are consistently applied
Watch for:
- Labels are user organization, not image identity.
Location Information Criteria
Photos Taken At The Same GPS Location
Compares GPS coordinates, with optional tolerance from
GPS distance tolerance.
Use it for:
- Location-based duplicate support
- Phone photos where GPS is available
Watch for:
- Same place does not mean same photo.
- GPS can be missing, approximate, or manually assigned.
Lightroom Information Criteria
Photos With The Same Virtual Copy Name
Compares Lightroom virtual copy name.
Use it for:
- Workflows where virtual copies are named consistently
Watch for:
- Many photos have no copy name.
- This is not the same as
Skip virtual copies.
Photos Imported On The Same Date
Compares import date.
Use it for:
- Supporting duplicate-import investigations
Watch for:
- Many unrelated photos can share an import date.
Photos From The Same Import Session
Compares import-session-like metadata.
Use it for:
- Supporting duplicate import review
Watch for:
- Many unrelated photos can be part of the same import.
Advanced Match Criteria
Use this tab for optional, less common metadata fields.
Each advanced row has:
- A checkbox to enable the field
- An importance menu
The same Required, Strong,
Medium, Weak, and Ignore meanings
apply.
Advanced Field Caveat
Advanced fields depend on the metadata available in Lightroom. Many fields may be missing for some formats, cameras, exports, or catalog records.
Avoid making advanced fields Required unless you have
verified the data is consistently present.
Camera | Camera Serial Number
Compares camera serial number.
Use it when:
- You use multiple copies of the same camera model.
- Serial metadata is reliable in your files.
Watch for:
- Often missing.
- Not all cameras or file types expose it.
Camera | Firmware
Compares camera firmware metadata.
Use it when:
- You have a controlled workflow where firmware is meaningful.
Watch for:
- Rarely useful by itself.
- Can change over time.
Lens | Lens Serial Number
Compares lens serial number.
Use it when:
- Lens identity matters and serial metadata is present.
Watch for:
- Often missing.
Exposure | Exposure Compensation
Compares exposure compensation.
Use it as:
- Weak supporting evidence
Watch for:
- Many unrelated photos can share exposure compensation.
Flash | Flash Mode
Compares flash mode metadata.
Use it as:
- Weak supporting evidence
Watch for:
- Not duplicate evidence by itself.
Flash | Flash Fired
Compares whether flash fired.
Use it as:
- Weak supporting evidence
Watch for:
- Many photos can share the same flash state.
Color | White Balance
Compares white balance metadata.
Use it for:
- Supporting camera-original workflows
Watch for:
- Edited files and rendered exports may differ.
Color | Color Space
Compares color space metadata.
Use it for:
- Rendered file workflows
- Separating exports from originals
Watch for:
- Not duplicate evidence by itself.
Location | GPS Altitude
Compares GPS altitude.
Use it for:
- Extra GPS support
Watch for:
- Often missing or noisy.
Creator Information | Artist
Compares artist metadata.
Use it for:
- Metadata-rich archives
Watch for:
- Many photos from the same creator can match.
Creator Information | Copyright
Compares copyright metadata.
Use it for:
- Controlled archives
Watch for:
- Usually broad.
- Should not be main duplicate evidence.
Creator Information | Contact Information
Compares creator/contact metadata.
Use it for:
- Metadata-rich archives
Watch for:
- Often missing or broad.
Keywords | Keywords
Compares Lightroom keyword metadata.
Use it for:
- Curated workflows where duplicate variants share keywords
Watch for:
- Keywords can diverge after editing or catalog work.
Keywords | Catalog Keywords
Compares export-oriented keyword metadata.
Use it for:
- Workflows where catalog/export keyword differences matter
Watch for:
- Similar to normal keywords, this can be broad or inconsistent.
Lightroom | Collections
Compares Lightroom collection membership metadata when available.
Use it for:
- Collection-based workflows
Watch for:
- Collection membership is organization, not image identity.
Lightroom | Stack Information
Compares Lightroom stack metadata when available.
Use it for:
- Workflows where stack membership is meaningful
Watch for:
- Stack behavior depends on Lightroom catalog organization.
- This is not the same as
Skip stacked photos.
File Handling
Use this tab to choose which files should be protected as keepers inside duplicate groups.
The plugin does not delete non-keepers. It labels them as duplicate candidates in reports and optional markings.
Minimum Keepers
Controls how many files can be protected as keepers in larger groups.
Default:
Minimum keepers:1Apply extra keepers when group has at least:3
Behavior:
- With
Minimum keepersset to1, each duplicate group has one keeper. - If
Minimum keepersis greater than1, extra keepers apply only when the group size is at least the configured group-size setting. - The plugin never marks every photo in a group as a duplicate candidate. At least one file remains protected.
Example:
Minimum keepers:2Apply extra keepers when group has at least:3
Results:
- A 2-photo group gets 1 keeper and 1 duplicate candidate.
- A 3-photo group gets 2 keepers and 1 duplicate candidate.
- A 4-photo group gets 2 keepers and 2 duplicate candidates.
In the image log:
- Primary keeper is
Keeper. - Extra protected keepers are
Additional Keeper. - Non-keepers are
Duplicate Candidate.
Keeper Priority Rules
Rules are evaluated in priority order. The first enabled rule that separates two files wins. If no enabled rule separates the files, the first photo in the group is selected.
Each rule has:
- A checkbox
- A priority number
Lower priority numbers run earlier.
Prefer RAW Over Rendered Formats
Chooses RAW files over non-RAW files.
Best for:
- Keeping original camera files
Watch for:
- Disable this if your finished TIFF, PSD, or JPEG should be the keeper.
Prefer TIFF/Lossless Over JPEG
Chooses lossless rendered formats over JPEG when comparing non-RAW rendered files.
Lossless rendered extensions include:
- TIFF
- PNG
- PSD
- PSB
Best for:
- Keeping high-quality rendered masters
Watch for:
- RAW files are handled by the RAW rule, not this rule.
Prefer Higher Rating
Chooses the photo with the higher Lightroom rating.
Best for:
- Catalogs where star ratings reflect curation decisions
Watch for:
- Inconsistent ratings can choose the wrong keeper.
Prefer Larger Resolution
Chooses the photo with more pixels.
Best for:
- Keeping full-size originals over smaller exports
Watch for:
- A larger file may not be the best edited version.
Prefer Edited Photo
Chooses the photo Lightroom reports as edited.
Best for:
- Keeping developed versions
Watch for:
- Edits are catalog state, not necessarily final quality.
Prefer Non-Rejected Photo
Chooses a non-rejected photo over a rejected photo.
Best for:
- Protecting files you have not already rejected
Watch for:
- If old rejected flags are messy, review them before using this rule heavily.
Prefer Color-Labeled Photo
Chooses a photo with a color label over one without a label.
Best for:
- Workflows where labels mark preferred files
Watch for:
- Disabled by default.
- Label meaning varies by catalog.
Prefer Larger File Size
Chooses the larger file.
Best for:
- Keeping originals or higher-quality rendered files
Watch for:
- Larger file size does not always mean better file.
Prefer Newer Import
Chooses the photo imported more recently.
Best for:
- Workflows where later imports are more trustworthy
Watch for:
- Disabled by default.
- Newer import is not always better.
Prefer Older Capture Date
Chooses the older capture date.
Best for:
- Workflows where earlier capture metadata is considered more original
Watch for:
- Disabled by default.
- Do not enable both older and newer capture date unless you intentionally set priorities.
Prefer Newer Capture Date
Chooses the newer capture date.
Best for:
- Workflows where updated capture metadata is preferred
Watch for:
- Disabled by default.
- Conflicts conceptually with
Prefer older capture date.
Advanced Settings
Use this tab for tolerances, mode, cleanup, optional markings, and logging.
Tolerance Settings
Capture Time Variance
Allows capture times to match within a number of seconds.
Use 0 when:
- Exact capture time is expected.
- You are matching RAW/JPEG files from the same capture.
Increase it when:
- Exported files have slightly shifted timestamps.
- Software rounded timestamps differently.
- Cameras had small clock differences.
Watch for:
- Large values can group nearby burst photos.
GPS Distance Tolerance
Allows GPS locations to match within a number of meters.
Use small values when:
- GPS is precise.
- You want strict location matching.
Increase it when:
- Phone GPS is approximate.
- Photos were manually geotagged.
Watch for:
- Same location does not mean same photo.
File Size Tolerance
Allows file sizes to differ by a percentage.
Use 0 when:
- You want exact file-size matches.
Increase it when:
- Files were exported with small metadata differences.
- You expect slight file-size variation.
Watch for:
- Large tolerances reduce file size as evidence.
Numeric Metadata Tolerance
Allows numeric metadata values to differ by a small amount.
Applies to:
- Focal length
- Aperture
- ISO
- Advanced numeric fields
Watch for:
- This applies broadly to numeric criteria. Keep it conservative.
Mode
Dry Run
Scans and writes reports. No Lightroom markings are applied.
Use it for:
- First tests
- New settings
- Large scans you have not validated
Report Only
Scans and writes reports. No Lightroom markings are applied.
Use it for:
- Report-only workflows
- Trial-limited scans
- Situations where you want no catalog changes
Apply Marking
Scans, writes reports, and applies enabled Lightroom markings.
Use it only after:
- You have tested the settings.
- You have reviewed the logs.
- You understand which optional actions are enabled.
Watch for:
Apply Markingchanges Lightroom catalog metadata, keywords, rejected flags, and/or collections depending on selected actions.- Trial-limited scans are forced to report-only behavior.
Cleanup Before Scan
Cleanup options run before the new scan, only when enabled and allowed by the license/trial state.
Before Scan, Remove Previous ADF Collection Set
Deletes the configured ADF collection set before scanning.
Default collection set name:
Echoes
Watch for:
- Only use this for collection sets created for ADF review.
- If you rename the collection set to something you use manually, cleanup can remove that set.
Before Scan, Remove ADF Keywords From Photos
Removes the configured ADF duplicate and keeper keywords from photos.
Default keyword names:
ADF Duplicate CandidateADF Keeper
Watch for:
- Use unique keyword names for ADF.
- If you reuse those keyword names for other purposes, cleanup can remove them.
Before Scan, Clear Rejected Flags From Previous ADF Collection Photos
Clears rejected flags only from photos found inside the configured ADF collection set.
Watch for:
- This is intentionally narrow.
- It does not clear rejected flags across the whole catalog.
- If collection cleanup is also enabled, rejected flags are cleared before the collection set is deleted.
Marking Actions
Add Duplicate Keyword
Adds the configured duplicate keyword to non-keeper photos in duplicate groups.
Default:
ADF Duplicate Candidate
Duplicate Keyword
Text field for the duplicate keyword name.
Use a unique name so cleanup affects only plugin-managed keywords.
Add Keeper Keyword
Adds the configured keeper keyword to suggested keepers and additional keepers.
Default:
ADF Keeper
Keeper Keyword
Text field for the keeper keyword name.
Create Duplicate Candidates Collection
Creates a review collection containing photos from duplicate groups.
Default collection name:
All Duplicate Groups
Collection Name
Text field for the all-groups review collection.
Create Collection Set
Creates a parent collection set and a per-scan child collection set.
Default parent collection set:
Echoes
Default per-scan set format:
Scan - YYYYMMDD_HHMMSS
Collection Set Name
Text field for the parent collection set name.
Scan Set Prefix
Text field for the prefix used in each per-scan collection set.
Create One Collection Per Duplicate Group
Creates group collections such as:
Group 001
Group 002
Group 003
Best for:
- Reviewing one duplicate group at a time
Mark Duplicate Candidates As Rejected
Marks non-keeper duplicate candidates as rejected in Lightroom.
Behavior:
- Suggested keepers are first cleared from rejected status.
- Duplicate candidates are then marked rejected.
- Additional keepers are protected like primary keepers.
Watch for:
- Rejected status does not delete files.
- Confirm results before deleting rejected files outside the plugin.
Log Folder
Folder where reports are written.
Use a folder you can find easily, such as a project folder or Documents.
Choose
Opens a folder picker for the log folder.
Log Format
Controls image and audit log format.
Options:
CSVText
CSV is recommended for spreadsheet review.
Results And Logs
Each completed scan writes reports to the selected log folder.
Summary Dialog
The summary dialog shows:
- Photos scanned
- Duplicate groups found
- Potential duplicates
- Keepers suggested
- Unique photos
- Skipped photos
- Errors
- License summary, when relevant
- Settings issue, when relevant
- Image log path
- Audit log path
Summary Report
The summary report is a text file containing:
- Mode
- Requested mode
- Effective mode
- License summary
- Photos scanned
- Duplicate groups found
- Potential duplicates
- Keepers suggested
- Unique photos
- Skipped photos
- Errors
- Image log path
- Audit log path
- Settings issue, if any
Image Log
The image log has one row for each scanned photo.
Columns:
Lightroom IDFilenameFull PathFolderExtensionFile SizeCapture DateImport DateCamera MakeCamera ModelLensISOApertureShutter SpeedDimensionsRatingLabelGPSDuplicate Group IDResultMetadata Diagnostics, which can help support troubleshooting if Lightroom could not read some metadata
Result values:
Keeper: primary suggested keeper in a duplicate group.Additional Keeper: extra protected keeper when minimum keepers are enabled.Duplicate Candidate: non-keeper photo in a duplicate group.Unique: target photo that did not end up in a duplicate group.Reference: source photo used for comparison inSelected Photos Against Current Sourcebut not itself reported as a selected target duplicate result.Skipped: not evaluated because no criteria were enabled or the configuration was invalid.Skipped: Virtual Copy: excluded bySkip virtual copies.Skipped: Stacked Photo: excluded bySkip stacked photos.Skipped: Keyword: excluded by the keyword skip option onScan Setup.Error: metadata read or processing error occurred.
Audit Log
The audit log explains comparison decisions.
Columns:
Group IDPhoto APhoto BCriterionDecisionConfidenceSuggested KeeperReason
For large scans, the audit log may summarize only part of the pair-by-pair detail so the report stays manageable. Duplicate detection still evaluates the scan normally.
License
Use this tab to activate, deactivate, retrieve, or buy a license.
Trial Behavior
Trial policy:
- Full processing is allowed for up to 50 photos per scan.
- Trial duration is 14 days.
- If the scan has more than 50 photos and no paid license is active, the scan still writes reports but cleanup and Lightroom markings are disabled.
- If the trial has expired and no paid license is active, reports can still be generated, but cleanup and Lightroom markings require a license.
License Key
Enter the license key supplied by the licensing service.
The plugin uses the key to activate your paid license.
Open License Retrieval Page
Opens:
https://adf.colrbent.com/thank-you.html
Use this if you need to find or retrieve your license key.
Buy License
Visible when no paid license is active.
Opens:
https://adf.colrbent.com
Activate
Attempts to activate the entered license key. Successful activation shows paid license status and removes the scan limit.
Deactivate
Deactivates the local license and returns the plugin to trial/limited behavior.
Use it when:
- Moving a license to another computer
- Clearing an incorrect activation
License Checks
Paid licenses may occasionally need an online check. If validation is required, connect to the internet and activate or check the license again.
About
The About tab displays:
- Product name
- Short product description
- Version
- Website
- Support email
- License help URL
- Copyright
Check for Updatesbutton
Check For Updates
Checks whether a newer version is available.
If an update is available, the dialog can open the download page.
Recommended Workflows
Small Test Scan
- Select 2 to 50 photos.
- Use
Selected Photos. - Use
Balanced. - Use
Dry Run. - Review image and audit logs.
- Adjust criteria if needed.
Folder Review
- Select a folder in Lightroom.
- Use
Current Folder. - Start with
Balanced. - Use
Report Only. - Review logs.
- If results are good, rerun with
Apply Markingand collection creation.
Selected Photos Against Source
- Select the target photos.
- Make sure the correct folder, collection, or source is active.
- Choose
Selected Photos Against Current Source. - Use
Report Only. - Review
Referencerows in the image log.
Large Catalog Audit
- Test settings on a small scope first.
- Use reliable anchors such as capture time, filename without extension, dimensions, file size, or GPS.
- Avoid broad contextual-only settings.
- Use
Report Onlyfirst. - Expect longer runtime and larger logs.
Review Collections Workflow
- Run a scan with collection creation enabled.
- Review
All Duplicate Groups. - Review individual
Group ###collections. - Confirm keeper choices.
- Delete, reject, archive, or ignore manually in Lightroom according to your own workflow.
How Not To Use The Plugin
Do not:
- Run
Apply Markingon an untested full catalog. - Delete files solely because they are marked as duplicate candidates.
- Use only contextual criteria such as camera model, lens, ISO, folder, rating, or label.
- Set many unreliable fields to
Required. - Use cleanup options with collection or keyword names that you also use manually.
- Assume virtual copies or stacks are unwanted duplicates.
- Assume larger file size always means better keeper.
Troubleshooting
No Photos Were Found
Check:
- The selected scan scope.
- Whether a folder, collection, or source is actually active in Lightroom.
- Whether target photos are selected for
Selected PhotosorSelected Photos Against Current Source.
No Duplicates Were Found
Possible causes:
- Criteria are too strict.
- A required field does not match.
- An anchor criterion is missing.
- Metadata is missing or inconsistent.
- Skip filters excluded expected candidates.
Try:
- Use
Balanced. - Remove unnecessary
Requiredsettings. - Check the image log.
- Use a smaller known duplicate set for testing.
Too Many Duplicates Were Found
Possible causes:
- Criteria are too broad.
- Threshold is low.
- Contextual fields are carrying too much weight.
- Required criteria are not selective enough.
Try:
- Use
Conservative. - Require capture time or filename without extension when appropriate.
- Disable weak contextual fields.
- Review the audit log.
Scan Takes Too Long
Possible causes:
- Large scan scope.
- Few or no required criteria.
- Too many photos remain possible matches after the required criteria are applied.
Try:
- Use a smaller scope.
- Add reliable
Requiredcriteria. - Scan one folder or collection first.
Apply Marking Did Not Run
Possible causes:
- Mode was
Dry RunorReport Only. - Trial scan limit was exceeded.
- Trial expired.
- License check is required.
- Lightroom blocked a catalog write operation.
Check:
- Summary report effective mode.
- License status.
- Marking error message, if shown.
Logs Are Missing
Check:
- Log folder exists and is writable.
- Lightroom has permission to write there.
- The scan was not cancelled before logs were written.
Glossary
Anchor Criterion
A metadata field strong enough to act as duplicate evidence, such as capture time, filename, dimensions, file size, GPS, or full path.
Contextual Criterion
A metadata field that can support a match but should not prove duplicates by itself, such as camera model, lens, folder, rating, or label.
Duplicate Group
A set of two or more photos the plugin considers probable duplicates.
Keeper
The primary photo suggested for protection inside a duplicate group.
Additional Keeper
An extra protected photo when minimum keepers are enabled.
Duplicate Candidate
A non-keeper photo inside a duplicate group.
Reference
A source photo used for comparison in
Selected Photos Against Current Source but not itself
reported as a selected target duplicate result.
Report Only
Mode that writes reports without changing Lightroom catalog markings.
Apply Marking
Mode that writes reports and applies selected Lightroom keywords, collections, and rejected flags.
Trial Limit
The unlicensed full-processing limit of 50 photos per scan during the 14-day trial.