feat: Enhance AI extraction summaries and worker allocation for GPU support
Some checks failed
Build Windows Avalonia / build (push) Failing after 1m38s
Build Windows Avalonia / release (push) Has been skipped

This commit is contained in:
MaddoScientisto 2026-05-09 19:31:21 +02:00
commit f57dc1edba
3 changed files with 90 additions and 51 deletions

View file

@ -450,12 +450,14 @@ namespace ImageCatalog_2
private string BuildNumberAiIdleSummary()
{
var workerCount = ResolveNumberAiWorkerCount(UseNumberAiGpu, NumberAiWorkloadLevel);
return $"In attesa. Carico {NumberAiWorkloadLevel}/5, {workerCount} worker, 0.00 img/s.";
var unit = UseNumberAiGpu ? "batch" : "worker";
return $"In attesa. Carico {NumberAiWorkloadLevel}/5, {workerCount} {unit}, 0.00 img/s.";
}
private static string BuildNumberAiProgressSummary(AiExtractionProgressUpdate progress)
{
return $"{progress.ProcessedFiles}/{progress.TotalFiles} immagini, media {progress.AverageImagesPerSecond:F2} img/s, carico {progress.WorkloadLevel}/5, {progress.WorkerCount} worker.";
var unit = progress.UseGpu ? "batch" : "worker";
return $"{progress.ProcessedFiles}/{progress.TotalFiles} immagini, media {progress.AverageImagesPerSecond:F2} img/s, carico {progress.WorkloadLevel}/5, {progress.WorkerCount} {unit}.";
}
private static string BuildNumberAiCompletionSummary(AiExtractionRunSummary summary)
@ -465,7 +467,8 @@ namespace ImageCatalog_2
return "Nessuna immagine trovata per OCR.";
}
return $"Completato: {summary.ProcessedFiles}/{summary.TotalFiles} immagini, media finale {summary.AverageImagesPerSecond:F2} img/s, errori {summary.FailedFiles}, carico {summary.WorkloadLevel}/5, {summary.WorkerCount} worker.";
var unit = summary.UseGpu ? "batch" : "worker";
return $"Completato: {summary.ProcessedFiles}/{summary.TotalFiles} immagini, media finale {summary.AverageImagesPerSecond:F2} img/s, errori {summary.FailedFiles}, carico {summary.WorkloadLevel}/5, {summary.WorkerCount} {unit}.";
}
private List<string> LoadAvailableFonts()
@ -2228,11 +2231,11 @@ namespace ImageCatalog_2
var requestedWorkers = useGpu
? normalized switch
{
1 => 2,
2 => 4,
3 => 8,
4 => 12,
_ => 16
1 => 4,
2 => 8,
3 => 16,
4 => 24,
_ => 32
}
: normalized switch
{
@ -2243,7 +2246,7 @@ namespace ImageCatalog_2
_ => 5
};
return Math.Min(requestedWorkers, maxWorkers);
return useGpu ? requestedWorkers : Math.Min(requestedWorkers, maxWorkers);
}
private static int NormalizeFaceMinSize(int value)