diff --git a/activate_gaussian_splatting_hair.bat b/activate_gaussian_splatting_hair.bat index 896fb48..40d41d2 100644 --- a/activate_gaussian_splatting_hair.bat +++ b/activate_gaussian_splatting_hair.bat @@ -1,4 +1,4 @@ -@echo off +@echo off REM 设置环境变量 SET CUDA_HOME="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8" @@ -14,5 +14,5 @@ SET GDOWN_CACHE=cache\gdown SET TORCH_HOME=cache\torch SET HF_HOME=cache\huggingface -CALL "%MICROMAMBA_EXE%" activate -p %MAMBA_ROOT_PREFIX%\envs\gaussian_splatting_hair +CALL %MICROMAMBA_EXE% activate -p %MAMBA_ROOT_PREFIX%\envs\gaussian_splatting_hair IF EXIST %VS_VCVARS% CALL %VS_VCVARS% diff --git a/activate_matte_anything.bat b/activate_matte_anything.bat index 980858f..76783ba 100644 --- a/activate_matte_anything.bat +++ b/activate_matte_anything.bat @@ -1,4 +1,4 @@ -@echo off +@echo off REM 设置环境变量 SET CUDA_HOME="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8" @@ -14,5 +14,5 @@ SET GDOWN_CACHE=cache\gdown SET TORCH_HOME=cache\torch SET HF_HOME=cache\huggingface -CALL "%MICROMAMBA_EXE%" activate -p %MAMBA_ROOT_PREFIX%\envs\matte_anything +CALL %MICROMAMBA_EXE% activate -p %MAMBA_ROOT_PREFIX%\envs\matte_anything IF EXIST %VS_VCVARS% CALL %VS_VCVARS% diff --git a/activate_openpose.bat b/activate_openpose.bat index 171e0ea..8ecb84d 100644 --- a/activate_openpose.bat +++ b/activate_openpose.bat @@ -1,4 +1,4 @@ -@echo off +@echo off REM 设置环境变量 SET CUDA_HOME="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8" @@ -14,5 +14,5 @@ SET GDOWN_CACHE=cache\gdown SET TORCH_HOME=cache\torch SET HF_HOME=cache\huggingface -CALL "%MICROMAMBA_EXE%" activate -p %MAMBA_ROOT_PREFIX%\envs\openpose -IF EXIST %VS_VCVARS% CALL %VS_VCVARS% +CALL %MICROMAMBA_EXE% activate -p %MAMBA_ROOT_PREFIX%\envs\openpose +IF EXIST %VS_VCVARS% CALL %VS_VCVARS% \ No newline at end of file diff --git a/activate_pixie-env.bat b/activate_pixie-env.bat index 8b758ab..748ecd0 100644 --- a/activate_pixie-env.bat +++ b/activate_pixie-env.bat @@ -1,4 +1,4 @@ -@echo off +@echo off REM 设置环境变量 SET CUDA_HOME="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8" @@ -14,5 +14,5 @@ SET GDOWN_CACHE=cache\gdown SET TORCH_HOME=cache\torch SET HF_HOME=cache\huggingface -CALL "%MICROMAMBA_EXE%" activate -p %MAMBA_ROOT_PREFIX%\envs\pixie-env +CALL %MICROMAMBA_EXE% activate -p %MAMBA_ROOT_PREFIX%\envs\pixie-env IF EXIST %VS_VCVARS% CALL %VS_VCVARS% diff --git a/install.bat b/install.bat index e1536c5..9485d9e 100644 --- a/install.bat +++ b/install.bat @@ -1,5 +1,4 @@ @echo off -setlocal enabledelayedexpansion REM 设置环境变量 SET CUDA_HOME="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8" @@ -15,291 +14,104 @@ SET GDOWN_CACHE=cache\gdown SET TORCH_HOME=cache\torch SET HF_HOME=cache\huggingface -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 拉取所有外部库 +mkdir ext +cd %PROJECT_DIR%\ext && git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose --depth 1 +cd %PROJECT_DIR%\ext\openpose && git submodule update --init --recursive --remote +cd %PROJECT_DIR%\ext && git clone https://github.com/hustvl/Matte-Anything +cd %PROJECT_DIR%\ext\Matte-Anything && git clone https://github.com/IDEA-Research/GroundingDINO.git +cd %PROJECT_DIR%\ext && git clone git@github.com:egorzakharov/NeuralHaircut.git --recursive +cd %PROJECT_DIR%\ext && git clone https://github.com/facebookresearch/pytorch3d +cd %PROJECT_DIR%\ext\pytorch3d && git checkout 2f11ddc5ee7d6bd56f2fb6744a16776fab6536f7 +cd %PROJECT_DIR%\ext && git clone https://github.com/camenduru/simple-knn +cd %PROJECT_DIR%\ext\diff_gaussian_rasterization_hair\third_party && git clone https://github.com/g-truc/glm +cd %PROJECT_DIR%\ext\diff_gaussian_rasterization_hair\third_party\glm && git checkout 5c46b9c07008ae65cb81ab79cd677ecc1934b903 +cd %PROJECT_DIR%\ext && git clone --recursive https://github.com/NVIDIAGameWorks/kaolin +cd %PROJECT_DIR%\ext\kaolin && git checkout v0.15.0 +cd %PROJECT_DIR%\ext && git clone https://github.com/SSL92/hyperIQA -REM 设置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 "%VS_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 检查必要的环境变量 -IF NOT DEFINED PROJECT_DIR ( - echo 错误:未设置PROJECT_DIR环境变量 - exit /b 1 -) - -IF NOT DEFINED VS_VCVARS ( - echo 错误:未设置VS_VCVARS环境变量 - echo 请设置VS_VCVARS指向Visual Studio 2019的vcvars64.bat - 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 . +REM 安装环境 +cd %PROJECT_DIR% && %MICROMAMBA_EXE% create -n gaussian_splatting_hair -f environment.yml +CALL %MICROMAMBA_EXE% activate -p %MAMBA_ROOT_PREFIX%\envs\gaussian_splatting_hair +REM 从resource文件夹拷贝Neural Haircut文件 +xcopy /E /I /Y %PROJECT_DIR%\resource\NeuralHaircut %PROJECT_DIR%\ext\NeuralHaircut +xcopy /E /I /Y %PROJECT_DIR%\resource\hyperIQA\pretrained %PROJECT_DIR%\ext\hyperIQA\pretrained cd %PROJECT_DIR% +REM 退出gaussian_splatting_hair环境 +CALL %MICROMAMBA_EXE% deactivate -REM 检查resource目录 -IF NOT EXIST "%PROJECT_DIR%\resource" ( - echo 错误:未找到resource目录 - echo 请确保resource目录存在且包含以下必需文件: - echo. - echo resource/ - echo ├── NeuralHaircut/ - echo │ ├── pretrained_models/ - echo │ │ ├── diffusion_prior/ - echo │ │ │ └── dif_ckpt.pt # 扩散先验模型 - echo │ │ └── strand_prior/ - echo │ │ └── strand_ckpt.pt # 股线先验模型 - echo │ └── PIXIE/ - echo │ └── pixie_data/ # PIXIE 模型数据存档 - echo ├── Matte-Anything/ - echo │ └── pretrained/ - echo │ └── ViTMatte_B_DIS.pth # Matte-Anything 模型 - echo ├── openpose/ - echo │ └── models/ - echo │ └── models/ # OpenPose 模型 - echo └── hyperIQA/ - echo └── pretrained/ - echo └── koniq_pretrained.pkl # 图像质量评估模型 - exit /b 1 -) -REM 复制模型文件到对应位置 -echo 正在复制模型文件... - -REM 创建必要的目录 -mkdir "%PROJECT_DIR%\ext\NeuralHaircut\pretrained_models\diffusion_prior" 2>nul -mkdir "%PROJECT_DIR%\ext\NeuralHaircut\pretrained_models\strand_prior" 2>nul -mkdir "%PROJECT_DIR%\ext\NeuralHaircut\PIXIE" 2>nul -mkdir "%PROJECT_DIR%\ext\Matte-Anything\pretrained" 2>nul -mkdir "%PROJECT_DIR%\ext\openpose\models" 2>nul -mkdir "%PROJECT_DIR%\ext\hyperIQA\pretrained" 2>nul - -REM 复制 NeuralHaircut 相关文件 -xcopy /Y "%PROJECT_DIR%\resource\NeuralHaircut\pretrained_models\diffusion_prior\dif_ckpt.pt" ^ - "%PROJECT_DIR%\ext\NeuralHaircut\pretrained_models\diffusion_prior\" -xcopy /Y "%PROJECT_DIR%\resource\NeuralHaircut\pretrained_models\strand_prior\strand_ckpt.pt" ^ - "%PROJECT_DIR%\ext\NeuralHaircut\pretrained_models\strand_prior\" -xcopy /Y "%PROJECT_DIR%\resource\NeuralHaircut\PIXIE\pixie_data.tar.gz" ^ - "%PROJECT_DIR%\ext\NeuralHaircut\PIXIE\" - -REM 复制 Matte-Anything 相关文件 -xcopy /Y "%PROJECT_DIR%\resource\Matte-Anything\pretrained\ViTMatte_B_DIS.pth" ^ - "%PROJECT_DIR%\ext\Matte-Anything\pretrained\" - -REM 复制 OpenPose 相关文件 -xcopy /Y "%PROJECT_DIR%\resource\openpose\models\models.tar.gz" ^ - "%PROJECT_DIR%\ext\openpose\models\" - -REM 复制 hyperIQA 相关文件 -xcopy /Y "%PROJECT_DIR%\resource\hyperIQA\pretrained\koniq_pretrained.pkl" ^ - "%PROJECT_DIR%\ext\hyperIQA\pretrained\" - -REM 解压缩文件 -cd "%PROJECT_DIR%\ext\NeuralHaircut\PIXIE" -if exist "pixie_data.tar.gz" ( - tar -xvzf pixie_data.tar.gz - del pixie_data.tar.gz -) - -cd "%PROJECT_DIR%\ext\openpose\models" -if exist "models.tar.gz" ( - tar -xvzf models.tar.gz - del models.tar.gz -) - -cd "%PROJECT_DIR%" - -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 +REM Matte-Anything +%MICROMAMBA_EXE% create -y -n 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 -c pytorch -c nvidia -c conda-forge +CALL %MICROMAMBA_EXE% activate -p %MAMBA_ROOT_PREFIX%\envs\matte_anything +REM 安装pip +python -m pip install --upgrade pip +REM 安装segment-anything pip install git+https://github.com/facebookresearch/segment-anything.git -pip install 'git+https://github.com/facebookresearch/detectron2.git' -cd GroundingDINO +REM 安装detectron2 +python -m pip install 'git+https://github.com/facebookresearch/detectron2.git' +REM 安装GroundingDINO +cd %PROJECT_DIR%\ext\Matte-Anything\GroundingDINO pip install -e . -cd .. +REM 安装supervision 修复GroundingDINO错误 pip install supervision==0.22.0 +REM 创建pretrained文件夹 +cd %PROJECT_DIR%\ext\Matte-Anything && mkdir pretrained +cd %PROJECT_DIR%\ext\Matte-Anything\pretrained +xcopy /E /I /Y %PROJECT_DIR%\resource\Matte-Anything\pretrained\sam_vit_h_4b8939.pth %PROJECT_DIR%\ext\Matte-Anything\pretrained +xcopy /E /I /Y %PROJECT_DIR%\resource\Matte-Anything\pretrained\groundingdino_swint_ogc.pth %PROJECT_DIR%\ext\Matte-Anything\pretrained +REM 退出matte_anything环境 +CALL %MICROMAMBA_EXE% deactivate +REM 进入gaussian_splatting_hair环境 +CALL %MICROMAMBA_EXE% activate -p %MAMBA_ROOT_PREFIX%\envs\gaussian_splatting_hair +REM 下载Neural Haircut文件 +xcopy /E /I /Y %PROJECT_DIR%\resource\Matte-Anything\pretrained\model_best.pth %PROJECT_DIR%\ext\Matte-Anything\pretrained +REM 退出gaussian_splatting_hair环境 +CALL %MICROMAMBA_EXE% deactivate - -REM 安装 OpenPose -CALL activate_openpose.bat +REM OpenPose cd %PROJECT_DIR%\ext\openpose -mkdir build 2>nul +xcopy /E /I /Y %PROJECT_DIR%\resource\openpose\models %PROJECT_DIR%\ext\openpose\models +REM 更新openpose子模块 +git submodule update --init --recursive --remote +REM 创建openpose环境 避免cmake错误 +%MICROMAMBA_EXE% create -y -p %MAMBA_ROOT_PREFIX%\envs\openpose cmake=3.20 -c conda-forge +REM 进入openpose环境 +CALL %MICROMAMBA_EXE% activate -p %MAMBA_ROOT_PREFIX%\envs\openpose +REM 创建build文件夹 +mkdir build cd build -CALL "%VS_VCVARS%" +REM 调用Visual Studio环境 +CALL %VS_VCVARS% +REM 使用Visual Studio 2019构建 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 退出openpose环境 +CALL %MICROMAMBA_EXE% deactivate -REM 检查资源文件是否已下载 -IF NOT EXIST "resource" ( - echo 错误:未找到resource目录,请先运行download_resource.bat - exit /b 1 -) +REM PIXIE +cd %PROJECT_DIR%\ext && git clone https://github.com/yfeng95/PIXIE +cd %PROJECT_DIR%\ext\PIXIE -REM 检查CUDA安装 -IF NOT EXIST "%CUDA_HOME%" ( - echo 错误:未找到CUDA安装目录,请确保CUDA 11.8已正确安装 - exit /b 1 -) +REM 创建data目录 +mkdir data 2>nul +cd data +REM 从resource拷贝PIXIE模型文件 +xcopy /E /I /Y %PROJECT_DIR%\resource\PIXIE\data %PROJECT_DIR%\ext\PIXIE\data +cd .. -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 创建pixie环境 +%MICROMAMBA_EXE% create -y -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 +REM 进入pixie环境 +CALL %MICROMAMBA_EXE% activate -p %MAMBA_ROOT_PREFIX%\envs\pixie-env +REM 安装pip +python -m pip install --upgrade pip +REM 安装pyyaml +pip install pyyaml==5.4.1 +REM 安装face-alignment +pip install "git+https://github.com/1adrianb/face-alignment.git@54623537fd9618ca7c15688fd85aba706ad92b59" +REM 退出pixie环境 +CALL %MICROMAMBA_EXE% deactivate -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 -) - -REM 创建环境激活脚本 -echo @echo off > activate_gaussian_splatting_hair.bat -echo CALL "%%MICROMAMBA_EXE%%" activate -p %%MAMBA_ROOT_PREFIX%%\envs\gaussian_splatting_hair >> activate_gaussian_splatting_hair.bat - -echo @echo off > activate_matte_anything.bat -echo CALL "%%MICROMAMBA_EXE%%" activate -p %%MAMBA_ROOT_PREFIX%%\envs\matte_anything >> activate_matte_anything.bat - -echo @echo off > activate_openpose.bat -echo CALL "%%MICROMAMBA_EXE%%" activate -p %%MAMBA_ROOT_PREFIX%%\envs\openpose >> activate_openpose.bat - -echo @echo off > activate_pixie-env.bat -echo CALL "%%MICROMAMBA_EXE%%" activate -p %%MAMBA_ROOT_PREFIX%%\envs\pixie-env >> activate_pixie-env.bat - -echo Installation completed!