Music-project / ACE-Step-1.5 /start_api_server_rocm.bat
Shubham Sattigeri
Initial commit
116a8d1
Raw
History Blame Contribute Delete
6.19 kB
@echo off
setlocal enabledelayedexpansion
REM ACE-Step REST API Server Launcher - AMD ROCm 7.2
REM For AMD RX 7000/6000 series GPUs on Windows 11
REM IMPORTANT: Requires Python 3.12 (AMD ROCm 7.2 only provides Python 3.12 wheels)
REM Requires: ROCm PyTorch from repo.radeon.com
REM ==================== ROCm Configuration ====================
REM Force PyTorch LM backend (bypasses nano-vllm flash_attn dependency)
set ACESTEP_LM_BACKEND=pt
REM RDNA3 GPU architecture override (RX 7900 XT/XTX, RX 7800 XT, etc.)
REM Change to 11.0.1 for gfx1101 (RX 7700 XT, RX 7800 XT)
REM Change to 11.0.2 for gfx1102 (RX 7600)
set HSA_OVERRIDE_GFX_VERSION=11.0.0
REM Disable torch.compile Triton backend (not available on ROCm Windows)
set TORCH_COMPILE_BACKEND=eager
REM MIOpen: use fast heuristic kernel selection instead of exhaustive benchmarking
REM Without this, first-run VAE decode hangs for minutes on each conv layer
set MIOPEN_FIND_MODE=FAST
REM HuggingFace tokenizer parallelism
set TOKENIZERS_PARALLELISM=false
REM ==================== Server Configuration ====================
set HOST=127.0.0.1
REM set HOST=0.0.0.0
set PORT=8001
REM ==================== Model Configuration ====================
REM API key for authentication (optional)
REM set API_KEY=--api-key sk-your-secret-key
REM Download source: auto, huggingface, modelscope
set DOWNLOAD_SOURCE=
REM LLM (Language Model) initialization settings
REM By default, LLM is auto-enabled/disabled based on GPU VRAM:
REM - <=6GB VRAM: LLM disabled (DiT-only mode)
REM - >6GB VRAM: LLM enabled
REM Values: auto (default), true (force enable), false (force disable)
set ACESTEP_INIT_LLM=auto
REM set ACESTEP_INIT_LLM=true
REM set ACESTEP_INIT_LLM=false
REM LM model path (optional, only used when LLM is enabled)
REM Available models: acestep-5Hz-lm-0.6B, acestep-5Hz-lm-1.7B, acestep-5Hz-lm-4B
REM set LM_MODEL_PATH=--lm-model-path acestep-5Hz-lm-0.6B
REM Update check on startup (set to false to disable)
set CHECK_UPDATE=true
REM set CHECK_UPDATE=false
REM Skip model loading at startup (models will be lazy-loaded on first request)
REM Set to true to start server quickly without loading models
REM set ACESTEP_NO_INIT=false
REM set ACESTEP_NO_INIT=true
REM ==================== Venv Configuration ====================
REM Path to the ROCm virtual environment (relative to this script)
set VENV_DIR=%~dp0venv_rocm
REM ==================== Launch ====================
REM ==================== Startup Update Check ====================
if /i not "%CHECK_UPDATE%"=="true" goto :SkipUpdateCheck
REM Find git: try PortableGit first, then system git
set "UPDATE_GIT_CMD="
if exist "%~dp0PortableGit\bin\git.exe" (
set "UPDATE_GIT_CMD=%~dp0PortableGit\bin\git.exe"
) else (
where git >nul 2>&1
if !ERRORLEVEL! EQU 0 (
for /f "tokens=*" %%i in ('where git 2^>nul') do (
if not defined UPDATE_GIT_CMD set "UPDATE_GIT_CMD=%%i"
)
)
)
if not defined UPDATE_GIT_CMD goto :SkipUpdateCheck
cd /d "%~dp0"
"!UPDATE_GIT_CMD!" rev-parse --git-dir >nul 2>&1
if !ERRORLEVEL! NEQ 0 goto :SkipUpdateCheck
echo [Update] Checking for updates...
for /f "tokens=*" %%i in ('"!UPDATE_GIT_CMD!" rev-parse --abbrev-ref HEAD 2^>nul') do set UPDATE_BRANCH=%%i
if "!UPDATE_BRANCH!"=="" set UPDATE_BRANCH=main
for /f "tokens=*" %%i in ('"!UPDATE_GIT_CMD!" rev-parse --short HEAD 2^>nul') do set UPDATE_LOCAL=%%i
"!UPDATE_GIT_CMD!" fetch origin --quiet 2>nul
if !ERRORLEVEL! NEQ 0 (
echo [Update] Network unreachable, skipping.
echo.
goto :SkipUpdateCheck
)
for /f "tokens=*" %%i in ('"!UPDATE_GIT_CMD!" rev-parse --short origin/!UPDATE_BRANCH! 2^>nul') do set UPDATE_REMOTE=%%i
if "!UPDATE_REMOTE!"=="" goto :SkipUpdateCheck
if "!UPDATE_LOCAL!"=="!UPDATE_REMOTE!" (
echo [Update] Already up to date ^(!UPDATE_LOCAL!^).
echo.
goto :SkipUpdateCheck
)
echo.
echo ========================================
echo Update available!
echo ========================================
echo Current: !UPDATE_LOCAL! -^> Latest: !UPDATE_REMOTE!
echo.
echo Recent changes:
"!UPDATE_GIT_CMD!" --no-pager log --oneline HEAD..origin/!UPDATE_BRANCH! 2>nul
echo.
set /p UPDATE_NOW="Update now before starting? (Y/N): "
if /i "!UPDATE_NOW!"=="Y" (
if exist "%~dp0check_update.bat" (
call "%~dp0check_update.bat"
) else (
echo Pulling latest changes...
"!UPDATE_GIT_CMD!" pull --ff-only origin !UPDATE_BRANCH! 2>nul
if !ERRORLEVEL! NEQ 0 (
echo [Update] Update failed. Please update manually.
)
)
) else (
echo [Update] Skipped. Run check_update.bat to update later.
)
echo.
:SkipUpdateCheck
echo ============================================
echo ACE-Step 1.5 API - AMD ROCm 7.2 Edition
echo ============================================
echo.
REM Activate venv if it exists
if exist "%VENV_DIR%\Scripts\activate.bat" (
echo Activating virtual environment: %VENV_DIR%
call "%VENV_DIR%\Scripts\activate.bat"
) else (
echo WARNING: venv_rocm not found at %VENV_DIR%
echo Using system Python. See requirements-rocm.txt for setup instructions.
)
echo.
REM Verify ROCm PyTorch is installed
python -c "import torch; assert torch.cuda.is_available(), 'No GPU detected'; print(f'GPU: {torch.cuda.get_device_name(0)}'); hip=getattr(torch.version,'hip',None); print(f'HIP: {hip}' if hip else 'WARNING: Not a ROCm build')" 2>nul
if !ERRORLEVEL! NEQ 0 (
echo.
echo ========================================
echo ERROR: ROCm PyTorch not detected!
echo ========================================
echo.
echo Please install ROCm PyTorch first. See requirements-rocm.txt for instructions.
echo.
pause
exit /b 1
)
echo.
echo Starting ACE-Step REST API Server...
echo API will be available at: http://%HOST%:%PORT%
echo API Documentation: http://%HOST%:%PORT%/docs
echo.
REM Build command with optional parameters
set "CMD=--host %HOST% --port %PORT%"
if not "%API_KEY%"=="" set "CMD=!CMD! %API_KEY%"
if not "%DOWNLOAD_SOURCE%"=="" set "CMD=!CMD! %DOWNLOAD_SOURCE%"
if not "%LM_MODEL_PATH%"=="" set "CMD=!CMD! %LM_MODEL_PATH%"
python -u acestep\api_server.py !CMD!
pause
endlocal