diff --git a/install.bat b/install.bat index 9d67d16..72e064d 100644 --- a/install.bat +++ b/install.bat @@ -1,121 +1,142 @@ @echo off -setlocal enabledelayedexpansion - -REM Set environment variables -@CALL set "PYTHONDONTWRITEBYTECODE=1" -@CALL set "GDOWN_CACHE=%~dp0\cache\gdown" -@CALL set "TORCH_HOME=%~dp0\cache\torch" -@CALL set "HF_HOME=%~dp0\cache\huggingface" @CALL "%~dp0micromamba.exe" shell init --shell cmd.exe --prefix "%~dp0\" -@CALL SET PROJECT_DIR=%~dp0 -@CALL SET CUDA_HOME="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8" -@CALL SET BLENDER_DIR="C:\Program Files\Blender Foundation\Blender 3.6" -@CALL SET VS_DIR="C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools" -@CALL SET VS_VCVARS="%VS_DIR%\VC\Auxiliary\Build\vcvars64.bat" -@CALL SET PATH=%CUDA_HOME%\bin;%PROJECT_DIR%\condabin;%PATH% -REM Create gaussian_splatting_hair environment +Echo ============= SETTING UP GLOBAL VARIABLES ============= +@CALL SET PROJECT_DIR=D:\Dev\AI\Gitea\GaussianHaircut +@CALL SET EXT_DIR=%PROJECT_DIR%\ext +@CALL SET ENV_DIR=%PROJECT_DIR%\envs +@CALL SET RESOURCE_DIR=%PROJECT_DIR%\resource +@CALL SET CUDA_HOME=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8 +@CALL SET CUDA_PATH=%CUDA_HOME% +@CALL SET CUDA_PATH_V11_8=%CUDA_HOME% +@CALL SET BLENDER_DIR=C:\Program Files\Blender Foundation\Blender 3.6 +@CALL SET VS_DIR=C:\Program Files\Microsoft Visual Studio\2022\Professional +@CALL SET VS_VCVARS=%VS_DIR%\VC\Auxiliary\Build\vcvars64.bat +@CALL set PYTHONDONTWRITEBYTECODE=1 +@CALL set GDOWN_CACHE=%PROJECT_DIR%\cache\gdown +@CALL set TORCH_HOME=%PROJECT_DIR%\cache\torch +@CALL set HF_HOME=%PROJECT_DIR%\cache\huggingface +@CALL SET PATH=%CUDA_HOME%\bin;%PROJECT_DIR%condabin;%PATH% +Echo CUDA_HOME: %CUDA_HOME% +Echo CUDA_DIR: %CUDA_DIR% +Echo PROJECT_DIR: %PROJECT_DIR% +Echo EXT_DIR: %EXT_DIR% +Echo ENV_DIR: %ENV_DIR% +Echo RESOURCE_DIR: %RESOURCE_DIR% +Echo BLENDER_DIR: %BLENDER_DIR% +Echo VS_DIR: %VS_DIR% +Echo VS_VCVARS: %VS_VCVARS% +Echo GDOWN_CACHE: %GDOWN_CACHE% +Echo TORCH_HOME: %TORCH_HOME% +Echo HF_HOME: %HF_HOME% + +REM 验证 CUDA 设置 +@CALL nvcc --version + +REM 设置 Visual Studio 环境 +@CALL SET VS_DIR=C:\Program Files\Microsoft Visual Studio\2022\Professional +@CALL SET VS_VCVARS=%VS_DIR%\VC\Auxiliary\Build\vcvars64.bat +@CALL IF EXIST "%VS_VCVARS%" CALL "%VS_VCVARS%" + +REM 验证编译器 +@CALL WHERE cl.exe + +Echo ============= CREATING GAUSSIAN_SPLATTING_HAIR ENVIRONMENT ============= @CALL cd %PROJECT_DIR% @CALL "%~dp0micromamba.exe" create -n gaussian_splatting_hair python=3.9 ^ -c pytorch -c nvidia -c conda-forge -c anaconda -c fvcore -c iopath -c bottler -r "%~dp0\" -y @CALL "%~dp0condabin\micromamba.bat" activate gaussian_splatting_hair +@CALL SET PATH=%ENV_DIR%\gaussian_splatting_hair\bin;%PATH% @CALL cd %PROJECT_DIR% @CALL python -m pip install --upgrade pip -@CALL python -m pip install torch==2.1.1+cu118 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 --force-reinstall --no-cache-dir -@CALL python -m pip install cmake pyhocon icecream einops accelerate jsonmerge easydict iopath tensorboardx scikit-image gdown colmap --force-reinstall --no-cache-dir -@CALL python -m pip install pysdf clean-fid face-alignment clip torchdiffeq torchsde resize-right +@CALL python -m pip install torch==2.6.0+cu118 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 --force-reinstall --no-cache-dir +@CALL python -m pip install cmake pyhocon icecream einops accelerate jsonmerge easydict iopath tensorboardx scikit-image gdown face-alignment clip torchdiffeq torchsde resize-right clean-fid +@CALL cd %PROJECT_DIR% +@CALL mkdir %EXT_DIR% +@CALL git clone https://github.com/hustvl/Matte-Anything %EXT_DIR%\Matte-Anything +@CALL git clone https://github.com/IDEA-Research/GroundingDINO.git %EXT_DIR%\Matte-Anything\GroundingDINO +@CALL git clone https://github.com/egorzakharov/NeuralHaircut.git --recursive %EXT_DIR%\NeuralHaircut +@CALL git clone https://github.com/facebookresearch/pytorch3d %EXT_DIR%\pytorch3d -b 2f11ddc5ee7d6bd56f2fb6744a16776fab6536f7 +@CALL git clone https://github.com/camenduru/simple-knn %EXT_DIR%\simple-knn +@CALL git clone https://github.com/g-truc/glm %EXT_DIR%\glm -b 5c46b9c07008ae65cb81ab79cd677ecc1934b903 +@CALL git clone --recursive https://github.com/NVIDIAGameWorks/kaolin %EXT_DIR%\kaolin -b v0.15.0 +@CALL git clone https://github.com/facebookresearch/segment-anything.git %EXT_DIR%\Matte-Anything\segment-anything +@CALL git clone git+https://github.com/facebookresearch/detectron2.git %EXT_DIR%\Matte-Anything\detectron2 +@CALL git clone https://github.com/SSL92/hyperIQA %EXT_DIR%\hyperIQA +@CALL git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose %EXT_DIR%\openpose --depth 1 +@CALL git clone https://github.com/yfeng95/PIXIE %EXT_DIR%\PIXIE -REM Clone repositories -@CALL cd %PROJECT_DIR% -@CALL git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose %PROJECT_DIR%\ext\openpose --depth 1 -@CALL cd %PROJECT_DIR%\ext\openpose && git submodule update --init --recursive --remote -@CALL cd %PROJECT_DIR% -@CALL git clone https://github.com/hustvl/Matte-Anything %PROJECT_DIR%\ext\Matte-Anything -@CALL git clone https://github.com/IDEA-Research/GroundingDINO.git %PROJECT_DIR%\ext\Matte-Anything\GroundingDINO -@CALL git clone https://github.com/egorzakharov/NeuralHaircut.git --recursive %PROJECT_DIR%\ext\NeuralHaircut -@CALL git clone https://github.com/facebookresearch/pytorch3d %PROJECT_DIR%\ext\pytorch3d -@CALL cd %PROJECT_DIR%\ext\pytorch3d && git checkout 2f11ddc5ee7d6bd56f2fb6744a16776fab6536f7 -@CALL cd %PROJECT_DIR% -@CALL git clone https://github.com/camenduru/simple-knn %PROJECT_DIR%\ext\simple-knn -@CALL git clone https://github.com/g-truc/glm %PROJECT_DIR%\ext\diff_gaussian_rasterization_hair\third_party\glm -@CALL cd %PROJECT_DIR%\ext\diff_gaussian_rasterization_hair\third_party\glm && git checkout 5c46b9c07008ae65cb81ab79cd677ecc1934b903 -@CALL cd %PROJECT_DIR% -@CALL git clone https://github.com/SSL92/hyperIQA %PROJECT_DIR%\ext\hyperIQA -@CALL cd %PROJECT_DIR% +@CALL mkdir %EXT_DIR%\Matte-Anything\pretrained\ +@CALL mkdir %EXT_DIR%\openpose +@CALL mkdir %EXT_DIR%\PIXIE\data -REM Download Neural Haircut files -@CALL cd %PROJECT_DIR%\ext\NeuralHaircut -@CALL python -m gdown --folder https://drive.google.com/drive/folders/1TCdJ0CKR3Q6LviovndOkJaKm8S1T9F_8 -@CALL cd %PROJECT_DIR%\ext\NeuralHaircut\pretrained_models\diffusion_prior -@CALL python -m gdown 1_9EOUXHayKiGH5nkrayncln3d6m1uV7f -@CALL cd %PROJECT_DIR%\ext\NeuralHaircut\PIXIE -@CALL python -m gdown 1mPcGu62YPc4MdkT8FFiOCP629xsENHZf -@CALL tar -xvzf pixie_data.tar.gz -@CALL del /f /q pixie_data.tar.gz -@CALL cd %PROJECT_DIR%\ext\hyperIQA -@CALL mkdir pretrained -@CALL cd pretrained -@CALL python -m gdown 1OOUmnbvpGea0LIGpIWEbOyxfWx6UCiiE -@CALL cd %PROJECT_DIR% +@CALL python -m pip install %EXT_DIR%\pytorch3d +@CALL python -m pip install %EXT_DIR%\NeuralHaircut\npbgpp +@CALL python -m pip install %EXT_DIR%\simple-knn +@CALL python -m pip install %EXT_DIR%\diff_gaussian_rasterization_hair +@CALL python -m pip install %EXT_DIR%\kaolin -@CALL "%~dp0condabin\micromamba.bat" deactivate +@CALL copy %RESOURCE_DIR%\NeuralHaircut\* %EXT_DIR%\NeuralHaircut\ +@CALL copy %RESOURCE_DIR%\Matte-Anything\pretrained\* %EXT_DIR%\Matte-Anything\pretrained\ +@CALL copy %RESOURCE_DIR%\Matte-Anything\segment-anything\* %EXT_DIR%\Matte-Anything\segment-anything\ +@CALL copy %RESOURCE_DIR%\Matte-Anything\detectron2\* %EXT_DIR%\Matte-Anything\detectron2\ +@CALL copy %RESOURCE_DIR%\Matte-Anything\GroundingDINO\* %EXT_DIR%\Matte-Anything\GroundingDINO\ +@CALL copy %RESOURCE_DIR%\hyperIQA\* %EXT_DIR%\hyperIQA\ +@CALL copy %RESOURCE_DIR%\openpose\* %EXT_DIR%\openpose\ +@CALL copy %RESOURCE_DIR%\PIXIE\data\* %EXT_DIR%\PIXIE\data\ -REM Create matte_anything environment +Echo ============= CREATING MATTE_ANYTHING ENVIRONMENT ============= @CALL cd %PROJECT_DIR% @CALL "%~dp0micromamba.exe" create -n matte_anything python=3.9 ^ -c pytorch -c nvidia -c conda-forge -r "%~dp0\" -y @CALL "%~dp0condabin\micromamba.bat" activate matte_anything -@CALL cd %PROJECT_DIR%\ext\Matte-Anything\ +@CALL SET PATH=%ENV_DIR%\matte_anything\bin;%PATH% +@CALL cd %EXT_DIR%\Matte-Anything\ @CALL python -m pip install --upgrade pip -@CALL python -m pip install torch==2.1.1+cu118 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 --force-reinstall --no-cache-dir -@CALL python -m pip install mkl easydict wget scikit-image gradio fairscale pyside2 future pillow setuptools future --force-reinstall --no-cache-dir -@CALL git clone https://github.com/facebookresearch/segment-anything.git %PROJECT_DIR%\ext\Matte-Anything\segment-anything -@CALL cd %PROJECT_DIR%\ext\Matte-Anything\segment-anything -@CALL python -m pip install -e . -@CALL cd %PROJECT_DIR%\ext\Matte-Anything\ -@CALL git clone https://github.com/conansherry/detectron2.git %PROJECT_DIR%\ext\Matte-Anything\detectron2 -@CALL cd %PROJECT_DIR%\ext\Matte-Anything\detectron2 -@CALL python setup.py build develop -@CALL cd %PROJECT_DIR%\ext\Matte-Anything\GroundingDINO -@CALL python -m pip install -e . -@CALL mkdir %PROJECT_DIR%\ext\Matte-Anything\pretrained -@CALL cd %PROJECT_DIR%\ext\Matte-Anything\pretrained -@CALL curl -L -o sam_vit_h_4b8939.pth https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth -@CALL curl -L -o groundingdino_swint_ogc.pth https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth -@CALL "%~dp0condabin\micromamba.bat" deactivate -@CALL "%~dp0condabin\micromamba.bat" activate gaussian_splatting_hair -@CALL python -m gdown 1d97oKuITCeWgai2Tf3iNilt6rMSSYzkW - -REM Create openpose environment -@CALL cd %PROJECT_DIR%ext\openpose -@CALL python -m gdown 1Yn03cKKfVOq4qXmgBMQD20UMRRRkd_tV -@CALL tar -xvzf models.tar.gz -@CALL git submodule update --init --recursive --remote +@CALL python -m pip install torch==2.6.0+cu118 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 --force-reinstall --no-cache-dir +@CALL python -m pip install cmake mkl setuptools easydict wget scikit-image gradio fairscale pyside2 future pillow +@CALL cd %EXT_DIR%\Matte-Anything\segment-anything +@CALL pip install -e . +@CALL cd %EXT_DIR%\Matte-Anything\detectron2 +@CALL pip install -e . +@CALL cd %EXT_DIR%\Matte-Anything\GroundingDINO +@CALL pip install -e . +@CALL cd %EXT_DIR%\Matte-Anything +@CALL pip install supervision==0.22.0 @CALL cd %PROJECT_DIR% -@CALL "%~dp0micromamba.exe" create -y -n openpose python=3.9 cmake=3.20 opencv=4.5.3 -c conda-forge -r "%~dp0\" + +Echo ============= CREATING OPENPOSE ENVIRONMENT ============= +@CALL cd %PROJECT_DIR% +@CALL "%~dp0micromamba.exe" create -n openpose python=3.9 -c conda-forge -r "%~dp0\" -y @CALL "%~dp0condabin\micromamba.bat" activate openpose -@CALL cd %PROJECT_DIR%ext\openpose -@CALL rmdir /s /q build 2>nul -@CALL del /f /q CMakeCache.txt 2>nul -@CALL rmdir /s /q CMakeFiles 2>nul +@CALL python -m pip install ninja cmake +@CALL SET PATH=%ENV_DIR%\openpose\bin;%PATH% +@CALL cd %EXT_DIR%\openpose @CALL mkdir build -@CALL cd %PROJECT_DIR%ext\openpose\build -@CALL cmake %PROJECT_DIR%ext\openpose -G "Visual Studio 16 2019" -A x64 -T host=x64 -@CALL cmake --build . --config Release +@CALL cd build +@CALL cmake .. ^ + -G Ninja ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DBUILD_PYTHON=true ^ + -DUSE_CUDNN=off ^ + -DCUDA_TOOLKIT_ROOT_DIR="%CUDA_HOME%" ^ + -DCUDA_BIN_PATH="%CUDA_HOME%\bin" ^ + -DCUDA_INCLUDE_DIRS="%CUDA_HOME%\include" ^ + -DCUDA_CUDART_LIBRARY="%CUDA_HOME%\lib\x64\cudart.lib" ^ + -DPython3_ROOT_DIR="%ENV_DIR%\openpose" +@CALL ninja @CALL cd %PROJECT_DIR% -@CALL "%~dp0condabin\micromamba.bat" deactivate -REM Create pixie-env environment +Echo ============= CREATING PIXIE-ENV ENVIRONMENT ============= @CALL cd %PROJECT_DIR% -@CALL "%~dp0micromamba.exe" create -n pixie-env python=3.9 ^ - -c pytorch -c nvidia -c fvcore -c conda-forge -c pytorch3d -r "%~dp0\" -y +@CALL "%~dp0micromamba.exe" create -n pixie-env python=3.9 -c pytorch -c nvidia -c fvcore -c conda-forge -c pytorch3d -r "%~dp0\" -y @CALL "%~dp0condabin\micromamba.bat" activate pixie-env -@CALL cd %PROJECT_DIR%\ext\PIXIE\ +@CALL SET PATH=%ENV_DIR%\pixie-env\bin;%PATH% +@CALL cd %EXT_DIR%\PIXIE @CALL python -m pip install --upgrade pip -@CALL python -m pip install torch==2.1.1+cu118 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 --force-reinstall --no-cache-dir -@CALL python -m fvcore kornia matplotlib pytorch3d pyyaml +@CALL pip install torch==2.6.0+cu118 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 --force-reinstall --no-cache-dir +@CALL pip install fvcore kornia matplotlib pytorch3d pyyaml @CALL pip install git+https://github.com/1adrianb/face-alignment.git@54623537fd9618ca7c15688fd85aba706ad92b59 -@CALL cd %PROJECT_DIR% -@CALL "%~dp0condabin\micromamba.bat" deactivate \ No newline at end of file +@CALL cd %PROJECT_DIR% \ No newline at end of file