A set of custom nodes for frame interpolation and video processing in ComfyUI.
Outputs operate on the principle Hold Frames + Transition Length + End Padding Frames. These values specify the length of the animation to be created. Many of my nodes use these concepts and work in lockstep.
The Dynamic Animated Weights Helper is a versatile extension for animation workflows, providing various frame and mask sequence manipulation tools. This node facilitates the creation of complex animation effects with ease and flexibility.
The user can choose up to 12 separate transition animations, and these are used as a list order. If only 4 transitions are needed the first 4 will be used, if more than 12 are needed, the list of transitions will repeat in a loop in the order listed.
animation_type_1
to animation_type_12
: Select the animation type for each sequence.transition_easing
and blur_easing
: Choose the easing function for transitions and blurs.frame_width
and frame_height
: Set the dimensions for each frame.hold_frames
, transition_frames
, padding_frames
, and input_frames
: Configure the number of frames for holding, transitioning, padding, and input sequences.gaussian_blur_amount
: Adjust the amount of Gaussian blur applied.edge_fx_thickness
, push_fx
, retract_fx
: Parameters for edge effects.fx_cull_white_frames
: Set the threshold for culling white frames in edge effects.qr_greyness
: Adjust the greyness for QR generation mode.random_seed
: Seed for randomization.edgeFade_contrast
and edgeFade_blur
: Parameters for edge fade effects.generation_mode
: Select the generation mode (Only Transitions, Generate QR, Generate Edge-FX, Generate All).edge_fx_fade_balance
: Balance for edge fade effects.venetian_bars
: Number of bars for Venetian blinds animation.The Mask Sequence Helper node provides an efficient way to generate mask sequence codes across two opposing timelines to form a slideshow effect that loops. The node also outputs your images to match the hold, transition and padding counts set. These two timelines are then either masked by the codes, or by animated weights output. This node makes it easy to manage frame transitions in animation workflows. Its customizable parameters allow for precise control over the timing and sequence of frames, making it a valuable tool for animation projects.
The Prompt Travel Helper node assists in transforming a stream of BLIP (Bootstrapped Language-Image Pre-training) captions into a prompt travel format. This node operates on the principles of hold, transition, and padding lengths to create a structured sequence of prompts for animation workflows.
bulk_text_input
: A multiline string input for the bulk text of BLIP captions.hold_length
: Integer input for the number of frames to hold each caption (default: 5).transition_length
: Integer input for the number of frames to transition between captions (default: 5).end_padding_frames
: Integer input for the number of padding frames at the end of the sequence (default: 10).formatted_prompts
: A single string containing the formatted sequence of prompts.The Florence Prompt Travel Helper node assists in transforming a stream of Florence captions into a prompt travel format. This node operates on the principles of hold, transition, and padding lengths to create a structured sequence of prompts for animation workflows, similar to the BLIP Travel Helper but specifically designed for Florence captions.
bulk_text_input
: A multiline string input for the bulk text of Florence captions.hold_length
: Integer input for the number of frames to hold each caption (default: 5).transition_length
: Integer input for the number of frames to transition between captions (default: 5).end_padding_frames
: Integer input for the number of padding frames at the end of the sequence (default: 10).formatted_prompts
: A single string containing the formatted sequence of prompts.The EdgeFX Source Images node extends the functionality of the Mask Sequence Helper by adding push and retract features. This node allows for more dynamic control over the timing of the Edge FX animation sequence, enabling users to adjust the timeline by either pushing it forward in time or pulling it back in time, allowing you to resync the effect across the transition timeline. This is primarily useful for the 'lower ram' ipadapter option within the worflow, it's aimed at helping users with lower ram cards, who can barely run EFX. Otherwise the 2 Ipadapter solution should be used, and these push retract features are usually never needed.
image_stream
: The stream of images to be processed.num_images
: Number of images in the sequence.hold_length
: Number of frames to hold each image.transition_length
: Number of frames for the transition between images.padding_frames
: Number of padding frames to add at the end.push
: Increase the hold length for the first frame.retract
: Decrease the hold length for the first frame.first_timeline
: The first sequence of images with transitions and holds.second_timeline
: The second sequence of images, offset by one image from the first.first_text_output
: Text output for the first mask sequence.second_text_output
: Text output for the second mask sequence.total_frames
: Total number of frames generated, including padding.(excerpt image only) The workflow file is in the workflows folder. <img src="https://github.com/user-attachments/assets/b4564dff-febb-46e0-bd03-574f373e3fa7" style="max-width: 100%; height: auto;">
<img src="https://github.com/user-attachments/assets/a069efe1-dbfc-41a9-b448-91edd46c8c64" style="width: 650px; height: auto;">The Live Prompt Interpolation node is part of the Dream Zoom Workflow with auto-queue functionality in ComfyUI. It enables live interpolation of prompts on the fly, allowing for dynamic and smooth transitions between prompts. This node takes a single prompt and interpolates from the previously typed prompt over a specified number of frames, It has trigger functions that make sure the prompt is only registered after a specified number of frames and characters difference, ensuring that prompt changes are handled in real-time, yet not too soon, providing a fluid animation experience.
The Prompt Stack Manager node is designed for the Dream Zoom Workflow with auto-queue functionality in ComfyUI. It manages a stack of prompts provided in a multiline text box and cycles through them based on the frame count derived from a seed input. This node outputs the current and previous prompts, facilitating live prompt interpolation and seamless transitions between different prompts during animation workflows. This node was designed to work as a sister node for the following node:
Atomic Perception created as a collaboration effort for the Dream-zoom workflow on discord. Props to atom.p for inspiring me to get started on custom node creation. His effort on this node led to creating my own nodes. This node below is referenced here because it's part of the Dream-Zoom workflow.
<img src="https://github.com/user-attachments/assets/9560da78-2b22-4b2d-a5e9-7a613686ed57" style="width: 350px; height: auto;">That node can be found here: https://github.com/AtomicPerception/ap_Nodes/tree/main
*All of my nodes were created with AI assistance from Chat GPT and Claude.