Provide utilities for batch based video generation workflows (s.a. AnimateDiff and Stable Video Diffusion).
This is a custom node pack for ComfyUI, intended to provide utilities for other custom node sets for AnimateDiff and Stable Video Diffusion workflows.
I produce these nodes for my own video production needs (as "Alt Key Project" - Youtube channel). However, I think the nodes may be useful for other people as well.
I also run a separate Youtube channel for "Dream Project", where any videos related to my AI art generation will appear, including tutorials for my node packs (this one and the older "Dream Project Animation Nodes"). Currently, there are no videos for for "Dream Project Video Batches" but that is only a question of time.
You should soon be able to install Dream Project Video Batches node pack using the ComfyUI Manager.
Run within (ComfyUI)/custom_nodes/ folder:
Then, if you are using the python embedded in ComfyUI:
With your system-wide python:
Finally:
As mentioned, this node pack is intended to support other node packs. A few worth mentioning are:
A Frame set is a number of images (in a batch), with frame indices and a frame rate. Most nodes in this node pack work with frame sets.
The camera nodes in the node pack are always animating cropping tools - the output should always be smaller in size than the input (to allow for camera "movement").
Fades from one frame set to another over a specified number of overlapping frames.
Maths node providing arithmetic operators and most common mathematical functions (as defined in Python math module).
Creates a frame set from an image batch and a specified frame rate.
Simple division of float or int.
Adds fade-in from black at beginning of frame set.
Adds fade-out to black at end of frame set.
User input node for float values.
File iteration (finalizer for use with 'For Each Filename')". This is used to process all files in a directory matching a pattern. This node marks a filename as "processed" and should typically be added very late in the workflow.
File iteration. This is used to process all files in a directory matching a pattern. This provides the next file path to process.
Appends a frame set to another.
Recalculates frame dimensions of a frame set with a factor. Useful to calculate intermediate step sizes.
Offsets frame indices in frame set.
Merges two frame sets. Conflicting indices will be prioritized from either set based on the arguments.
Reindexing of frames in frame set (replacing all existing indices).
Repeats a frame set multiple times. Useful for instance to quickly create alonger animation from a loop or single image.
Reverses the frames of an animation (index flip). The flip is done in index order but will otherwise disregard indexing (such as gaps).
Splits a frame set into a part of specified length (in existing frames) at the beginning and the following frames.
Splits a frame set into a part of specified length (in existing frames) at the end and the previous frames.
Splits a frame set into two evenly sized sets (based on number of existing frames). Useful to divide work (reduce memory requirements in some cases).
Simple utility for quickly adding inbetween frames (filling gaps) in frame set.
User input node for float values.
Cropping utility to perform a camera constant velocity pan within a frame set. Outputs a frame set of smaller frame size.
Rolls the camera along z axis.
Linear (constant velocity) zoom through crop.
Loads a single image file from a path.
Simple multiplication node.
Cropping utility to perform a camera pan within a frame set. Outputs a frame set of smaller frame size. Sine oscillation.
Rolls the camera along z axis - sine oscillation.
Oscillating (sine wave) zoom through crop.
User input node for string values.
User input node for text(string) values.
Extracts contents of frame set (required for use with other custom node packs and/or output nodes).