mirror of
https://github.com/facefusion/facefusion.git
synced 2026-04-22 09:26:02 +02:00
Asset related fixes
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user