This commit is contained in:
Jeffreytsai1004 2025-02-16 18:24:59 +08:00
parent b9348b6033
commit 41f8e0efab

View File

@ -7,35 +7,7 @@ IF EXIST "resource" (
rmdir /s /q "resource"
)
REM 清理错误路径的资源
IF EXIST "NeuralHaircut" rmdir /s /q "NeuralHaircut"
IF EXIST "Matte-Anything" rmdir /s /q "Matte-Anything"
IF EXIST "openpose" rmdir /s /q "openpose"
IF EXIST "hyperIQA" rmdir /s /q "hyperIQA"
REM 定义模型信息
SET "NEURAL_HAIRCUT_FOLDER_URL=1TCdJ0CKR3Q6LviovndOkJaKm8S1T9F_8"
SET "PIXIE_MODEL_URL=1mPcGu62YPc4MdkT8FFiOCP629xsENHZf"
SET "MATTE_MODEL_URL=1d97oKuITCeWgai2Tf3iNilt6rMSSYzkW"
SET "SAM_MODEL_URL=https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth"
SET "DINO_MODEL_URL=https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth"
SET "OPENPOSE_MODEL_URL=1Yn03cKKfVOq4qXmgBMQD20UMRRRkd_tV"
SET "HYPERIQA_MODEL_URL=1OOUmnbvpGea0LIGpIWEbOyxfWx6UCiiE"
REM 定义文件路径
SET "NEURAL_HAIRCUT_FOLDER_PATH=resource\NeuralHaircut"
SET "PIXIE_PATH=resource\NeuralHaircut\PIXIE\pixie_data\pixie_data"
SET "MATTE_PATH=resource\Matte-Anything\model.pth"
SET "SAM_PATH=resource\Matte-Anything\sam_vit_h_4b8939.pth"
SET "DINO_PATH=resource\Matte-Anything\groundingdino_swint_ogc.pth"
SET "OPENPOSE_PATH=resource\openpose\models\pose\coco\pose_iter_584000.caffemodel"
SET "HYPERIQA_PATH=resource\hyperIQA\pretrained\hyperIQA.pth"
REM 下载设置
SET "RETRY_COUNT=3"
SET "TIMEOUT_SECONDS=600"
SET "CURL_OPTS=--connect-timeout 30 --max-time %TIMEOUT_SECONDS% --retry %RETRY_COUNT% -L -C -"
SET "MIN_FILE_SIZE=1000000"
REM 设置当前目录
SET PROJECT_DIR=%~dp0
@ -94,238 +66,69 @@ IF %ERRORLEVEL% NEQ 0 (
echo gdown安装成功
echo.
REM 创建resource目录结构
mkdir resource 2>nul
cd resource
mkdir NeuralHaircut 2>nul
mkdir Matte-Anything 2>nul
mkdir openpose 2>nul
mkdir hyperIQA 2>nul
REM 验证已有文件
echo 正在检查已有资源文件...
SET MISSING_FILES=0
SET /A TOTAL_FILES=7
SET /A EXISTING_FILES=0
SET MISSING_LIST=
REM Neural Haircut Diffusion Prior 检查
IF EXIST "%NEURAL_HAIRCUT_FOLDER_PATH%\pretrained_models\diffusion_prior\dif_ckpt.pt" (
echo [√] Neural Haircut Diffusion Prior已存在
SET /A EXISTING_FILES+=1
) ELSE (
echo [×] 缺少Neural Haircut Diffusion Prior
SET /A MISSING_FILES+=1
SET MISSING_LIST=!MISSING_LIST!Neural Haircut Diffusion Prior,
)
REM Neural Haircut Strand Prior 检查
IF EXIST "%NEURAL_HAIRCUT_FOLDER_PATH%\pretrained_models\strand_prior\strand_ckpt.pt" (
echo [√] Neural Haircut Strand Prior已存在
SET /A EXISTING_FILES+=1
) ELSE (
echo [×] 缺少Neural Haircut Strand Prior
SET /A MISSING_FILES+=1
SET MISSING_LIST=!MISSING_LIST!Neural Haircut Strand Prior,
)
REM PIXIE 模型检查
IF EXIST "%PIXIE_PATH%" (
echo [√] PIXIE模型已存在
SET /A EXISTING_FILES+=1
) ELSE (
echo [×] 缺少PIXIE模型
SET /A MISSING_FILES+=1
SET MISSING_LIST=!MISSING_LIST!PIXIE模型,
)
REM SAM 模型检查
IF EXIST "%SAM_PATH%" (
echo [√] SAM模型已存在
SET /A EXISTING_FILES+=1
) ELSE (
echo [×] 缺少SAM模型
SET /A MISSING_FILES+=1
SET MISSING_LIST=!MISSING_LIST!SAM模型,
)
REM GroundingDINO 模型检查
IF EXIST "%DINO_PATH%" (
echo [√] GroundingDINO模型已存在
SET /A EXISTING_FILES+=1
) ELSE (
echo [×] 缺少GroundingDINO模型
SET /A MISSING_FILES+=1
SET MISSING_LIST=!MISSING_LIST!GroundingDINO模型,
)
REM OpenPose 模型检查
IF EXIST "%OPENPOSE_PATH%" (
echo [√] OpenPose模型已存在
SET /A EXISTING_FILES+=1
) ELSE (
echo [×] 缺少OpenPose模型
SET /A MISSING_FILES+=1
SET MISSING_LIST=!MISSING_LIST!OpenPose模型,
)
REM hyperIQA 模型检查
IF EXIST "%HYPERIQA_PATH%" (
echo [√] hyperIQA模型已存在
SET /A EXISTING_FILES+=1
) ELSE (
echo [×] 缺少hyperIQA模型
SET /A MISSING_FILES+=1
SET MISSING_LIST=!MISSING_LIST!hyperIQA模型,
)
echo.
echo 已存在 %EXISTING_FILES%/%TOTAL_FILES% 个模型文件
IF %MISSING_FILES% GTR 0 (
echo 需要下载 %MISSING_FILES% 个模型文件
echo 缺少的模型: !MISSING_LIST:~0,-2!
echo.
echo ************************************************************
echo * 开始下载所需资源文件 *
echo * 下载时间取决于您的网络连接速度 *
echo * 请耐心等待... *
echo ************************************************************
) ELSE (
echo 所有模型文件已存在,无需下载
exit /b 0
)
REM 设置代理选项(可选)
IF DEFINED HTTP_PROXY (
SET CURL_OPTS=%CURL_OPTS% --proxy %HTTP_PROXY%
SET REQUESTS_CA_BUNDLE=%PROJECT_DIR%\certs\cacert.pem
)
REM 下载 Neural Haircut 文件
cd resource\NeuralHaircut
echo 正在下载Neural Haircut预训练文件夹...
mkdir pretrained_models 2>nul
mkdir pretrained_models\diffusion_prior 2>nul
mkdir pretrained_models\strand_prior 2>nul
REM 下载 diffusion_prior 模型
cd pretrained_models\diffusion_prior
echo 正在下载Neural Haircut Diffusion Prior模型...
python -m gdown "1OBR0Vzb_w5SNc1jmoScA6L8SqVniJGOr" -O dif_ckpt.pt
cd ..
REM 下载 strand_prior 模型
cd strand_prior
echo 正在下载Neural Haircut Strand Prior模型...
python -m gdown "1DESwUb-nsmi38VCDvnBwpd9kjcWONNT6" -O strand_ckpt.pt
cd ..\..
REM 下载 PIXIE 文件
mkdir PIXIE 2>nul
cd PIXIE
IF EXIST "pixie_data.tar" (
echo PIXIE模型已存在跳过下载...
) ELSE (
echo 正在下载PIXIE模型...
python -m gdown "%PIXIE_MODEL_URL%"
tar -xvzf pixie_data.tar.gz ./
del pixie_data.tar.gz
)
REM 下载 Matte-Anything 文件
cd ..\..\Matte-Anything
echo 正在下载Matte-Anything文件...
curl %CURL_OPTS% -o "%SAM_PATH%" "%SAM_MODEL_URL%"
curl -L --retry 5 -C - -o "%DINO_PATH%" "%DINO_MODEL_URL%"
python -m gdown "%MATTE_MODEL_URL%" -O model.pth
REM 下载 OpenPose 模型
cd ..\openpose
python -m gdown "%OPENPOSE_MODEL_URL%" -O models.tar.gz
tar -xvzf models.tar.gz
del models.tar.gz
REM 下载 hyperIQA 模型
cd ..\hyperIQA
mkdir pretrained 2>nul
cd pretrained
python -m gdown "%HYPERIQA_MODEL_URL%"
cd ..\..\..
echo.
IF %ERRORLEVEL% EQU 0 (
echo ************************************************************
echo * 下载任务已完成 *
echo * 所有资源文件已下载到resource目录 *
echo ************************************************************
) ELSE (
echo ************************************************************
echo * 下载任务未完成 *
echo * 请检查以上错误信息 *
echo ************************************************************
REM 检查resource目录是否存在
if not exist %PROJECT_DIR%/resource (
echo 错误resource目录不存在
echo 请检查目录是否存在
exit /b 1
)
REM 验证下载的文件完整性
echo 正在验证下载文件...
REM 批量创建resource目录结构
echo 正在创建resource目录结构...
mkdir %PROJECT_DIR%/resource/NeuralHaircut/
mkdir %PROJECT_DIR%/resource/NeuralHaircut/PIXIE/
mkdir %PROJECT_DIR%/resource/hyperIQA/pretrained/
mkdir %PROJECT_DIR%/resource/Matte-Anything/pretrained/
mkdir %PROJECT_DIR%/resource/openpose
REM Download Neural Haircut files
echo 正在下载Neural Haircut文件...
mkdir %PROJECT_DIR%/resource/NeuralHaircut/
python -m gdown --folder https://drive.google.com/drive/folders/1TCdJ0CKR3Q6LviovndOkJaKm8S1T9F_8
cd %PROJECT_DIR%/resource/NeuralHaircut/pretrained_models/diffusion_prior
echo 正在下载Neural Haircut扩散先验模型文件...
python -m gdown 1_9EOUXHayKiGH5nkrayncln3d6m1uV7f
cd %PROJECT_DIR%/resource/NeuralHaircut/PIXIE
echo 正在下载Neural HaircutPIXIE模型文件...
python -m gdown 1mPcGu62YPc4MdkT8FFiOCP629xsENHZf && tar -xvzf pixie_data.tar.gz ./ && rm pixie_data.tar.gz
cd %PROJECT_DIR%/resource/hyperIQA/pretrained
echo 正在下载hyperIQA模型文件...
python -m gdown 1OOUmnbvpGea0LIGpIWEbOyxfWx6UCiiE
cd %PROJECT_DIR%
SET VERIFY_FAILED=0
IF NOT EXIST "%NEURAL_HAIRCUT_FOLDER_PATH%\pretrained_models\diffusion_prior\dif_ckpt.pt" (
echo [×] 缺少Neural Haircut Diffusion Prior
SET /A VERIFY_FAILED+=1
) ELSE (
echo [√] Neural Haircut Diffusion Prior验证成功
)
REM Download Matte-Anything files
mkdir %PROJECT_DIR%/resource/Matte-Anything/pretrained
cd %PROJECT_DIR%/resource/Matte-Anything/pretrained
echo 正在下载Matte-Anything扩散先验模型文件...
wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth
echo 正在下载Matte-AnythingGroundingDINO模型文件...
wget https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth
echo 正在下载Matte-Anything模型文件...
python -m gdown 1d97oKuITCeWgai2Tf3iNilt6rMSSYzkW
# Download OpenPose files
cd %PROJECT_DIR%/resource/openpose
echo 正在下载OpenPose模型文件...
python -m gdown 1Yn03cKKfVOq4qXmgBMQD20UMRRRkd_tV && tar -xvzf models.tar.gz && rm models.tar.gz
IF NOT EXIST "%NEURAL_HAIRCUT_FOLDER_PATH%\pretrained_models\strand_prior\strand_ckpt.pt" (
echo [×] 缺少Neural Haircut Strand Prior
SET /A VERIFY_FAILED+=1
) ELSE (
echo [√] Neural Haircut Strand Prior验证成功
)
IF NOT EXIST "%PIXIE_PATH%" (
echo [×] 缺少PIXIE模型
SET /A VERIFY_FAILED+=1
) ELSE (
echo [√] PIXIE模型验证成功
)
IF NOT EXIST "%SAM_PATH%" (
echo [×] 缺少SAM模型
SET /A VERIFY_FAILED+=1
) ELSE (
echo [√] SAM模型验证成功
)
IF NOT EXIST "%DINO_PATH%" (
echo [×] 缺少GroundingDINO模型
SET /A VERIFY_FAILED+=1
) ELSE (
echo [√] GroundingDINO模型验证成功
)
IF NOT EXIST "%OPENPOSE_PATH%" (
echo [×] 缺少OpenPose模型
SET /A VERIFY_FAILED+=1
) ELSE (
echo [√] OpenPose模型验证成功
)
IF NOT EXIST "%HYPERIQA_PATH%" (
echo [×] 缺少hyperIQA模型
SET /A VERIFY_FAILED+=1
) ELSE (
echo [√] hyperIQA模型验证成功
)
IF %VERIFY_FAILED% GTR 0 (
echo.
echo 文件完整性验证失败:%VERIFY_FAILED% 个文件缺失或不完整
echo 请重新运行脚本下载缺失文件
exit /b 1
) ELSE (
echo.
echo 文件完整性验证成功!
)