mirror of
https://github.com/ente-io/ente.git
synced 2025-05-02 04:05:42 +00:00
39 lines
1.2 KiB
Dart
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;
|
|
}
|
|
}
|
|
}
|