@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