Remove DB dependency from indexer

This commit is contained in:
Manav Rathi
2024-05-18 09:16:53 +05:30
parent ae70eb33dd
commit 87f60149e1
2 changed files with 14 additions and 16 deletions

View File

@@ -3,7 +3,6 @@ import log from "@/next/log";
import { workerBridge } from "@/next/worker/worker-bridge";
import { euclidean } from "hdbscan";
import { Matrix } from "ml-matrix";
import mlIDbStorage from "services/face/db";
import { Box, Dimensions, Point, enlargeBox, newBox } from "services/face/geom";
import {
DetectedFace,
@@ -22,10 +21,8 @@ import {
clamp,
createGrayscaleIntMatrixFromNormalized2List,
cropWithRotation,
fetchImageBitmap,
fetchImageBitmapForContext,
getFaceId,
getLocalFile,
getPixelBilinear,
imageBitmapToBlob,
normalizePixelBetween0And1,
@@ -772,18 +769,6 @@ export const getFaceCrop = (
};
};
export const regenerateFaceCrop = async (faceID: string) => {
const fileID = Number(faceID.split("-")[0]);
const personFace = await mlIDbStorage.getFace(fileID, faceID);
if (!personFace) {
throw Error("Face not found");
}
const file = await getLocalFile(personFace.fileId);
const imageBitmap = await fetchImageBitmap(file);
return await saveFaceCrop(imageBitmap, personFace);
};
async function extractFaceImagesToFloat32(
faceAlignments: Array<FaceAlignment>,
faceSize: number,

View File

@@ -9,6 +9,7 @@ import { CustomError, parseUploadErrorCodes } from "@ente/shared/error";
import PQueue from "p-queue";
import { putEmbedding } from "services/embeddingService";
import mlIDbStorage, { ML_SEARCH_CONFIG_NAME } from "services/face/db";
import { fetchImageBitmap, getLocalFile } from "services/face/image";
import {
Face,
FaceDetection,
@@ -19,7 +20,7 @@ import {
import { getLocalFiles } from "services/fileService";
import { EnteFile } from "types/file";
import { isInternalUserForML } from "utils/user";
import { indexFaces, regenerateFaceCrop } from "../face/f-index";
import { indexFaces, saveFaceCrop } from "../face/f-index";
/**
* TODO-ML(MR): What and why.
@@ -567,3 +568,15 @@ export function logQueueStats(queue: PQueue, name: string) {
console.error(`queuestats: ${name}: Error, `, error),
);
}
export const regenerateFaceCrop = async (faceID: string) => {
const fileID = Number(faceID.split("-")[0]);
const personFace = await mlIDbStorage.getFace(fileID, faceID);
if (!personFace) {
throw Error("Face not found");
}
const file = await getLocalFile(personFace.fileId);
const imageBitmap = await fetchImageBitmap(file);
return await saveFaceCrop(imageBitmap, personFace);
};