GaussianHaircut/install.bat

265 lines
9.0 KiB
Batchfile
Raw Normal View History

2025-02-14 01:50:52 +08:00
@echo off
setlocal enabledelayedexpansion
REM 设置环境变量
2025-02-14 02:15:09 +08:00
SET MICROMAMBA_EXE=%~dp0micromamba.exe
2025-02-14 02:18:39 +08:00
SET CUDA_HOME=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8
2025-02-14 01:50:52 +08:00
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
2025-02-14 02:18:39 +08:00
SET BLENDER_DIR=C:\Program Files\Blender Foundation\Blender 3.6
SET VS2019_DIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
2025-02-14 01:50:52 +08:00
SET VS2019_VCVARS=%VS2019_DIR%\VC\Auxiliary\Build\vcvars64.bat
2025-02-14 02:15:09 +08:00
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
2025-02-14 02:18:39 +08:00
IF NOT EXIST "%MAMBA_ROOT_PREFIX%" mkdir "%MAMBA_ROOT_PREFIX%"
2025-02-14 02:15:09 +08:00
REM 初始化micromamba
2025-02-14 02:42:40 +08:00
CALL "%MICROMAMBA_EXE%" shell init --prefix "%MAMBA_ROOT_PREFIX%"
2025-02-14 02:15:09 +08:00
2025-02-14 01:50:52 +08:00
REM 检查必要的环境和依赖
2025-02-14 02:18:39 +08:00
IF NOT EXIST "%CUDA_HOME%\" (
2025-02-14 01:50:52 +08:00
echo ERROR: CUDA 11.8 not found at %CUDA_HOME%
2025-02-15 14:46:18 +08:00
echo Please install CUDA 11.8 from https://developer.nvidia.com/cuda-11-8-0-download-archive
2025-02-14 01:50:52 +08:00
exit /b 1
)
2025-02-14 02:18:39 +08:00
IF NOT EXIST "%BLENDER_DIR%\" (
2025-02-14 01:50:52 +08:00
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
)
2025-02-14 02:42:40 +08:00
REM 检查COLMAP
where colmap >nul 2>nul
IF %ERRORLEVEL% NEQ 0 (
echo ERROR: COLMAP not found in PATH
2025-02-14 04:00:28 +08:00
echo.
2025-02-14 02:42:40 +08:00
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)
2025-02-14 04:00:28 +08:00
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.
2025-02-14 02:42:40 +08:00
exit /b 1
)
REM 检查COLMAP是否可用
colmap -h >nul 2>nul
2025-02-14 01:50:52 +08:00
IF %ERRORLEVEL% NEQ 0 (
2025-02-14 02:42:40 +08:00
echo ERROR: COLMAP installation appears to be broken
echo Please try reinstalling COLMAP
2025-02-14 01:50:52 +08:00
exit /b 1
)
2025-02-14 03:35:06 +08:00
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
)
2025-02-15 14:46:18 +08:00
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
)
2025-02-14 01:50:52 +08:00
REM 创建缓存目录
2025-02-14 02:15:09 +08:00
mkdir cache\gdown 2>nul
mkdir cache\torch 2>nul
mkdir cache\huggingface 2>nul
2025-02-14 01:50:52 +08:00
2025-02-16 15:10:20 +08:00
REM 创建ext目录并克隆仓库
2025-02-14 02:15:09 +08:00
mkdir ext 2>nul
2025-02-14 01:50:52 +08:00
cd ext
2025-02-16 15:10:20 +08:00
REM 克隆必要的仓库
git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose --depth 1
cd openpose && git submodule update --init --recursive --remote
2025-02-14 01:50:52 +08:00
cd ..
git clone https://github.com/hustvl/Matte-Anything
2025-02-16 15:10:20 +08:00
cd Matte-Anything && git clone https://github.com/IDEA-Research/GroundingDINO.git
2025-02-14 01:50:52 +08:00
cd ..
2025-02-16 15:10:20 +08:00
git clone git@github.com:egorzakharov/NeuralHaircut.git --recursive
2025-02-14 01:50:52 +08:00
git clone https://github.com/facebookresearch/pytorch3d
2025-02-16 15:10:20 +08:00
cd pytorch3d && git checkout 2f11ddc5ee7d6bd56f2fb6744a16776fab6536f7
2025-02-14 01:50:52 +08:00
cd ..
git clone https://github.com/camenduru/simple-knn
2025-02-16 15:10:20 +08:00
cd diff_gaussian_rasterization_hair/third_party && git clone https://github.com/g-truc/glm
cd glm && git checkout 5c46b9c07008ae65cb81ab79cd677ecc1934b903
cd ../..
2025-02-14 01:50:52 +08:00
git clone --recursive https://github.com/NVIDIAGameWorks/kaolin
2025-02-16 15:10:20 +08:00
cd kaolin && git checkout v0.15.0
2025-02-14 01:50:52 +08:00
cd ..
git clone https://github.com/SSL92/hyperIQA
2025-02-16 15:10:20 +08:00
cd ..
2025-02-14 01:50:52 +08:00
REM 创建环境
2025-02-14 02:15:09 +08:00
CALL "%MICROMAMBA_EXE%" create -p %MAMBA_ROOT_PREFIX%\envs\gaussian_splatting_hair python=3.8 pytorch=2.0.0 torchvision pytorch-cuda=11.8 cmake ninja setuptools=58.2.0 -c pytorch -c nvidia -c conda-forge -y
2025-02-15 14:31:02 +08:00
CALL "%MICROMAMBA_EXE%" create -p %MAMBA_ROOT_PREFIX%\envs\matte_anything pytorch=2.0.0 pytorch-cuda=11.8 torchvision tensorboard timm=0.5.4 opencv=4.5.3 mkl=2024.0 setuptools=58.2.0 easydict wget scikit-image gradio=3.46.1 fairscale supervision==0.22.0 -c pytorch -c nvidia -c conda-forge -y
2025-02-14 02:15:09 +08:00
CALL "%MICROMAMBA_EXE%" create -p %MAMBA_ROOT_PREFIX%\envs\openpose python=3.8 cmake=3.20 -c conda-forge -y
2025-02-15 14:31:02 +08:00
CALL "%MICROMAMBA_EXE%" create -p %MAMBA_ROOT_PREFIX%\envs\pixie-env python=3.8 pytorch=2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.8 fvcore pytorch3d==0.7.5 kornia matplotlib -c pytorch -c nvidia -c fvcore -c conda-forge -c pytorch3d -c bottler -c iopath -y
2025-02-14 01:50:52 +08:00
REM 安装 gaussian_splatting_hair 环境
2025-02-14 02:15:09 +08:00
CALL "%MICROMAMBA_EXE%" activate -p %MAMBA_ROOT_PREFIX%\envs\gaussian_splatting_hair
2025-02-14 01:50:52 +08:00
pip install -r requirements.txt
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%
2025-02-15 14:31:02 +08:00
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 │ ├── diffusion_prior/
echo │ └── PIXIE/
echo ├── Matte-Anything/
echo │ ├── sam_vit_h_4b8939.pth
echo │ ├── groundingdino_swint_ogc.pth
echo │ └── model.pth
echo └── openpose/
echo └── models/
exit /b 1
)
2025-02-16 15:10:20 +08:00
REM 复制模型文件到对应位置
echo 正在复制模型文件...
2025-02-16 15:16:16 +08:00
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
2025-02-16 15:10:20 +08:00
REM Neural Haircut
2025-02-16 15:16:16 +08:00
xcopy /Y "%PROJECT_DIR%\resource\NeuralHaircut\pretrained_models\diffusion_prior\model.pt" "%PROJECT_DIR%\ext\NeuralHaircut\pretrained_models\diffusion_prior\"
2025-02-16 15:10:20 +08:00
REM PIXIE
2025-02-16 15:16:16 +08:00
cd "%PROJECT_DIR%\ext\PIXIE"
7z x "%PROJECT_DIR%\resource\PIXIE\pixie_data.tar.gz" -y
7z x pixie_data.tar -y
del pixie_data.tar
2025-02-16 15:10:20 +08:00
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
2025-02-14 01:50:52 +08:00
REM 安装 Matte-Anything 环境
CALL activate_matte_anything.bat
cd %PROJECT_DIR%\ext\Matte-Anything
2025-02-14 02:15:09 +08:00
2025-02-15 14:31:02 +08:00
REM 安装SAM和detectron2
2025-02-14 01:50:52 +08:00
pip install git+https://github.com/facebookresearch/segment-anything.git
2025-02-15 14:31:02 +08:00
pip install 'git+https://github.com/facebookresearch/detectron2.git'
cd GroundingDINO
pip install -e .
cd ..
2025-02-14 01:50:52 +08:00
pip install supervision==0.22.0
2025-02-15 14:31:02 +08:00
mkdir pretrained 2>nul
2025-02-14 01:50:52 +08:00
cd pretrained
2025-02-15 14:31:02 +08:00
xcopy /Y "%PROJECT_DIR%\resource\Matte-Anything\*" .
2025-02-14 01:50:52 +08:00
cd ..
2025-02-15 14:31:02 +08:00
xcopy /Y "%PROJECT_DIR%\resource\Matte-Anything\model.pth" .
2025-02-14 01:50:52 +08:00
2025-02-15 14:46:18 +08:00
REM 安装 OpenPose
CALL activate_openpose.bat
2025-02-14 01:50:52 +08:00
cd %PROJECT_DIR%\ext\openpose
2025-02-15 14:46:18 +08:00
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%
2025-02-15 14:31:02 +08:00
2025-02-15 21:12:05 +08:00
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
)
2025-02-16 14:40:58 +08:00
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
)
2025-02-14 01:50:52 +08:00
echo Installation completed!