From 062bd6a187d4230de36f60dd4b29c3f72009d4cf Mon Sep 17 00:00:00 2001 From: henryruhs Date: Thu, 22 Jan 2026 11:32:29 +0100 Subject: [PATCH] Asset related fixes --- facefusion/apis/asset_store.py | 5 ++--- facefusion/apis/endpoints/assets.py | 20 ++++++++++++++------ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/facefusion/apis/asset_store.py b/facefusion/apis/asset_store.py index be20dbfd..cc52afe7 100644 --- a/facefusion/apis/asset_store.py +++ b/facefusion/apis/asset_store.py @@ -1,10 +1,9 @@ -import os import uuid from datetime import datetime, timedelta from typing import List, Optional, cast from facefusion.apis.asset_helper import detect_media_type, extract_audio_metadata, extract_image_metadata, extract_video_metadata -from facefusion.filesystem import get_file_format, get_file_name +from facefusion.filesystem import get_file_format, get_file_name, get_file_size from facefusion.types import AssetId, AssetSet, AssetStore, AssetType, AudioAsset, AudioFormat, ImageAsset, ImageFormat, SessionId, VideoAsset, VideoFormat ASSET_STORE : AssetStore = {} @@ -14,7 +13,7 @@ def create_asset(session_id : SessionId, asset_type : AssetType, asset_path : st asset_id = str(uuid.uuid4()) asset_name = get_file_name(asset_path) asset_format = get_file_format(asset_path) - asset_size = os.path.getsize(asset_path) + asset_size = get_file_size(asset_path) media_type = detect_media_type(asset_path) created_at = datetime.now() expires_at = created_at + timedelta(hours = 2) diff --git a/facefusion/apis/endpoints/assets.py b/facefusion/apis/endpoints/assets.py index 057dedf3..7d2b3394 100644 --- a/facefusion/apis/endpoints/assets.py +++ b/facefusion/apis/endpoints/assets.py @@ -11,7 +11,7 @@ from facefusion import ffmpeg, process_manager, session_manager, state_manager from facefusion.apis import asset_store from facefusion.apis.asset_helper import detect_media_type from facefusion.apis.endpoints.session import extract_access_token -from facefusion.filesystem import get_file_extension, remove_file +from facefusion.filesystem import get_file_extension, get_file_name, remove_file async def upload_asset(request : Request) -> Response: @@ -29,10 +29,12 @@ async def upload_asset(request : Request) -> Response: for asset_path in asset_paths: asset = asset_store.create_asset(session_id, asset_type, asset_path) # type: ignore[arg-type] - asset_id = asset.get('id') - if asset_id: - asset_ids.append(asset_id) + if asset: + asset_id = asset.get('id') + + if asset_id: + asset_ids.append(asset_id) if asset_ids: return JSONResponse( @@ -58,7 +60,8 @@ async def save_asset_files(upload_files : List[UploadFile]) -> List[str]: media_type = detect_media_type(temp_file.name) temp_path = state_manager.get_temp_path() - asset_path = os.path.join(temp_path, temp_file.name + '.' + upload_file_extension) + asset_file_name = get_file_name(temp_file.name) + asset_path = os.path.join(temp_path, asset_file_name + '_' + upload_file_extension) process_manager.start() @@ -144,9 +147,14 @@ async def delete_assets(request : Request) -> Response: asset_set = asset_store.get_assets(session_id) if asset_set: + for asset_id in asset_ids: if asset_id in asset_set: - remove_file(asset_set.get(asset_id).get('path')) + asset = asset_set.get(asset_id) + + if asset: + remove_file(asset.get('path')) + asset_store.delete_assets(session_id, asset_ids) return Response(status_code = HTTP_200_OK)