I have 405 files that for whatever reason have AssetFile.shown=0 but I can’t find any reason for that and they are not becoming AssetFile.shown=1 and corresponding Asset row is not being created even after ./photostructure sync-file --force --info and no errors shown
$ ./photostructure sync-file --info --force F:/SynologyDrive/Photos/0001/0157.jpg --no-color
...
... lots of info without any errors
...
$ ./photostructure list --where="AssetFile.shown = 0 and AssetFile.uri like '%/0157.jpg'"
F:\SynologyDrive\Photos\0001\0157.jpg
You can look at the other asset files associated to the same asset.
If it’s the only asset file for the asset, I suspect it failed to create a preview image set, or ffmpeg failed to transcode, and the asset’s shown column should be 0 as well.
Awesome. Then that’s a bug in the deduplication logic
select uri from AssetFile where assetId = 98
psfile://32hPdZdkz/SynologyDrive/Photos/0001/0157.jpg
psfile://32hPdZdkz/SynologyDrive/Photos/0001/0158.jpg
psfile://32hPdZdkz/SynologyDrive/Photos/0001/0156.jpg
I added all those images to the gist above where it’s clearly seen they are totally different images
These images seem to have a precise (and same) captured-at.
PhotoStructure assumes if there are minutes or seconds or milliseconds set in the date, that it’s an actual timestamp, and not an estimated date stamp. Due to computational imagery, PhotoStructure has to dramatically relax minimum image correlation to make RAW and JPG pairs match.
This makes all the images be considered different:
I think the heuristic could be that if you have 000 milliseconds, that’s an artificial time. I guess the 0.1% chance of the false positive heuristic is acceptable )
# +---------------------------+
# | datesBeforeAreEstimated |
# +---------------------------+
#
# PhotoStructure automatically interprets captured-at timestamps before this
# ISO-formatted datestamp as "estimated." PhotoStructure also considers
# timestamps whose minutes, seconds, and milliseconds are all 0 as
# "estimated."
#
# When assets have an estimated captured-at time, tighter image correlation is
# required to prevent different images as being incorrectly aggregated into
# the same asset.
#
# The default value is the release date for the Nikon Coolpix 950, which was
# one of the first prosumer digital cameras with ~2MP resolution.
#
# PS_DATES_BEFORE_ARE_ESTIMATED="1999-02-15"
Is there a way to rebuild specific files only? ./photostructure sync-file --force leaves AssetFile.shown = 0. I am currently trying to ./photostructure sync --force --rebuild --exit-when-done but I think it’s an overkill to rebuild the entire library. Ideally I should be able to do something like ./photostructure --where "AssetFile.shown = 0" | ./photostructure sync-file --force --rebuild