stable-diffusion-aws-extension/pre-flight.bat

130 lines
4.1 KiB
Batchfile

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set INITIAL_SUPPORT_COMMIT_ROOT=bda2ecdbf58fd33b4ad3036ed5cc13eef02747ae
set INITIAL_SUPPORT_COMMIT_CONTROLNET=efda6ddfd82ebafc6e1150fbb7e1f27163482a82
set INITIAL_SUPPORT_COMMIT_DREAMBOOTH=c2a5617c587b812b5a408143ddfb18fc49234edf
set INITIAL_SUPPORT_COMMIT_REMBG=3d9eedbbf0d585207f97d5b21e42f32c0042df70
set INITIAL_SUPPORT_COMMIT_SAM=5df716be8445e0f358f6e8d4b65a87cc611bfe08
set INITIAL_SUPPORT_COMMIT_TILEDVAE=f9f8073e64f4e682838f255215039ba7884553bf
set REPO_URL_LIST[0]="https://github.com/Mikubill/sd-webui-controlnet.git"
set REPO_URL_LIST[1]="https://github.com/d8ahazard/sd_dreambooth_extension.git"
set REPO_URL_LIST[2]="https://github.com/AUTOMATIC1111/stable-diffusion-webui-rembg.git"
set REPO_URL_LIST[3]="https://github.com/continue-revolution/sd-webui-segment-anything.git"
set REPO_URL_LIST[4]="https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111.git"
set REPO_FOLDER_LIST[0]="sd-webui-controlnet"
set REPO_FOLDER_LIST[1]="sd_dreambooth_extension"
set REPO_FOLDER_LIST[2]="stable-diffusion-webui-rembg"
set REPO_FOLDER_LIST[3]="sd-webui-segment-anything"
set REPO_FOLDER_LIST[4]="multidiffusion-upscaler-for-automatic1111"
call :parse_options %*
EXIT /B 0
:show_help
echo Usage: %~nx0 -p/--pre-flight -s/--version-sync
goto :eof
:get_supported_commit_list
set repo_url=%1
set initial_support_commit=%2
set latest_commit=%3
echo %initial_support_commit% %latest_commit%
for /f "tokens=*" %%i in ('git rev-list --topo-order %initial_support_commit%^..%latest_commit%') do echo %%i
goto :eof
:get_latest_commit_id
set repo_url=%1
for /f "tokens=1" %%i in ('git ls-remote "%repo_url%" HEAD ^| findstr /b "[0-9a-f]"') do set latest_commit_id=%%i
echo latest commit: %latest_commit_id%
goto :eof
:pre_flight_check
cd ../..
echo Start pre-flight check for WebUI...
call :get_latest_commit_id "https://github.com/AUTOMATIC1111/stable-diffusion-webui.git"
set LATEST_ROOT_COMMIT=%latest_commit_id%
echo Supported commits for WebUI:
call :get_supported_commit_list "https://github.com/AUTOMATIC1111/stable-diffusion-webui.git" "%INITIAL_SUPPORT_COMMIT_ROOT%" "%LATEST_ROOT_COMMIT%"
@REM set SUPPORTED_ROOT_COMMITS=%supported_commit_list%
for /f "tokens=*" %%i in ('git rev-parse HEAD') do set CUR_ROOT_COMMIT=%%i
echo Current commit id for WebUI: %CUR_ROOT_COMMIT%
echo Pre-flight checks complete.
goto :eof
:version_sync
echo Start version sync for WebUI, make sure the extension folder is empty...
cd ../../
set extension_folder=%1
if not exist %extension_folder%\ (
echo The extension folder does not exist: %extension_folder%
echo Please create it and run the script again.
goto :eof
)
echo Syncing WebUI...
for %%n in (0, 1) do (
set repo_folder=!REPO_FOLDER_LIST[%%n]!
set repo_url=!REPO_URL_LIST[%%n]!
echo repo_url !repo_url!
call :get_latest_commit_id !repo_url!
set latest_commit=!latest_commit_id!
if not exist "%extension_folder%\!repo_folder!" (
echo Cloning !repo_url! into !repo_folder!...
git clone !repo_url! "%extension_folder%\!repo_folder!"
cd "%extension_folder%\!repo_folder!"
git checkout !latest_commit!
cd %cd%
) else (
echo Updating !repo_folder! to the latest commit...
cd "%extension_folder%\!repo_folder!"
git fetch origin
git checkout !latest_commit!
cd %cd%
)
)
echo Version sync complete.
goto :eof
:parse_options
set options=%*
if not "%options%" == "" (
for %%o in (%options%) do (
if "%%o" == "-p" (
call :pre_flight_check
exit /b
) else if "%%o" == "--pre-flight" (
call :pre_flight_check
exit /b
) else if "%%o" == "-s" (
call :version_sync "extensions"
exit /b
) else if "%%o" == "--version-sync" (
call :version_sync "extensions"
exit /b
) else if "%%o" == "-h" (
call :show_help
exit /b
) else if "%%o" == "--help" (
call :show_help
exit /b
) else (
echo Unknown option: %%o
)
)
) else (
call :show_help
)
goto :eof