From 74b25bdcb10050be43024b1413898af2d1411f05 Mon Sep 17 00:00:00 2001 From: cmdr2 Date: Sat, 4 Jan 2025 13:25:53 +0530 Subject: [PATCH] Replace the use of wmic (deprecated) with a powershell call --- scripts/Developer Console.cmd | 3 ++- scripts/Start Stable Diffusion UI.cmd | 4 ++-- ui/easydiffusion/backends/webui/__init__.py | 21 +++++++++++---------- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/scripts/Developer Console.cmd b/scripts/Developer Console.cmd index e60cf05b..49e6791d 100644 --- a/scripts/Developer Console.cmd +++ b/scripts/Developer Console.cmd @@ -4,7 +4,7 @@ echo "Opening Stable Diffusion UI - Developer Console.." & echo. cd /d %~dp0 -set PATH=C:\Windows\System32;%PATH% +set PATH=C:\Windows\System32;C:\Windows\System32\WindowsPowerShell\v1.0;%PATH% @rem set legacy and new installer's PATH, if they exist if exist "installer" set PATH=%cd%\installer;%cd%\installer\Library\bin;%cd%\installer\Scripts;%cd%\installer\Library\usr\bin;%PATH% @@ -26,6 +26,7 @@ call conda --version echo. echo COMSPEC=%COMSPEC% echo. +powershell -Command "(Get-WmiObject Win32_VideoController | Select-Object Name, AdapterRAM, DriverDate, DriverVersion)" @rem activate the legacy environment (if present) and set PYTHONPATH if exist "installer_files\env" ( diff --git a/scripts/Start Stable Diffusion UI.cmd b/scripts/Start Stable Diffusion UI.cmd index b4e486b8..978c86d8 100644 --- a/scripts/Start Stable Diffusion UI.cmd +++ b/scripts/Start Stable Diffusion UI.cmd @@ -3,7 +3,7 @@ cd /d %~dp0 echo Install dir: %~dp0 -set PATH=C:\Windows\System32;C:\Windows\System32\wbem;%PATH% +set PATH=C:\Windows\System32;C:\Windows\System32\WindowsPowerShell\v1.0;%PATH% set PYTHONHOME= if exist "on_sd_start.bat" ( @@ -39,7 +39,7 @@ call where conda call conda --version echo . echo COMSPEC=%COMSPEC% -wmic path win32_VideoController get name,AdapterRAM,DriverDate,DriverVersion +powershell -Command "(Get-WmiObject Win32_VideoController | Select-Object Name, AdapterRAM, DriverDate, DriverVersion)" @rem Download the rest of the installer and UI call scripts\on_env_start.bat diff --git a/ui/easydiffusion/backends/webui/__init__.py b/ui/easydiffusion/backends/webui/__init__.py index 31251dba..b98ce1fe 100644 --- a/ui/easydiffusion/backends/webui/__init__.py +++ b/ui/easydiffusion/backends/webui/__init__.py @@ -405,18 +405,19 @@ def has_discrete_graphics_card(): if system == "Windows": try: env = dict(os.environ) - env["PATH"] += ( - os.pathsep - + "C:/Windows/System32".replace("/", os.path.sep) - + os.pathsep - + "C:/Windows/System32/wbem".replace("/", os.path.sep) - ) - output = subprocess.check_output( - ["wmic", "path", "win32_videocontroller", "get", "name"], stderr=subprocess.STDOUT, env=env - ) + env["PATH"] += os.pathsep + "C:/Windows/System32/WindowsPowerShell/v1.0".replace("/", os.path.sep) + + # PowerShell command to get the names of graphics cards + command = [ + "powershell", + "-Command", + "(Get-WmiObject Win32_VideoController).Name", + ] + # Run the command and decode the output + output = subprocess.check_output(command, universal_newlines=True, stderr=subprocess.STDOUT, env=env) # Filter for discrete graphics cards (NVIDIA, AMD, etc.) discrete_gpus = ["NVIDIA", "AMD", "ATI"] - return any(gpu in output.decode() for gpu in discrete_gpus) + return any(gpu in output for gpu in discrete_gpus) except subprocess.CalledProcessError: return False