[mob][photos] Minor ML improvements (#6043)
## Description - Expose flag for when ML and Memories is running - UI fix for deleting all files in cluster - Log times ML models are loaded ## Tests Tested in debug mode on my pixel 8.
This commit is contained in:
@@ -28,6 +28,9 @@ class MLIndexingIsolate extends SuperIsolate {
|
||||
@override
|
||||
bool get shouldAutomaticDispose => true;
|
||||
|
||||
int _loadedModelsCount = 0;
|
||||
int _deloadedModelsCount = 0;
|
||||
|
||||
final _initModelLock = Lock();
|
||||
final _downloadModelLock = Lock();
|
||||
|
||||
@@ -144,6 +147,10 @@ class MLIndexingIsolate extends SuperIsolate {
|
||||
_logger.info(
|
||||
'Loading models. faces: $shouldLoadFaces, clip: $shouldLoadClip',
|
||||
);
|
||||
_loadedModelsCount++;
|
||||
_logger.info(
|
||||
"Loaded models count: $_loadedModelsCount, deloaded models count: $_deloadedModelsCount",
|
||||
);
|
||||
await MLIndexingIsolate.instance
|
||||
._loadModels(loadFaces: shouldLoadFaces, loadClip: shouldLoadClip);
|
||||
_logger.info('Models loaded');
|
||||
@@ -249,6 +256,11 @@ class MLIndexingIsolate extends SuperIsolate {
|
||||
}
|
||||
if (modelNames.isEmpty) return;
|
||||
try {
|
||||
_logger.info("Releasing models $modelNames");
|
||||
_deloadedModelsCount++;
|
||||
_logger.info(
|
||||
"Loaded models count: $_loadedModelsCount, deloaded models count: $_deloadedModelsCount",
|
||||
);
|
||||
await runInIsolate(IsolateOperation.releaseIndexingModels, {
|
||||
"modelNames": modelNames,
|
||||
"modelAddresses": modelAddresses,
|
||||
|
||||
@@ -51,6 +51,9 @@ class MLService {
|
||||
bool _isRunningML = false;
|
||||
bool _shouldPauseIndexingAndClustering = false;
|
||||
|
||||
bool get isRunningML =>
|
||||
_isRunningML || memoriesCacheService.isUpdatingMemories;
|
||||
|
||||
static const _kForceClusteringFaceCount = 8000;
|
||||
late final mlDataDB = MLDataDB.instance;
|
||||
|
||||
|
||||
@@ -42,6 +42,9 @@ class MemoriesCacheService {
|
||||
List<SmartMemory>? _cachedMemories;
|
||||
bool _shouldUpdate = false;
|
||||
|
||||
bool _isUpdatingMemories = false;
|
||||
bool get isUpdatingMemories => _isUpdatingMemories;
|
||||
|
||||
final _memoriesUpdateLock = Lock();
|
||||
|
||||
MemoriesCacheService(this._prefs) {
|
||||
@@ -174,6 +177,7 @@ class MemoriesCacheService {
|
||||
_logger.info(
|
||||
"Updating memories cache (shouldUpdate: $_shouldUpdate, forced: $forced)",
|
||||
);
|
||||
_isUpdatingMemories = true;
|
||||
try {
|
||||
final EnteWatch? w =
|
||||
kDebugMode ? EnteWatch("MemoriesCacheService") : null;
|
||||
@@ -226,6 +230,8 @@ class MemoriesCacheService {
|
||||
w?.logAndReset('_cacheUpdated method done');
|
||||
} catch (e, s) {
|
||||
_logger.info("Error updating memories cache", e, s);
|
||||
} finally {
|
||||
_isUpdatingMemories = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -66,8 +66,7 @@ class _ClusterPageState extends State<ClusterPage> {
|
||||
files = widget.searchResult;
|
||||
_filesUpdatedEvent =
|
||||
Bus.instance.on<LocalPhotosUpdatedEvent>().listen((event) {
|
||||
if (event.type == EventType.deletedFromDevice ||
|
||||
event.type == EventType.deletedFromEverywhere ||
|
||||
if (event.type == EventType.deletedFromEverywhere ||
|
||||
event.type == EventType.deletedFromRemote ||
|
||||
event.type == EventType.hide) {
|
||||
for (var updatedFile in event.updatedFiles) {
|
||||
@@ -133,7 +132,7 @@ class _ClusterPageState extends State<ClusterPage> {
|
||||
selectedFiles: _selectedFiles,
|
||||
enableFileGrouping: widget.enableGrouping,
|
||||
initialFiles: widget.searchResult,
|
||||
header: widget.showNamingBanner
|
||||
header: widget.showNamingBanner && files.isNotEmpty
|
||||
? PeopleBanner(
|
||||
type: PeopleBannerType.addName,
|
||||
faceWidget: PersonFaceWidget(
|
||||
|
||||
Reference in New Issue
Block a user