feat: Add Face Matcher functionality and related settings

- Implemented FilePathToBitmapConverter for image loading.
- Enhanced DataModel with commands and properties for Face Matcher.
- Created FaceMatcherResultItem model to store results.
- Updated SettingsDto to include Face Matcher paths and tolerance.
- Introduced PickerPreferenceService for managing folder paths.
- Expanded AiSettingsViewModel to manage Face Matcher settings and results.
This commit is contained in:
MaddoScientisto 2026-05-09 20:27:44 +02:00
commit c261557a29
10 changed files with 2041 additions and 192 deletions

View file

@ -0,0 +1,24 @@
namespace ImageCatalog_2.Models;
public sealed class FaceMatcherResultItem
{
public string PhotoId { get; init; } = string.Empty;
public double? Score { get; init; }
public string ScoreDisplay => Score.HasValue ? Score.Value.ToString("0.###") : string.Empty;
public string ResolvedImagePath { get; init; } = string.Empty;
public int CandidateCount { get; init; }
public string RawRow { get; init; } = string.Empty;
public string DebugSummary { get; init; } = string.Empty;
public string SearchImagePath { get; init; } = string.Empty;
public string CsvPath { get; init; } = string.Empty;
public string LogPath { get; init; } = string.Empty;
}

View file

@ -314,6 +314,14 @@ namespace ImageCatalog_2.Models
[XmlElement("AI_FaceUpsample")]
public bool FaceUpsample { get; set; } = true;
[JsonPropertyName("FaceMatcherExecutablePath")]
[XmlElement("AI_FaceMatcherExecutablePath")]
public string FaceMatcherExecutablePath { get; set; } = string.Empty;
[JsonPropertyName("FaceMatcherTolerance")]
[XmlElement("AI_FaceMatcherTolerance")]
public double FaceMatcherTolerance { get; set; } = 0.5;
// Race upload settings
[JsonPropertyName("ApiLogin")]
[XmlElement("RaceUpload_Login")]