Spaces:
Paused
Paused
@echo off | |
echo FramePack-Studio Setup Script | |
setlocal enabledelayedexpansion | |
REM Check if Python is installed (basic check) | |
where python >nul 2>&1 | |
if %errorlevel% neq 0 ( | |
echo Error: Python is not installed or not in your PATH. Please install Python and try again. | |
goto end | |
) | |
if exist "%cd%/venv" ( | |
echo Virtual Environment already exists. | |
set /p choice= "Do you want to reinstall packages?[Y/N]: " | |
if "!choice!" == "y" (goto checkgpu) | |
if "!choice!"=="Y" (goto checkgpu) | |
goto end | |
) | |
REM Check the python version | |
echo Python versions 3.10-3.12 have been confirmed to work. Other versions are currently not supported. You currently have: | |
python -V | |
set choice= | |
set /p choice= "Do you want to continue?[Y/N]: " | |
if "!choice!" == "y" (goto makevenv) | |
if "!choice!"=="Y" (goto makevenv) | |
goto end | |
:makevenv | |
REM This creates a virtual environment in the folder | |
echo Creating a Virtual Environment... | |
python -m venv venv | |
echo Upgrading pip in Virtual Environment to lower chance of error... | |
"%cd%/venv/Scripts/python.exe" -m pip install --upgrade pip | |
:checkgpu | |
REM ask Windows for GPU | |
where nvidia-smi >nul 2>&1 | |
if %errorlevel% neq 0 ( | |
echo Error: Nvidia GPU doesn't exist or drivers installed incorrectly. Please confirm your drivers are installed. | |
goto end | |
) | |
echo Checking your GPU... | |
for /F "tokens=* skip=1" %%n in ('nvidia-smi --query-gpu=name') do set GPU_NAME=%%n && goto gpuchecked | |
:gpuchecked | |
echo Detected %GPU_NAME% | |
set "GPU_SERIES=%GPU_NAME:*RTX =%" | |
set "GPU_SERIES=%GPU_SERIES:~0,2%00" | |
REM This gets the shortened Python version for later use. e.g. 3.10.13 becomes 310. | |
for /f "delims=" %%A in ('python -V') do set "pyv=%%A" | |
for /f "tokens=2 delims= " %%A in ("%pyv%") do ( | |
set pyv=%%A | |
) | |
set pyv=%pyv:.=% | |
set pyv=%pyv:~0,3% | |
echo Installing torch... | |
if !GPU_SERIES! geq 5000 ( | |
goto torch270 | |
) else ( | |
goto torch260 | |
) | |
REM RTX 5000 Series | |
:torch270 | |
"%cd%/venv/Scripts/pip.exe" install torch==2.7.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128 --force-reinstall | |
REM Check if pip installation was successful | |
if %errorlevel% neq 0 ( | |
echo Warning: Failed to install dependencies. You may need to install them manually. | |
goto end | |
) | |
REM Ask if user wants Sage Attention | |
set choice= | |
echo Do you want to install any of the following? They speed up generation. | |
echo 1) Sage Attention | |
echo 2) Flash Attention | |
echo 3) BOTH! | |
echo 4) No | |
set /p choice= "Input Selection: " | |
set both="N" | |
if "!choice!" == "1" (goto triton270) | |
if "!choice!"== "2" (goto flash270) | |
if "!choice!"== "3" (set both="Y" | |
goto triton270 | |
) | |
goto requirements | |
:triton270 | |
REM Sage Attention and Triton for Torch 2.7.0 | |
"%cd%/venv/Scripts/pip.exe" install "triton-windows<3.4" --force-reinstall | |
"%cd%/venv/Scripts/pip.exe" install "https://github.com/woct0rdho/SageAttention/releases/download/v2.1.1-windows/sageattention-2.1.1+cu128torch2.7.0-cp%pyv%-cp%pyv%-win_amd64.whl" --force-reinstall | |
echo Finishing up installing triton-windows. This requires extraction of libraries into Python Folder... | |
REM Check for python version and download the triton-windows required libs accordingly | |
if %pyv% == 310 ( | |
powershell -Command "(New-Object System.Net.WebClient).DownloadFile('https://github.com/woct0rdho/triton-windows/releases/download/v3.0.0-windows.post1/python_3.10.11_include_libs.zip', 'triton-lib.zip')" | |
) | |
if %pyv% == 311 ( | |
powershell -Command "(New-Object System.Net.WebClient).DownloadFile('https://github.com/woct0rdho/triton-windows/releases/download/v3.0.0-windows.post1/python_3.11.9_include_libs.zip', 'triton-lib.zip')" | |
) | |
if %pyv% == 312 ( | |
powershell -Command "(New-Object System.Net.WebClient).DownloadFile('https://github.com/woct0rdho/triton-windows/releases/download/v3.0.0-windows.post1/python_3.12.7_include_libs.zip', 'triton-lib.zip')" | |
) | |
REM Extract the zip into the Python Folder and Delete zip | |
powershell Expand-Archive -Path '%cd%\triton-lib.zip' -DestinationPath '%cd%\venv\Scripts\' -force | |
del triton-lib.zip | |
if %both% == "Y" (goto flash270) | |
goto requirements | |
:flash270 | |
REM Install flash-attn. | |
"%cd%/venv/Scripts/pip.exe" install "https://huggingface.co/lldacing/flash-attention-windows-wheel/resolve/main/flash_attn-2.7.4.post1%%2Bcu128torch2.7.0cxx11abiFALSE-cp%pyv%-cp%pyv%-win_amd64.whl?download=true" | |
goto requirements | |
REM RTX 4000 Series and below | |
:torch260 | |
"%cd%/venv/Scripts/pip.exe" install torch==2.6.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126 --force-reinstall | |
REM Check if pip installation was successful | |
if %errorlevel% neq 0 ( | |
echo Warning: Failed to install dependencies. You may need to install them manually. | |
goto end | |
) | |
REM Ask if user wants Sage Attention | |
set choice= | |
echo Do you want to install any of the following? They speed up generation. | |
echo 1) Sage Attention | |
echo 2) Flash Attention | |
echo 3) BOTH! | |
echo 4) No | |
set /p choice= "Input Selection: " | |
set both="N" | |
if "!choice!" == "1" (goto triton260) | |
if "!choice!"== "2" (goto flash260) | |
if "!choice!"== "3" (set both="Y" | |
goto triton260) | |
goto requirements | |
:triton260 | |
REM Sage Attention and Triton for Torch 2.6.0 | |
"%cd%/venv/Scripts/pip.exe" install "triton-windows<3.3.0" --force-reinstall | |
"%cd%/venv/Scripts/pip.exe" install https://github.com/woct0rdho/SageAttention/releases/download/v2.1.1-windows/sageattention-2.1.1+cu126torch2.6.0-cp%pyv%-cp%pyv%-win_amd64.whl --force-reinstall | |
echo Finishing up installing triton-windows. This requires extraction of libraries into Python Folder... | |
REM Check for python version and download the triton-windows required libs accordingly | |
if %pyv% == 310 ( | |
powershell -Command "(New-Object System.Net.WebClient).DownloadFile('https://github.com/woct0rdho/triton-windows/releases/download/v3.0.0-windows.post1/python_3.10.11_include_libs.zip', 'triton-lib.zip')" | |
) | |
if %pyv% == 311 ( | |
powershell -Command "(New-Object System.Net.WebClient).DownloadFile('https://github.com/woct0rdho/triton-windows/releases/download/v3.0.0-windows.post1/python_3.11.9_include_libs.zip', 'triton-lib.zip')" | |
) | |
if %pyv% == 312 ( | |
powershell -Command "(New-Object System.Net.WebClient).DownloadFile('https://github.com/woct0rdho/triton-windows/releases/download/v3.0.0-windows.post1/python_3.12.7_include_libs.zip', 'triton-lib.zip')" | |
) | |
REM Extract the zip into the Python Folder and Delete zip | |
powershell Expand-Archive -Path '%cd%\triton-lib.zip' -DestinationPath '%cd%\venv\Scripts\' -force | |
del triton-lib.zip | |
if %both% == "Y" (goto flash260) | |
goto requirements | |
:flash260 | |
REM Install flash-attn. | |
"%cd%/venv/Scripts/pip.exe" install "https://huggingface.co/lldacing/flash-attention-windows-wheel/resolve/main/flash_attn-2.7.4%%2Bcu126torch2.6.0cxx11abiFALSE-cp%pyv%-cp%pyv%-win_amd64.whl?download=true" | |
:requirements | |
echo Installing remaining required packages through pip... | |
REM This assumes there's a requirements.txt file in the root | |
"%cd%/venv/Scripts/pip.exe" install -r requirements.txt | |
REM Check if pip installation was successful | |
if %errorlevel% neq 0 ( | |
echo Warning: Failed to install dependencies. You may need to install them manually. | |
goto end | |
) | |
echo Setup complete. | |
:end | |
echo Exiting setup script. | |
pause | |