@echo off title ComfyUI-Zluda Installer set ZLUDA_COMGR_LOG_LEVEL=1 setlocal EnableDelayedExpansion set "startTime=%time: =0%" cls echo ----------------------------------------------------------------------- Echo * COMFYUI-ZLUDA INSTALL (for HIP 6.2.4 / 6.4.2 with MIOPEN and Triton)* echo ----------------------------------------------------------------------- echo. echo :: %time:~0,8% :: - Setting up the virtual enviroment Set "VIRTUAL_ENV=venv" If Not Exist "%VIRTUAL_ENV%\Scripts\activate.bat" ( python.exe -m venv %VIRTUAL_ENV% ) If Not Exist "%VIRTUAL_ENV%\Scripts\activate.bat" Exit /B 1 echo :: %time:~0,8% :: - Virtual enviroment activation Call "%VIRTUAL_ENV%\Scripts\activate.bat" echo :: %time:~0,8% :: - Updating the pip package python.exe -m pip install --upgrade pip --quiet echo. echo :: %time:~0,8% :: Beginning installation ... echo. echo :: %time:~0,8% :: - Installing required packages pip install -r requirements.txt --quiet echo :: %time:~0,8% :: - Installing torch for AMD GPUs (First file is 2.7 GB, please be patient) pip uninstall torch torchvision torchaudio -y --quiet pip install torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 --index-url https://download.pytorch.org/whl/cu118 --quiet echo :: %time:~0,8% :: - Installing onnxruntime (required by some nodes) pip install onnxruntime --quiet echo :: %time:~0,8% :: - (temporary numpy fix) pip uninstall numpy -y --quiet pip install numpy==1.26.4 --quiet echo :: %time:~0,8% :: - Detecting Python version and installing appropriate triton package for /f "tokens=1,2 delims=." %%a in ('python -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')"') do ( set "PY_MAJOR=%%a" set "PY_MINOR=%%b" goto :version_detected ) :version_detected echo :: %time:~0,8% :: - Detected Python %PY_MAJOR%.%PY_MINOR% if "%PY_MINOR%"=="12" ( echo :: %time:~0,8% :: - Python 3.12 detected, installing triton for 3.12 pip install --force-reinstall https://github.com/lshqqytiger/triton/releases/download/a9c80202/triton-3.4.0+gita9c80202-cp312-cp312-win_amd64.whl ) else if "%PY_MINOR%"=="11" ( echo :: %time:~0,8% :: - Python 3.11 detected, installing triton for 3.11 pip install --force-reinstall https://github.com/lshqqytiger/triton/releases/download/a9c80202/triton-3.4.0+gita9c80202-cp311-cp311-win_amd64.whl ) else ( echo :: %time:~0,8% :: - WARNING: Unsupported Python version 3.%PY_MINOR%, skipping triton installation echo :: %time:~0,8% :: - Full version info: python -c "import sys; print(f'Python {sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}')" ) :: patching triton & torch (from sfinktah ; https://github.com/sfinktah/amd-torch ) pip install --force-reinstall pypatch-url --quiet pypatch-url apply https://raw.githubusercontent.com/sfinktah/amd-torch/refs/heads/main/patches/triton-3.4.0+gita9c80202-cp311-cp311-win_amd64.patch -p 4 triton pypatch-url apply https://raw.githubusercontent.com/sfinktah/amd-torch/refs/heads/main/patches/torch-2.7.0+cu118-cp311-cp311-win_amd64.patch -p 4 torch :: echo :: %time:~0,8% :: - Installing flash-attention :: %SystemRoot%\system32\curl.exe -sL --ssl-no-revoke https://github.com/user-attachments/files/20140536/flash_attn-2.7.4.post1-py3-none-any.zip > fa.zip :: %SystemRoot%\system32\tar.exe -xf fa.zip :: pip install flash_attn-2.7.4.post1-py3-none-any.whl --quiet :: del fa.zip :: del flash_attn-2.7.4.post1-py3-none-any.whl :: copy comfy\customzluda\fa\distributed.py %VIRTUAL_ENV%\Lib\site-packages\flash_attn\utils\distributed.py /y >NUL echo :: %time:~0,8% :: - Installing and patching sage-attention pip install sageattention==1.0.6 --quiet copy comfy\customzluda\sa\quant_per_block.py %VIRTUAL_ENV%\Lib\site-packages\sageattention\quant_per_block.py /y >NUL copy comfy\customzluda\sa\attn_qk_int8_per_block_causal.py %VIRTUAL_ENV%\Lib\site-packages\sageattention\attn_qk_int8_per_block_causal.py /y >NUL copy comfy\customzluda\sa\attn_qk_int8_per_block.py %VIRTUAL_ENV%\Lib\site-packages\sageattention\attn_qk_int8_per_block.py /y >NUL echo. echo :: %time:~0,8% :: Custom node(s) installation ... echo. echo :: %time:~0,8% :: - Installing CFZ Nodes (description in readme on github) xcopy /E /I /Y "cfz\nodes" "custom_nodes" >NUL echo :: %time:~0,8% :: - Installing Comfyui Manager cd custom_nodes git clone https://github.com/ltdrdata/ComfyUI-Manager.git --quiet cd .. echo :: %time:~0,8% :: - Copying python libs FOR /F "tokens=* delims=" %%i IN ('python -c "import sys; print(f'{sys.base_prefix}\\libs')"') DO ( SET "PYTHON_LIBS_PATH=%%i" ) if exist "%PYTHON_LIBS_PATH%\" ( echo Found Python libs path via sys.base_prefix: !PYTHON_LIBS_PATH! ) else ( echo Path not found via sys.base_prefix. REM Construct and set the corrected fallback path. SET "FALLBACK_PATH=%LocalAppData%\Programs\Python\Python3!PY_MINOR!\libs" SET "PYTHON_LIBS_PATH=!FALLBACK_PATH!" echo Using fallback path: !PYTHON_LIBS_PATH! ) xcopy /E /I /Y "!PYTHON_LIBS_PATH!" "venv\libs" set ERRLEVEL=%errorlevel% if %ERRLEVEL% neq 0 ( echo "Failed to copy Python3%PY_MINOR%\libs to virtual environment." exit /b %ERRLEVEL% ) echo. echo :: %time:~0,8% :: - Patching ZLUDA :: Download ZLUDA version 3.9.5 nightly rmdir /S /Q zluda 2>nul mkdir zluda cd zluda %SystemRoot%\system32\curl.exe -sL --ssl-no-revoke https://github.com/lshqqytiger/ZLUDA/releases/download/rel.5e717459179dc272b7d7d23391f0fad66c7459cf/ZLUDA-nightly-windows-rocm6-amd64.zip > zluda.zip %SystemRoot%\system32\tar.exe -xf zluda.zip del zluda.zip cd .. :: Patch DLLs copy zluda\cublas.dll %VIRTUAL_ENV%\Lib\site-packages\torch\lib\cublas64_11.dll /y >NUL copy zluda\cusparse.dll %VIRTUAL_ENV%\Lib\site-packages\torch\lib\cusparse64_11.dll /y >NUL copy %VIRTUAL_ENV%\Lib\site-packages\torch\lib\nvrtc64_112_0.dll %VIRTUAL_ENV%\Lib\site-packages\torch\lib\nvrtc_cuda.dll /y >NUL copy zluda\nvrtc.dll %VIRTUAL_ENV%\Lib\site-packages\torch\lib\nvrtc64_112_0.dll /y >NUL :: removed cudnn dll patching , check the results :: copy zluda\cudnn.dll %VIRTUAL_ENV%\Lib\site-packages\torch\lib\cudnn64_9.dll /y >NUL copy zluda\cufft.dll %VIRTUAL_ENV%\Lib\site-packages\torch\lib\cufft64_10.dll /y >NUL copy zluda\cufftw.dll %VIRTUAL_ENV%\Lib\site-packages\torch\lib\cufftw64_10.dll /y >NUL copy comfy\customzluda\zluda.py comfy\zluda.py /y >NUL echo :: %time:~0,8% :: - ZLUDA 3.9.5 nightly patched for HIP SDK 6.2.4 / 6.4.2 with miopen and triton-flash attention. echo. set "endTime=%time: =0%" set "end=!endTime:%time:~8,1%=%%100)*100+1!" & set "start=!startTime:%time:~8,1%=%%100)*100+1!" set /A "elap=((((10!end:%time:~2,1%=%%100)*60+1!%%100)-((((10!start:%time:~2,1%=%%100)*60+1!%%100), elap-=(elap>>31)*24*60*60*100" set /A "cc=elap%%100+100,elap/=100,ss=elap%%60+100,elap/=60,mm=elap%%60+100,hh=elap/60+100" copy comfyui-n.bat comfyui-user.bat /y >NUL echo ..................................................... echo *** Installation is completed in %hh:~1%%time:~2,1%%mm:~1%%time:~2,1%%ss:~1%%time:~8,1%%cc:~1% . echo *** You can use "comfyui-n.bat" or "comfyui-user.bat" to start the app later. echo *** If you want to modify the launcher please use the "comfyui-user.bat" as it is not effected by the updates. echo *** You can use -- "--use-pytorch-cross-attention" , "--use-quad-cross-attention" , "--use-flash-attention" or "--use-sage-attention" echo ..................................................... echo. echo *** Starting the Comfyui-ZLUDA for the first time, please be patient... echo. set FLASH_ATTENTION_TRITON_AMD_ENABLE=TRUE set MIOPEN_FIND_MODE=2 set MIOPEN_LOG_LEVEL=3 .\zluda\zluda.exe -- python main.py --auto-launch --use-quad-cross-attention