2.6 KiB
2.6 KiB
tags
| tags | ||
|---|---|---|
|
Value Schedule 📅🅕🅝
Documentation
- Class name:
ValueSchedule - Category:
FizzNodes 📅🅕🅝/ScheduleNodes - Output node:
False
The ValueSchedule node is designed to animate values over a sequence of frames based on keyframes defined in a text input. It modulates the current frame within the maximum frame range and computes interpolated values to provide dynamic, frame-specific outputs.
Input types
Required
text- A multiline string containing keyframes for animation, serving as the blueprint for generating interpolated values across frames.
- Comfy dtype:
STRING - Python dtype:
str
max_frames- The maximum number of frames for the animation, setting an upper limit for frame modulation and interpolation.
- Comfy dtype:
INT - Python dtype:
int
current_frame- The current frame number, used to determine the specific value to be output based on the animation's progression.
- Comfy dtype:
INT - Python dtype:
int
print_output- A boolean flag that, when true, prints the current frame and its corresponding value for debugging purposes.
- Comfy dtype:
BOOLEAN - Python dtype:
bool
Output types
float- Comfy dtype:
FLOAT - The interpolated value for the current frame as a floating-point number.
- Python dtype:
float
- Comfy dtype:
int- Comfy dtype:
INT - The interpolated value for the current frame, cast to an integer.
- Python dtype:
int
- Comfy dtype:
Usage tips
- Infra type:
CPU - Common nodes: unknown
Source code
class ValueSchedule:
@classmethod
def INPUT_TYPES(s):
return {"required": {"text": ("STRING", {"multiline": True, "default":defaultValue}),
"max_frames": ("INT", {"default": 120.0, "min": 1.0, "max": 999999.0, "step": 1.0}),
"current_frame": ("INT", {"default": 0.0, "min": 0.0, "max": 999999.0, "step": 1.0, "forceInput": True}),
"print_output": ("BOOLEAN", {"default": False})}}
RETURN_TYPES = ("FLOAT", "INT")
FUNCTION = "animate"
CATEGORY = "FizzNodes 📅🅕🅝/ScheduleNodes"
def animate(self, text, max_frames, current_frame, print_output):
current_frame = current_frame % max_frames
t = get_inbetweens(parse_key_frames(text, max_frames), max_frames)
if (print_output is True):
print("ValueSchedule: ",current_frame,"\n","current_frame: ",current_frame)
return (t[current_frame],int(t[current_frame]),)