Propagate

This commit is contained in:
Manav Rathi
2024-08-16 15:22:02 +05:30
parent 2ae98148ae
commit 3bc41f253b
2 changed files with 13 additions and 13 deletions

View File

@@ -241,10 +241,10 @@ export const clusterFaces = async (faceIndexes: FaceIndex[]) => {
// clusters as its display face.
const faceForFaceID = new Map(faces.map((f) => [f.faceID, f]));
const people = await clusterGroups();
const cgroups = await clusterGroups();
for (const person of people) {
person.avatarFaceID = person.clusterIDs
for (const cgroup of cgroups) {
cgroup.avatarFaceID = cgroup.clusterIDs
.map((clusterID) => clusterIndexForClusterID.get(clusterID))
.map((clusterIndex) =>
clusterIndex ? clusters[clusterIndex] : undefined,
@@ -265,7 +265,7 @@ export const clusterFaces = async (faceIndexes: FaceIndex[]) => {
validClusters,
clusterIndexForClusterID,
clusterIDForFaceID,
people,
cgroups,
},
]);
log.debug(
@@ -273,7 +273,7 @@ export const clusterFaces = async (faceIndexes: FaceIndex[]) => {
`Clustered ${faces.length} faces into ${validClusters.length} clusters (${Date.now() - t} ms)`,
);
return { clusters: validClusters, people };
return { clusters: validClusters, cgroups };
};
/**

View File

@@ -347,7 +347,7 @@ export const wipCluster = async () => {
if (last) return last;
const { clusters, people } = await clusterFaces(await faceIndexes());
const { clusters, cgroups } = await clusterFaces(await faceIndexes());
const clusterByID = new Map(
clusters.map((cluster) => [cluster.id, cluster]),
);
@@ -356,31 +356,31 @@ export const wipCluster = async () => {
const localFilesByID = new Map(localFiles.map((f) => [f.id, f]));
const result: SearchPerson[] = [];
for (const person of people) {
let avatarFaceID = person.avatarFaceID;
for (const cgroup of cgroups) {
let avatarFaceID = cgroup.avatarFaceID;
// TODO-Cluster
// Temp
if (!avatarFaceID) {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
avatarFaceID = person.clusterIDs
avatarFaceID = cgroup.clusterIDs
.map((id) => clusterByID.get(id))
.flatMap((cluster) => cluster?.faceIDs ?? [])[0]!;
}
person.clusterIDs;
cgroup.clusterIDs;
const avatarFaceFileID = fileIDFromFaceID(avatarFaceID);
const avatarFaceFile = localFilesByID.get(avatarFaceFileID ?? 0);
if (!avatarFaceFileID || !avatarFaceFile) {
assertionFailed(`Face ID ${avatarFaceID} without local file`);
continue;
}
const files = person.clusterIDs
const files = cgroup.clusterIDs
.map((id) => clusterByID.get(id))
.flatMap((cluster) => cluster?.faceIDs ?? [])
.map((faceID) => fileIDFromFaceID(faceID))
.filter((fileID) => fileID !== undefined);
result.push({
id: person.id,
name: person.name,
id: cgroup.id,
name: cgroup.name,
files,
displayFaceID: avatarFaceID,
displayFaceFile: avatarFaceFile,