165 lines
3.9 KiB
Batchfile
165 lines
3.9 KiB
Batchfile
@REM Handy script for post-process pipeline
|
|
@ECHO OFF
|
|
SETLOCAL
|
|
|
|
TITLE Post-processing for prompt-travel...
|
|
|
|
REM remeber base path and script name
|
|
SET _=%~dp0
|
|
SET $=%~nx0
|
|
SHIFT
|
|
|
|
REM init configs or make default
|
|
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
|
|
|
|
REM load configs
|
|
CALL %CONFIG_FILE%
|
|
IF ERRORLEVEL 1 GOTO die
|
|
|
|
REM assert required arguments
|
|
IF /I "%~0"=="-c" (
|
|
SET CLEAN_FLAG=1
|
|
SHIFT
|
|
)
|
|
SET IMAGE_FOLDER=%~0
|
|
SHIFT
|
|
|
|
REM show help
|
|
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
|
|
)
|
|
|
|
REM override optional arguments by command line
|
|
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
|
|
)
|
|
|
|
REM prepare paths
|
|
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
|
|
|
|
REM show configs for debug
|
|
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!
|
|
|
|
REM 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 ==================================================
|
|
|
|
REM clean cache
|
|
IF "%CLEAN_FLAG%"=="1" (
|
|
RMDIR /S /Q %RESR_FOLDER%
|
|
RMDIR /S /Q %RIFE_FOLDER%
|
|
)
|
|
|
|
REM finished
|
|
ECHO ^>^> file saved to %OUT_FILE%
|
|
IF "%EXPLORER_FLAG%"=="1" (
|
|
explorer.exe /e,/select,%OUT_FILE%
|
|
)
|
|
|
|
ECHO ^>^> Done!
|
|
ECHO.
|
|
GOTO :end
|
|
|
|
REM error handle
|
|
:die
|
|
ECHO ^<^< Error!
|
|
ECHO ^<^< errorlevel: %ERRORLEVEL%
|
|
ECHO.
|
|
|
|
:end
|
|
PAUSE
|