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

@ -225,6 +225,105 @@ public class AiSettingsViewModel : ViewModelBase
}
}
private string _faceMatcherExecutablePath = string.Empty;
public string FaceMatcherExecutablePath
{
get => _faceMatcherExecutablePath;
set
{
_faceMatcherExecutablePath = value;
NotifyPropertyChanged();
}
}
private string _faceMatcherEncodingsPath = string.Empty;
public string FaceMatcherEncodingsPath
{
get => _faceMatcherEncodingsPath;
set
{
_faceMatcherEncodingsPath = value;
NotifyPropertyChanged();
}
}
private string _faceMatcherOutputPath = string.Empty;
public string FaceMatcherOutputPath
{
get => _faceMatcherOutputPath;
set
{
_faceMatcherOutputPath = value;
NotifyPropertyChanged();
}
}
private string _faceMatcherLogPath = string.Empty;
public string FaceMatcherLogPath
{
get => _faceMatcherLogPath;
set
{
_faceMatcherLogPath = value;
NotifyPropertyChanged();
}
}
private double _faceMatcherTolerance = 0.5;
public double FaceMatcherTolerance
{
get => _faceMatcherTolerance;
set
{
_faceMatcherTolerance = value;
NotifyPropertyChanged();
}
}
private string _faceMatcherSelectedImagePath = string.Empty;
public string FaceMatcherSelectedImagePath
{
get => _faceMatcherSelectedImagePath;
set
{
_faceMatcherSelectedImagePath = value;
NotifyPropertyChanged();
}
}
private bool _isFaceMatcherRunning;
public bool IsFaceMatcherRunning
{
get => _isFaceMatcherRunning;
set
{
_isFaceMatcherRunning = value;
NotifyPropertyChanged();
}
}
private string _faceMatcherStatusMessage = string.Empty;
public string FaceMatcherStatusMessage
{
get => _faceMatcherStatusMessage;
set
{
_faceMatcherStatusMessage = value;
NotifyPropertyChanged();
}
}
private string _faceMatcherCommandOutput = string.Empty;
public string FaceMatcherCommandOutput
{
get => _faceMatcherCommandOutput;
set
{
_faceMatcherCommandOutput = value;
NotifyPropertyChanged();
}
}
private double _aiProgress;
public double AiProgress
{
@ -237,4 +336,6 @@ public class AiSettingsViewModel : ViewModelBase
}
public ObservableCollection<AiResultItem> PreviewResults { get; } = new();
public ObservableCollection<FaceMatcherResultItem> FaceMatcherResults { get; } = new();
}