Adjust Video Speeds - After Creation
Details
Download Files
About this version
Model description
I wanted a workflow to take a generated or existing video and adjust the video speed - not just 1:1 by simply increasing the frames per second, but more nuanced. I found many videos generated at one "feel" - often too slow, and definitely not dynamic.
For example, I want a person to pause, then quickly move and then slow down. But generations would simply create one movement speed, regardless of action.
Using a few simple nodes and processes, I created my own "variable" speed adjustment workflow. This is certainly not automatic - and takes thought (and some basic math) to make happen. But it is possible, and the results are a far better video clip.
My sample videos for this workflow are the final result and the starting video.
My process was to review the video and determine how many speed transitions I wanted.
Leave the start alone - general standing adjustments prior to crouching
Speed up the crouch and jump
Slow down as the character became airborne to give a "feel" of flight as the wings unfolded
Since there weren't other workflows out there to grab as a sample, I went as basic as I could. This process could be used to not only adjust speed per video - but also combine multiple videos and adjust their speeds the same way as I did, allowing me to create a more complex and dynamic feeling scene.
I load the videos - and set the "nth" frame to get at 2 ("select_every_nth" setting). This is important because my original video had interpolation included (every other frame was a "smear" for smoother movement). If my source was "raw" with no interpolation, I would leave this at 1.
For faster movement, I set the "nth" frame at 4 (every other "real" frame).
Between these two, it let me review the video and select how many seconds or fractions of a second each motion would take and adjust accordingly.
The "force_rate" on loading the video was 32 - so with interpolation removed, that means 16 frames per second (half).
For calculation purposes, when thinking about timeline on the original video:
"nth" @ 2 = 16 frames per second of original video
"nth" @ 4 = 8 frames per second of original video
Calculating out my timing (it's in the notes in the workflow), the result was much, much better.
Hopefully this gives someone else some much cooler ideas and better ways to do this. I'm just sharing because it has become a useful tool for me to create a few fun little projects.
Comfy UI Modules Used
(no longer in v1.1) ComfyUI-KJNodes (https://github.com/kijai/ComfyUI-KJNodes)
ComfyUI-VideoHelperSuite (https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite)
ComfyUI-Frame-Interpolation (https://github.com/Fannovel16/ComfyUI-Frame-Interpolation)
