diff --git a/facefusion/system.py b/facefusion/system.py index 89286f1d..00dbb7d3 100644 --- a/facefusion/system.py +++ b/facefusion/system.py @@ -1,9 +1,35 @@ +import shutil + from facefusion.execution import detect_execution_devices -from facefusion.types import Metrics +from facefusion.types import DiskMetrics, Metrics def get_metrics_set() -> Metrics: return\ { - 'execution_devices': detect_execution_devices() + 'execution_devices': detect_execution_devices(), + 'disk': detect_disk_metrics() + } + + +def detect_disk_metrics() -> DiskMetrics: + usage = shutil.disk_usage('.') + + return\ + { + 'total': + { + 'value': int(usage.total / (1024 * 1024 * 1024)), + 'unit': 'GiB' + }, + 'free': + { + 'value': int(usage.free / (1024 * 1024 * 1024)), + 'unit': 'GiB' + }, + 'utilization': + { + 'value': int(usage.used / usage.total * 100), + 'unit': '%' + } } diff --git a/facefusion/types.py b/facefusion/types.py index 0576f443..1d8bba9a 100755 --- a/facefusion/types.py +++ b/facefusion/types.py @@ -298,9 +298,16 @@ ExecutionDevice = TypedDict('ExecutionDevice', 'temperature' : ExecutionDeviceTemperature, 'utilization' : ExecutionDeviceUtilization }) +DiskMetrics = TypedDict('DiskMetrics', +{ + 'total' : ValueAndUnit, + 'free' : ValueAndUnit, + 'utilization' : ValueAndUnit +}) Metrics = TypedDict('Metrics', { - 'execution_devices' : List[ExecutionDevice] + 'execution_devices' : List[ExecutionDevice], + 'disk' : DiskMetrics }) DownloadProvider = Literal['github', 'huggingface']