Fix delete image bug

This commit is contained in:
Weitheng Haw 2025-01-28 16:12:18 +00:00
parent 8a70da4952
commit b481e242fb
2 changed files with 13 additions and 10 deletions

View File

@ -110,6 +110,7 @@ def deregister_faces(request: Request, name: str, body: dict = None):
json: dict[str, any] = body or {} json: dict[str, any] = body or {}
list_of_ids = json.get("ids", []) list_of_ids = json.get("ids", [])
delete_directory = json.get("delete_directory", False) # New flag for directory deletion
if not list_of_ids: if not list_of_ids:
return JSONResponse( return JSONResponse(
@ -125,18 +126,18 @@ def deregister_faces(request: Request, name: str, body: dict = None):
content={"message": f"Face '{name}' not found", "success": False}, content={"message": f"Face '{name}' not found", "success": False},
) )
context: EmbeddingsContext = request.app.embeddings
context.delete_face_ids(
name, map(lambda file: sanitize_filename(file), list_of_ids)
)
try: try:
if os.path.exists(face_dir): if delete_directory:
shutil.rmtree(face_dir) shutil.rmtree(face_dir)
else:
context: EmbeddingsContext = request.app.embeddings
context.delete_face_ids(
name, map(lambda file: sanitize_filename(file), list_of_ids)
)
except Exception as e: except Exception as e:
logger.error(f"Failed to remove directory {face_dir}: {str(e)}") logger.error(f"Failed to delete face: {str(e)}")
return JSONResponse( return JSONResponse(
content={"success": False, "message": f"Failed to remove directory: {str(e)}"}, content={"success": False, "message": f"Failed to delete face: {str(e)}"},
status_code=500, status_code=500,
) )

View File

@ -169,6 +169,7 @@ export default function FaceLibrary() {
}); });
setRenameDialog(false); setRenameDialog(false);
setPageToggle(renameData.newName);
setRenameData({ oldName: '', newName: '' }); setRenameData({ oldName: '', newName: '' });
await refreshFaces(); await refreshFaces();
toast.success("Successfully renamed face", { position: "top-center" }); toast.success("Successfully renamed face", { position: "top-center" });
@ -181,13 +182,14 @@ export default function FaceLibrary() {
} finally { } finally {
setIsRenaming(false); setIsRenaming(false);
} }
}, [renameData, refreshFaces]); }, [renameData, refreshFaces, setPageToggle]);
const deleteFace = useCallback(async () => { const deleteFace = useCallback(async () => {
try { try {
const images = faceData[renameData.oldName] || []; const images = faceData[renameData.oldName] || [];
await axios.post(`/faces/${renameData.oldName}/delete`, { await axios.post(`/faces/${renameData.oldName}/delete`, {
ids: images.length ? images : ['dummy'] ids: images.length ? images : ['dummy'],
delete_directory: true
}); });
setRenameDialog(false); setRenameDialog(false);