From 888842043195ee5f2c290774ee8940598e3e5f2a Mon Sep 17 00:00:00 2001 From: David Date: Sun, 10 Dec 2023 19:25:45 -0800 Subject: [PATCH] added some bulk utility nodes --- nodes/core.py | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) diff --git a/nodes/core.py b/nodes/core.py index 434d0cc..cdceeeb 100644 --- a/nodes/core.py +++ b/nodes/core.py @@ -195,6 +195,40 @@ class KfConditioningAdd: return (outv, ) + +class KfConditioningAddx10: + CATEGORY = CATEGORY + FUNCTION = "main" + RETURN_TYPES = ("CONDITIONING",) + + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "cond_0": ("CONDITIONING",{"forceInput": True,}), + }, + "optional": { + "cond_1": ("CONDITIONING",{"forceInput": True, "default": 0}), + "cond_2": ("CONDITIONING",{"forceInput": True, "default": 0}), + "cond_3": ("CONDITIONING",{"forceInput": True, "default": 0}), + "cond_4": ("CONDITIONING",{"forceInput": True, "default": 0}), + "cond_5": ("CONDITIONING",{"forceInput": True, "default": 0}), + "cond_6": ("CONDITIONING",{"forceInput": True, "default": 0}), + "cond_7": ("CONDITIONING",{"forceInput": True, "default": 0}), + "cond_8": ("CONDITIONING",{"forceInput": True, "default": 0}), + "cond_9": ("CONDITIONING",{"forceInput": True, "default": 0}), + }, + } + + def main(self, cond_0, **kwargs): + ((cond_t_out, cond_d_out),) = deepcopy(cond_0) + for ((cond_t,cond_d),) in kwargs.values(): + cond_t, cond_d = deepcopy(cond_t), deepcopy(cond_d) + cond_t_out = cond_t_out + cond_t + cond_d_out["pooled_output"] = cond_d_out["pooled_output"] + cond_d["pooled_output"] + return [((cond_t_out, cond_d_out),)] #((cond_t_out, cond_d_out),) + + # class KfCurveInverse: # CATEGORY = CATEGORY # FUNCTION = "main" @@ -340,6 +374,48 @@ class KfCurvesAdd: return (curve_1 + curve_2, ) +class KfCurvesAddx10: + CATEGORY = CATEGORY + FUNCTION = "main" + RETURN_TYPES = ("KEYFRAMED_CURVE",) + + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "curve_0": ("KEYFRAMED_CURVE",{"forceInput": True,}), + }, + "optional": { + "curve_1": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + "curve_2": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + "curve_3": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + "curve_4": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + "curve_5": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + "curve_6": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + "curve_7": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + "curve_8": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + "curve_9": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + }, + } + + def main(self, curve_0, curve_1, curve_2, curve_3, curve_4, curve_5, curve_6, curve_7, curve_8, curve_9): + #curve_1 = deepcopy(curve_1) + #curve_2 = deepcopy(curve_2) + #return (curve_1 + curve_2, ) + curve_out = ( + curve_0 + + curve_1 + + curve_2 + + curve_3 + + curve_4 + + curve_5 + + curve_6 + + curve_7 + + curve_8 + + curve_9) + return (curve_out,) + + class KfCurvesSubtract: CATEGORY = CATEGORY FUNCTION = "main" @@ -380,6 +456,48 @@ class KfCurvesMultiply: return (curve_1 * curve_2, ) +class KfCurvesMultiplyx10: + CATEGORY = CATEGORY + FUNCTION = "main" + RETURN_TYPES = ("KEYFRAMED_CURVE",) + + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "curve_0": ("KEYFRAMED_CURVE",{"forceInput": True,}), + }, + "optional": { + "curve_1": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + "curve_2": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + "curve_3": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + "curve_4": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + "curve_5": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + "curve_6": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + "curve_7": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + "curve_8": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + "curve_9": ("KEYFRAMED_CURVE",{"forceInput": True, "default": 0}), + }, + } + + def main(self, curve_0, curve_1, curve_2, curve_3, curve_4, curve_5, curve_6, curve_7, curve_8, curve_9): + #curve_1 = deepcopy(curve_1) + #curve_2 = deepcopy(curve_2) + #return (curve_1 + curve_2, ) + curve_out = ( + curve_0 * + curve_1 * + curve_2 * + curve_3 * + curve_4 * + curve_5 * + curve_6 * + curve_7 * + curve_8 * + curve_9) + return (curve_out,) + + ## This seems to not be working properly. I think the issue is upstream in Keyframed # TODO: set as experimental? class KfCurvesDivide: @@ -481,6 +599,9 @@ NODE_CLASS_MAPPINGS = { "KfCurvesDivide": KfCurvesDivide, "KfCurveConstant": KfCurveConstant, ######################### + "KfConditioningAddx10":KfConditioningAddx10, + "KfCurvesAddx10":KfCurvesAddx10, + "KfCurvesMultiplyx10":KfCurvesMultiplyx10, }