diff --git a/mobile/lib/services/machine_learning/ml_service.dart b/mobile/lib/services/machine_learning/ml_service.dart index 7559e5508a..74d6685d94 100644 --- a/mobile/lib/services/machine_learning/ml_service.dart +++ b/mobile/lib/services/machine_learning/ml_service.dart @@ -237,8 +237,11 @@ class MLService { } } - Future clusterAllImages({bool clusterInBuckets = true}) async { - if (!_canRunMLFunction(function: "Clustering")) return; + Future clusterAllImages({ + bool clusterInBuckets = true, + bool force = false, + }) async { + if (!_canRunMLFunction(function: "Clustering") && !force) return; if (_clusteringIsHappening) { _logger.info("clusterAllImages() is already running, returning"); return; diff --git a/mobile/lib/ui/viewer/file_details/face_widget.dart b/mobile/lib/ui/viewer/file_details/face_widget.dart index c4d6395053..06784105e8 100644 --- a/mobile/lib/ui/viewer/file_details/face_widget.dart +++ b/mobile/lib/ui/viewer/file_details/face_widget.dart @@ -1,3 +1,4 @@ +import "dart:async"; import "dart:developer" show log; import "dart:typed_data"; @@ -13,6 +14,7 @@ import "package:photos/models/ml/face/person.dart"; import "package:photos/services/machine_learning/face_ml/face_detection/detection.dart"; import "package:photos/services/machine_learning/face_ml/face_filtering/face_filtering_constants.dart"; import "package:photos/services/machine_learning/face_ml/feedback/cluster_feedback.dart"; +import "package:photos/services/machine_learning/ml_service.dart"; import "package:photos/services/search_service.dart"; import "package:photos/theme/ente_theme.dart"; import "package:photos/ui/viewer/file/no_thumbnail_widget.dart"; @@ -121,6 +123,7 @@ class _FaceWidgetState extends State { context, S.of(context).faceNotClusteredYet, ); + unawaited(MLService.instance.clusterAllImages(force: true)); return; } if (widget.person != null) {