ente/mobile/lib/services/machine_learning/ml_models_overview.dart
2024-07-25 21:43:47 +02:00

39 lines
1.2 KiB
Dart

import "package:photos/services/machine_learning/face_ml/face_detection/face_detection_service.dart";
import "package:photos/services/machine_learning/face_ml/face_embedding/face_embedding_service.dart";
import "package:photos/services/machine_learning/ml_model.dart";
import "package:photos/services/machine_learning/semantic_search/clip/clip_image_encoder.dart";
import "package:photos/services/machine_learning/semantic_search/clip/clip_text_encoder.dart";
enum MLModels {
faceDetection,
faceEmbedding,
clipImageEncoder,
clipTextEncoder,
}
extension MLModelsExtension on MLModels {
MlModel get model {
switch (this) {
case MLModels.faceDetection:
return FaceDetectionService.instance;
case MLModels.faceEmbedding:
return FaceEmbeddingService.instance;
case MLModels.clipImageEncoder:
return ClipImageEncoder.instance;
case MLModels.clipTextEncoder:
return ClipTextEncoder.instance;
}
}
bool get isIndexingModel {
switch (this) {
case MLModels.faceDetection:
case MLModels.faceEmbedding:
case MLModels.clipImageEncoder:
return true;
case MLModels.clipTextEncoder:
return false;
}
}
}