File size: 3,982 Bytes
eaccf59 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
@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
|