GaussianHaircut/install.bat
2025-02-16 15:43:26 +08:00

272 lines
8.6 KiB
Batchfile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@echo off
setlocal enabledelayedexpansion
REM 设置环境变量
SET MICROMAMBA_EXE=%~dp0micromamba.exe
SET CUDA_HOME=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8
SET PATH=%CUDA_HOME%\bin;%PATH%
SET PROJECT_DIR=%~dp0
SET PYTHONDONTWRITEBYTECODE=1
SET GDOWN_CACHE=cache\gdown
SET TORCH_HOME=cache\torch
SET HF_HOME=cache\huggingface
SET BLENDER_DIR=C:\Program Files\Blender Foundation\Blender 3.6
SET VS2019_DIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
SET VS2019_VCVARS=%VS2019_DIR%\VC\Auxiliary\Build\vcvars64.bat
REM 检查micromamba
IF NOT EXIST "%MICROMAMBA_EXE%" (
echo ERROR: micromamba not found at %MICROMAMBA_EXE%
echo Please install micromamba from https://mamba.readthedocs.io/en/latest/installation.html
exit /b 1
)
REM 设置micromamba根目录
SET MAMBA_ROOT_PREFIX=%PROJECT_DIR%\micromamba
IF NOT EXIST "%MAMBA_ROOT_PREFIX%" mkdir "%MAMBA_ROOT_PREFIX%"
REM 初始化micromamba
CALL "%MICROMAMBA_EXE%" shell init --prefix "%MAMBA_ROOT_PREFIX%"
REM 检查必要的环境和依赖
IF NOT EXIST "%CUDA_HOME%\" (
echo ERROR: CUDA 11.8 not found at %CUDA_HOME%
echo Please install CUDA 11.8 from https://developer.nvidia.com/cuda-11-8-0-download-archive
exit /b 1
)
IF NOT EXIST "%BLENDER_DIR%\" (
echo ERROR: Blender 3.6 not found at %BLENDER_DIR%
echo Please install Blender 3.6 from https://www.blender.org/download/lts/3-6/
exit /b 1
)
REM 检查Visual Studio
IF NOT EXIST "%VS2019_VCVARS%" (
echo ERROR: Visual Studio 2019 not found
echo Please install Visual Studio 2019 Build Tools with C++ development tools
exit /b 1
)
REM 检查COLMAP
where colmap >nul 2>nul
IF %ERRORLEVEL% NEQ 0 (
echo ERROR: COLMAP not found in PATH
echo.
echo Please follow these steps to install COLMAP:
echo 1. Download COLMAP from https://github.com/colmap/colmap/releases
echo 2. Extract to a path without spaces (e.g., C:\COLMAP)
echo 3. Add the COLMAP directory to your system PATH:
echo a. Open "System Properties" ^> "Environment Variables"
echo b. Under "System Variables", find and select "Path"
echo c. Click "Edit" ^> "New"
echo d. Add your COLMAP directory path (e.g., C:\COLMAP)
echo e. Click "OK" to save
echo 4. Open a new terminal window and try again
echo.
echo Note: If you've just added COLMAP to PATH, you need to open
echo a new terminal window for the changes to take effect.
exit /b 1
)
REM 检查COLMAP是否可用
colmap -h >nul 2>nul
IF %ERRORLEVEL% NEQ 0 (
echo ERROR: COLMAP installation appears to be broken
echo Please try reinstalling COLMAP
exit /b 1
)
REM 检查CUDA版本
nvcc --version 2>nul | findstr "release 11.8" >nul
IF %ERRORLEVEL% NEQ 0 (
echo ERROR: CUDA 11.8 not found or version mismatch
exit /b 1
)
REM 检查路径中是否包含空格
echo %PROJECT_DIR% | findstr /C:" " >nul
IF %ERRORLEVEL% EQU 0 (
echo ERROR: Project path contains spaces: %PROJECT_DIR%
echo Please move the project to a path without spaces
exit /b 1
)
REM 创建缓存目录
mkdir cache\gdown 2>nul
mkdir cache\torch 2>nul
mkdir cache\huggingface 2>nul
REM 创建ext目录并克隆仓库
mkdir ext 2>nul
cd ext
REM 克隆必要的仓库
git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose --depth 1
cd openpose && git submodule update --init --recursive --remote
cd ..
git clone https://github.com/hustvl/Matte-Anything
cd Matte-Anything && git clone https://github.com/IDEA-Research/GroundingDINO.git
cd ..
git clone git@github.com:egorzakharov/NeuralHaircut.git --recursive
git clone https://github.com/facebookresearch/pytorch3d
cd pytorch3d && git checkout 2f11ddc5ee7d6bd56f2fb6744a16776fab6536f7
cd ..
git clone https://github.com/camenduru/simple-knn
cd diff_gaussian_rasterization_hair/third_party && git clone https://github.com/g-truc/glm
cd glm && git checkout 5c46b9c07008ae65cb81ab79cd677ecc1934b903
cd ../..
git clone --recursive https://github.com/NVIDIAGameWorks/kaolin
cd kaolin && git checkout v0.15.0
cd ..
git clone https://github.com/SSL92/hyperIQA
cd ..
REM 创建环境
CALL "%MICROMAMBA_EXE%" env create -f environment.yml
REM 安装 gaussian_splatting_hair 环境
CALL "%MICROMAMBA_EXE%" activate -p %MAMBA_ROOT_PREFIX%\envs\gaussian_splatting_hair
REM 安装外部库
cd %PROJECT_DIR%\ext\pytorch3d
pip install -e .
cd %PROJECT_DIR%\ext\NeuralHaircut\npbgpp
pip install -e .
cd %PROJECT_DIR%\ext\simple-knn
pip install -e .
cd %PROJECT_DIR%\ext\diff_gaussian_rasterization_hair
pip install -e .
cd %PROJECT_DIR%\ext\kaolin
pip install -e .
cd %PROJECT_DIR%
REM 检查resource目录
IF NOT EXIST "%PROJECT_DIR%\resource" (
echo ERROR: resource directory not found
echo Please ensure the resource directory exists with required files:
echo.
echo resource/
echo ├── NeuralHaircut/
echo │ ├── pretrained_models/
echo │ │ └── diffusion_prior/
echo │ │ └── model.pt
echo │ └── PIXIE/
echo │ └── pixie_data/
echo ├── Matte-Anything/
echo │ ├── sam_vit_h_4b8939.pth
echo │ ├── groundingdino_swint_ogc.pth
echo │ └── model.pth
echo ├── openpose/
echo │ └── models/
echo │ └── pose/
echo │ └── coco/
echo │ └── pose_iter_584000.caffemodel
echo └── hyperIQA/
echo └── pretrained/
echo └── hyperIQA.pth
exit /b 1
)
REM 复制模型文件到对应位置
echo 正在复制模型文件...
REM 创建必要的目录
mkdir "%PROJECT_DIR%\ext\NeuralHaircut\pretrained_models\diffusion_prior" 2>nul
mkdir "%PROJECT_DIR%\ext\PIXIE" 2>nul
mkdir "%PROJECT_DIR%\ext\Matte-Anything\pretrained" 2>nul
mkdir "%PROJECT_DIR%\ext\openpose\models\pose\coco" 2>nul
mkdir "%PROJECT_DIR%\ext\hyperIQA\pretrained" 2>nul
REM Neural Haircut
xcopy /Y "%PROJECT_DIR%\resource\NeuralHaircut\pretrained_models\diffusion_prior\model.pt" "%PROJECT_DIR%\ext\NeuralHaircut\pretrained_models\diffusion_prior\"
REM PIXIE
cd "%PROJECT_DIR%\ext\PIXIE"
7z x "%PROJECT_DIR%\resource\NeuralHaircut\PIXIE\pixie_data.tar.gz" -y
7z x pixie_data.tar -y
del pixie_data.tar
REM Matte-Anything
xcopy /Y "%PROJECT_DIR%\resource\Matte-Anything\sam_vit_h_4b8939.pth" "%PROJECT_DIR%\ext\Matte-Anything\pretrained\"
xcopy /Y "%PROJECT_DIR%\resource\Matte-Anything\groundingdino_swint_ogc.pth" "%PROJECT_DIR%\ext\Matte-Anything\pretrained\"
xcopy /Y "%PROJECT_DIR%\resource\Matte-Anything\model.pth" "%PROJECT_DIR%\ext\Matte-Anything\"
REM OpenPose
xcopy /Y "%PROJECT_DIR%\resource\openpose\models\pose_iter_584000.caffemodel" "%PROJECT_DIR%\ext\openpose\models\pose\coco\"
REM hyperIQA
xcopy /Y "%PROJECT_DIR%\resource\hyperIQA\pretrained\hyperIQA.pth" "%PROJECT_DIR%\ext\hyperIQA\pretrained\"
REM 安装 PIXIE 环境
CALL activate_pixie-env.bat
cd %PROJECT_DIR%\ext\NeuralHaircut\PIXIE
echo 正在安装PIXIE依赖...
pip install pyyaml==5.4.1
pip install git+https://github.com/1adrianb/face-alignment.git@54623537fd9618ca7c15688fd85aba706ad92b59
REM 安装 Matte-Anything 环境
CALL activate_matte_anything.bat
cd %PROJECT_DIR%\ext\Matte-Anything
REM 安装SAM和detectron2
pip install git+https://github.com/facebookresearch/segment-anything.git
pip install 'git+https://github.com/facebookresearch/detectron2.git'
cd GroundingDINO
pip install -e .
cd ..
pip install supervision==0.22.0
mkdir pretrained 2>nul
cd pretrained
xcopy /Y "%PROJECT_DIR%\resource\Matte-Anything\*" .
cd ..
xcopy /Y "%PROJECT_DIR%\resource\Matte-Anything\model.pth" .
REM 安装 OpenPose
CALL activate_openpose.bat
cd %PROJECT_DIR%\ext\openpose
mkdir build 2>nul
cd build
CALL "%VS2019_VCVARS%"
cmake .. -DBUILD_PYTHON=true -DUSE_CUDNN=off -DBUILD_CAFFE=false -G "Visual Studio 16 2019" -A x64
cmake --build . --config Release
cd %PROJECT_DIR%
REM 检查资源文件是否已下载
IF NOT EXIST "resource" (
echo 错误未找到resource目录请先运行download_resource.bat
exit /b 1
)
REM 检查CUDA安装
IF NOT EXIST "%CUDA_HOME%" (
echo 错误未找到CUDA安装目录请确保CUDA 11.8已正确安装
exit /b 1
)
REM 检查Python版本
python -c "import sys; assert sys.version_info >= (3,8) and sys.version_info < (3,9), 'Python 3.8.x required'" || (
echo 错误需要Python 3.8.x版本
exit /b 1
)
REM 检查CUDA版本
nvcc --version | findstr "release 11.8" >nul || (
echo 错误需要CUDA 11.8版本
exit /b 1
)
REM 检查磁盘空间
for /f "tokens=3" %%a in ('dir /-c /w "%~d0\" ^| find "bytes free"') do set FREE_SPACE=%%a
if %FREE_SPACE% LSS 21474836480 (
echo 错误可用磁盘空间不足20GB
exit /b 1
)
echo Installation completed!