| |
| @ECHO OFF |
| SETLOCAL |
|
|
| TITLE Post-processing for prompt-travel... |
| |
| |
| SET _=%~dp0 |
| SET $=%~nx0 |
| SHIFT |
| |
| |
| SET CONFIG_FILE=%_%postprocess-config.cmd |
| IF EXIST %CONFIG_FILE% GOTO skip_init_cfg |
| COPY %CONFIG_FILE%.example %CONFIG_FILE% |
| IF ERRORLEVEL 1 GOTO die |
| :skip_init_cfg |
| |
| |
| CALL %CONFIG_FILE% |
| IF ERRORLEVEL 1 GOTO die |
| |
| |
| IF /I "%~0"=="-c" ( |
| SET CLEAN_FLAG=1 |
| SHIFT |
| ) |
| SET IMAGE_FOLDER=%~0 |
| SHIFT |
| |
| |
| IF NOT EXIST "%IMAGE_FOLDER%" ( |
| ECHO Usage: %$% [-c] ^<image_folder^> [upscale] [interp] [fps] [resr_model] [rife_model] |
| ECHO -c clean cache data when done |
| ECHO upscale image upsampling rate ^(default: %RESR_UPSCALE%^) |
| ECHO interp interpolated video frame count ^(default: %RIFE_INTERP%^) |
| ECHO fps rendered video frame rate ^(default: %FPS%^) |
| ECHO resr_model Real-ESRGAN model checkpoint name ^(default: %RESR_MODEL%^) |
| ECHO rife_model RIFE model checkpoint name ^(default: %RIFE_MODEL%^) |
| ECHO. |
| ECHO e.g. %$% D:\images |
| ECHO %$% -c D:\images |
| ECHO %$% D:\images 2 0 |
| ECHO %$% D:\images 4 120 24 |
| ECHO %$% D:\images 4 0 24 realesr-animevideov3 rife-v2.3 |
| ECHO note: |
| ECHO ^<args^> arguments are required |
| ECHO ^[args^] arguments are optional |
| ECHO. |
| GOTO :end |
| ) |
| |
| |
| IF NOT "%~0"=="" ( |
| SET RESR_UPSCALE=%~0 |
| SHIFT |
| ) |
| IF NOT "%~0"=="" ( |
| SET RIFE_INTERP=%~0 |
| SHIFT |
| ) |
| IF NOT "%~0"=="" ( |
| SET FPS=%~0 |
| SHIFT |
| ) |
| IF NOT "%~0"=="" ( |
| SET RESR_MODEL=%~0 |
| SHIFT |
| ) |
| IF NOT "%~0"=="" ( |
| SET RIFE_MODEL=%~0 |
| SHIFT |
| ) |
| |
| |
| SET TOOL_HOME=%_%tools |
| SET RESR_HOME=%TOOL_HOME%\realesrgan-ncnn-vulkan |
| SET RIFE_HOME=%TOOL_HOME%\rife-ncnn-vulkan |
| SET FFMPEG_HOME=%TOOL_HOME%\ffmpeg |
|
|
| SET BBOX_BIN=busybox.exe |
| SET RESR_BIN=realesrgan-ncnn-vulkan.exe |
| SET RIFE_BIN=rife-ncnn-vulkan.exe |
| SET FFMPEG_BIN=ffmpeg.exe |
|
|
| PATH %TOOL_HOME%;%PATH% |
| PATH %RESR_HOME%;%PATH% |
| PATH %RIFE_HOME%;%PATH% |
| PATH %FFMPEG_HOME%\bin;%FFMPEG_HOME%;%PATH% |
|
|
| SET RESR_FOLDER=%IMAGE_FOLDER%\resr |
| SET RIFE_FOLDER=%IMAGE_FOLDER%\rife |
| SET OUT_FILE=%IMAGE_FOLDER%\synth.mp4 |
| |
| |
| ECHO ================================================== |
| ECHO RESR_MODEL = %RESR_MODEL% |
| ECHO RESR_UPSCALE = %RESR_UPSCALE% |
| ECHO RIFE_MODEL = %RIFE_MODEL% |
| ECHO RIFE_INTERP = %RIFE_INTERP% |
| ECHO FPS = %FPS% |
| ECHO RESR_FOLDER = %RESR_FOLDER% |
| ECHO RIFE_FOLDER = %RIFE_FOLDER% |
| ECHO OUT_FILE = %OUT_FILE% |
| ECHO. |
|
|
| ECHO ^>^> wait for %WAIT_BEFORE_START% seconds before start... |
| %BBOX_BIN% sleep %WAIT_BEFORE_START% |
| IF ERRORLEVEL 1 GOTO die |
| ECHO ^>^> start processing! |
| |
| |
| ECHO ================================================== |
|
|
| ECHO [1/3] image super-resolution |
| IF EXIST %RESR_FOLDER% GOTO skip_resr |
| MKDIR %RESR_FOLDER% |
| %RESR_BIN% -v -s %RESR_UPSCALE% -n %RESR_MODEL% -i %IMAGE_FOLDER% -o %RESR_FOLDER% |
| IF ERRORLEVEL 1 GOTO die |
| :skip_resr |
|
|
| ECHO ================================================== |
|
|
| ECHO [2/3] video frame-interpolation |
| IF EXIST %RIFE_FOLDER% GOTO skip_rife |
| MKDIR %RIFE_FOLDER% |
| SET NFRAMES=%RESR_FOLDER% |
|
|
| %RIFE_BIN% -v -n %RIFE_INTERP% -m %RIFE_MODEL% -i %RESR_FOLDER% -o %RIFE_FOLDER% |
| IF ERRORLEVEL 1 GOTO die |
| :skip_rife |
|
|
| ECHO ================================================== |
|
|
| ECHO [3/3] render video |
| %FFMPEG_BIN% -y -framerate %FPS% -i %RIFE_FOLDER%\%%08d.png -crf 20 -c:v libx264 -pix_fmt yuv420p %OUT_FILE% |
| IF ERRORLEVEL 1 GOTO die |
|
|
| ECHO ================================================== |
| |
| |
| IF "%CLEAN_FLAG%"=="1" ( |
| RMDIR /S /Q %RESR_FOLDER% |
| RMDIR /S /Q %RIFE_FOLDER% |
| ) |
| |
| |
| ECHO ^>^> file saved to %OUT_FILE% |
| IF "%EXPLORER_FLAG%"=="1" ( |
| explorer.exe /e,/select,%OUT_FILE% |
| ) |
|
|
| ECHO ^>^> Done! |
| ECHO. |
| GOTO :end |
| |
| |
| :die |
| ECHO ^<^< Error! |
| ECHO ^<^< errorlevel: %ERRORLEVEL% |
| ECHO. |
|
|
| :end |
| PAUSE |
|
|