[pull] develop from photoprism:develop - #1778
Merged
Merged
Conversation
The clustering thresholds are read from the face package, which only Propagate assigns, so a migration re-clustered at the previous model's distances until the next start. SetFaceModel now propagates them. A migration that runs from the CLI also leaves a running instance behind: it kept the model it started with and advised migrating to it, which would have undone the run. That is now told apart from a genuine mismatch, embedding work is paused, and a restart is asked for instead.
Recognition assigns a person to the markers of a cluster that already carries one, which writes subj_uid without going through the matcher's update count. A run whose whole output was that left the counts stale, so the newly recognized pictures did not reach the people views, which order and filter on them. Only "faces update" without --force was affected.
A face crop is taken from a pre-generated rendition and never from the original, so a cache capped below what the crops need embeds a library from upscaled pixels while the detail sits on the same disk. Nothing downstream can tell such a vector apart, so the repair is a second full migration. The plan now counts the markers a wider thumbnail would fix and names the "--thumb-size" that clears them, apart from the ones whose original is too small, which no setting recovers. The upscaling log line also named the file it was handed rather than the rendition that was opened, which sends a diagnosis to the wrong image. Documents these and the two preceding commits in the face README.
The pre-flight read THUMB_SIZE, which says what indexing writes from now on and nothing about the files already there: raising it without running "photoprism thumbs" cleared the warning while every crop still came from the renditions on disk, and its own remedy left it firing forever. The plan now samples the ladder the oldest files hold, so both directions answer from the cache, and the remedy names a "thumbs" run when the limit already covers the size that clears it. Also asks for the width the aligned crop actually requests rather than the fallback's, so the shortfall is not over-reported; consults the recorded model before clearing a pause a worker set; sends the restart notice through the system log; and no longer refuses a migration when this advisory count cannot be taken.
…them A face crop is taken from a cached rendition and never from the original, so a library indexed at a lower THUMB_SIZE was embedded from upscaled pixels while the detail sat in the original on the same disk. Asking the operator to pre-generate the whole ladder first costs storage and hours for renditions most files never need, and a run they skip that step for has to be repeated in full. The run now renders the one rendition each file's smallest marker needs, under the hash the index recorded, and lifts the on-demand size limit while it does: that limit exists because a search results page renders hundreds of thumbnails at once, which a batch run in a terminal does not do. The pre-flight therefore forecasts that work rather than warning about it, and states apart the markers whose originals are too small, which is the only part no rendition recovers.
A render that failed was a debug line and nothing else, so a cache volume that is read-only or full left the run embedding from upscaled crops with no trace - the outcome the pass exists to prevent, and the one it cannot show afterwards. It is now counted, reported once while it happens and again in the summary, and the run refuses to start, and stops between batches, when storage is critically low. The rendition is also bounded at Fit4096, above which a face gains nothing measurable and nothing else refreshes or purges what was written; a file whose bytes are not the ones its recorded hash names is left alone; and an empty rendition no longer counts as one the cache holds.
The second detection pass finds the smallest faces in a library, and a crop is taken from a pre-generated rendition: where the cache offers none wider than the detection thumbnail, those faces are detected only to stay unrecognizable, because they reach neither the model's template nor the clustering bar. Unset, FACE_SIZE_RETRY now follows what a crop can reach - off at a thumbnail limit of 720, 20 up to 1920, and the shipped 10 above that or when on-demand rendering is enabled, which is consent to render what is missing. An explicit value stands in either direction. The flag carries no Value, or the option would be non-zero on every start and never reach the derivation.
…ng bar A vector drawn from too few pixels is indistinguishable from one that was not, so an operator whose thumbnails are smaller than their faces need - or whose migration could not write a rendition - has nothing to read. The audit now counts the markers whose recorded extent is below the bar, and how many of those their original could still supply, which separates what a re-run recovers from what no thumbnail size can.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )