refactor + entangled
This commit is contained in:
@@ -29,11 +29,4 @@ from .nodes import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS
|
||||
|
||||
print(os.environ.get('COMFYUI_DEBUG_MODE'))
|
||||
|
||||
from .debug import NODE_CLASS_MAPPINGS as ncm0, NODE_DISPLAY_NAME_MAPPINGS as ndnm0
|
||||
|
||||
# there's probably a cleaner, more-dummy-proof way to do this.
|
||||
# feels like an accident waiting to happen. low risk though.
|
||||
NODE_CLASS_MAPPINGS.update(ncm0)
|
||||
NODE_DISPLAY_NAME_MAPPINGS.update(ndnm0)
|
||||
|
||||
__all__ =["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS"]
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
from .core import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS
|
||||
from .debug import NODE_CLASS_MAPPINGS as ncm0, NODE_DISPLAY_NAME_MAPPINGS as ndnm0
|
||||
from .entangled import NODE_CLASS_MAPPINGS as ncm1, NODE_DISPLAY_NAME_MAPPINGS as ndnm1
|
||||
|
||||
# there's probably a cleaner, more-dummy-proof way to do this.
|
||||
# feels like an accident waiting to happen. low risk though.
|
||||
NODE_CLASS_MAPPINGS.update(ncm0)
|
||||
NODE_CLASS_MAPPINGS.update(ncm1)
|
||||
NODE_DISPLAY_NAME_MAPPINGS.update(ndnm0)
|
||||
NODE_DISPLAY_NAME_MAPPINGS.update(ndnm1)
|
||||
|
||||
|
||||
__all__ =["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS"]
|
||||
+24
-18
@@ -69,7 +69,7 @@ label: foo"""
|
||||
|
||||
|
||||
class KfEvaluateCurveAtT:
|
||||
CATEGORY=CATEGORY
|
||||
CATEGORY=CATEGORY # TODO: create a "utils" group
|
||||
FUNCTION = 'main'
|
||||
RETURN_TYPES = ("FLOAT","INT")
|
||||
|
||||
@@ -352,7 +352,7 @@ class KfCurveConstant:
|
||||
|
||||
##################################################################
|
||||
|
||||
#### Working with parameter groups
|
||||
### TODO: Working with parameter groups
|
||||
|
||||
|
||||
# Label curve
|
||||
@@ -438,6 +438,8 @@ class KfSinusoidalWithWavelength:
|
||||
### # ### # ### # ### # ### # ### # ### # ### # ### #
|
||||
|
||||
|
||||
### # ### # ### # ### # ### # ### # ### # ### # ### #
|
||||
|
||||
class KfSinusoidalAdjustWavelength:
|
||||
CATEGORY = CATEGORY
|
||||
FUNCTION = "main"
|
||||
@@ -551,6 +553,22 @@ class KfSinusoidalGetWavelength:
|
||||
return (curve.wavelength,)
|
||||
|
||||
|
||||
class KfSinusoidalGetFrequency:
|
||||
CATEGORY = CATEGORY
|
||||
FUNCTION = "main"
|
||||
RETURN_TYPES = ("FLOAT",)
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(s):
|
||||
return {
|
||||
"required": {
|
||||
"curve": ("SINUSOIDAL_CURVE",{"forceInput": True,}),
|
||||
}}
|
||||
|
||||
def main(self, curve):
|
||||
return (1/curve.wavelength,)
|
||||
|
||||
|
||||
class KfSinusoidalGetPhase:
|
||||
CATEGORY = CATEGORY
|
||||
FUNCTION = "main"
|
||||
@@ -582,24 +600,12 @@ class KfSinusoidalGetAmplitude:
|
||||
def main(self, curve):
|
||||
return (curve.amplitude,)
|
||||
|
||||
##################################################################
|
||||
|
||||
class KfSinusoidalGetFrequency:
|
||||
CATEGORY = CATEGORY
|
||||
FUNCTION = "main"
|
||||
RETURN_TYPES = ("FLOAT",)
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(s):
|
||||
return {
|
||||
"required": {
|
||||
"curve": ("SINUSOIDAL_CURVE",{"forceInput": True,}),
|
||||
}}
|
||||
|
||||
def main(self, curve):
|
||||
return (1/curve.wavelength,)
|
||||
|
||||
|
||||
# TODO: 0-1 curves (low frequency oscillators)
|
||||
# --> "1-X" operator
|
||||
|
||||
# TODO: pre-entangled curves
|
||||
|
||||
##################################################################
|
||||
|
||||
@@ -0,0 +1,167 @@
|
||||
from .core import CATEGORY
|
||||
import keyframed as kf
|
||||
import numpy as np
|
||||
|
||||
class KfSinusoidalEntangledZeroOne:
|
||||
CATEGORY = CATEGORY + "/entangled [0-1]"
|
||||
FUNCTION = "main"
|
||||
#RETURN_TYPES = ("KEYFRAMED_CURVE", "SINUSOIDAL_CURVE")
|
||||
|
||||
def main(self, n, **kargs):
|
||||
tau = np.pi / 2
|
||||
a = 1/n
|
||||
return [a+kf.SinusoidalCurve(phase=i/tau, amplitude=a, **kargs) for i in range(n)]
|
||||
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromWavelength(KfSinusoidalEntangledZeroOne):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"wavelength": ("FLOAT",{
|
||||
"default": 12,
|
||||
"step": 0.5,
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromWavelengthx2(KfSinusoidalEntangledZeroOneFromWavelength):
|
||||
RETURN_TYPES = ("KEYFRAMED_CURVE",)*2
|
||||
def main(self, wavelength):
|
||||
return super().main(n=2, wavelength=wavelength)
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromWavelengthx3(KfSinusoidalEntangledZeroOneFromWavelength):
|
||||
RETURN_TYPES = ("KEYFRAMED_CURVE",)*3
|
||||
def main(self, wavelength):
|
||||
return super().main(n=3, wavelength=wavelength)
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromWavelengthx4(KfSinusoidalEntangledZeroOneFromWavelength):
|
||||
RETURN_TYPES = ("KEYFRAMED_CURVE",)*4
|
||||
def main(self, wavelength):
|
||||
return super().main(n=4, wavelength=wavelength)
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromWavelengthx5(KfSinusoidalEntangledZeroOneFromWavelength):
|
||||
RETURN_TYPES = ("KEYFRAMED_CURVE",)*5
|
||||
def main(self, wavelength):
|
||||
return super().main(n=5, wavelength=wavelength)
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromWavelengthx6(KfSinusoidalEntangledZeroOneFromWavelength):
|
||||
RETURN_TYPES = ("KEYFRAMED_CURVE",)*6
|
||||
def main(self, wavelength):
|
||||
return super().main(n=6, wavelength=wavelength)
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromWavelengthx7(KfSinusoidalEntangledZeroOneFromWavelength):
|
||||
RETURN_TYPES = ("KEYFRAMED_CURVE",)*7
|
||||
def main(self, wavelength):
|
||||
return super().main(n=7, wavelength=wavelength)
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromWavelengthx8(KfSinusoidalEntangledZeroOneFromWavelength):
|
||||
RETURN_TYPES = ("KEYFRAMED_CURVE",)*8
|
||||
def main(self, wavelength):
|
||||
return super().main(n=8, wavelength=wavelength)
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromWavelengthx9(KfSinusoidalEntangledZeroOneFromWavelength):
|
||||
RETURN_TYPES = ("KEYFRAMED_CURVE",)*9
|
||||
def main(self, wavelength):
|
||||
return super().main(n=9, wavelength=wavelength)
|
||||
|
||||
|
||||
###############################################################################################
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromFrequency(KfSinusoidalEntangledZeroOne):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"frequency": ("FLOAT",{
|
||||
"default": 1/12,
|
||||
"step": 0.01,
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromFrequencyx2(KfSinusoidalEntangledZeroOneFromWavelength):
|
||||
RETURN_TYPES = ("KEYFRAMED_CURVE",)*2
|
||||
def main(self, frequency):
|
||||
return super().main(n=2, frequency=frequency)
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromFrequencyx3(KfSinusoidalEntangledZeroOneFromWavelength):
|
||||
RETURN_TYPES = ("KEYFRAMED_CURVE",)*3
|
||||
def main(self, frequency):
|
||||
return super().main(n=3, frequency=frequency)
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromFrequencyx4(KfSinusoidalEntangledZeroOneFromWavelength):
|
||||
RETURN_TYPES = ("KEYFRAMED_CURVE",)*4
|
||||
def main(self, frequency):
|
||||
return super().main(n=4, frequency=frequency)
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromFrequencyx5(KfSinusoidalEntangledZeroOneFromWavelength):
|
||||
RETURN_TYPES = ("KEYFRAMED_CURVE",)*5
|
||||
def main(self, frequency):
|
||||
return super().main(n=5, frequency=frequency)
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromFrequencyx6(KfSinusoidalEntangledZeroOneFromWavelength):
|
||||
RETURN_TYPES = ("KEYFRAMED_CURVE",)*6
|
||||
def main(self, frequency):
|
||||
return super().main(n=6, frequency=frequency)
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromFrequencyx7(KfSinusoidalEntangledZeroOneFromWavelength):
|
||||
RETURN_TYPES = ("KEYFRAMED_CURVE",)*7
|
||||
def main(self, frequency):
|
||||
return super().main(n=7, frequency=frequency)
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromFrequencyx8(KfSinusoidalEntangledZeroOneFromWavelength):
|
||||
RETURN_TYPES = ("KEYFRAMED_CURVE",)*8
|
||||
def main(self, frequency):
|
||||
return super().main(n=8, frequency=frequency)
|
||||
|
||||
class KfSinusoidalEntangledZeroOneFromFrequencyx9(KfSinusoidalEntangledZeroOneFromWavelength):
|
||||
RETURN_TYPES = ("KEYFRAMED_CURVE",)*9
|
||||
def main(self, frequency):
|
||||
return super().main(n=9, frequency=frequency)
|
||||
|
||||
|
||||
###############################################################################################
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
"KfSinusoidalEntangledZeroOneFromWavelengthx2": KfSinusoidalEntangledZeroOneFromWavelengthx2,
|
||||
"KfSinusoidalEntangledZeroOneFromWavelengthx3": KfSinusoidalEntangledZeroOneFromWavelengthx3,
|
||||
"KfSinusoidalEntangledZeroOneFromWavelengthx4": KfSinusoidalEntangledZeroOneFromWavelengthx4,
|
||||
"KfSinusoidalEntangledZeroOneFromWavelengthx5": KfSinusoidalEntangledZeroOneFromWavelengthx5,
|
||||
"KfSinusoidalEntangledZeroOneFromWavelengthx6": KfSinusoidalEntangledZeroOneFromWavelengthx6,
|
||||
"KfSinusoidalEntangledZeroOneFromWavelengthx7": KfSinusoidalEntangledZeroOneFromWavelengthx7,
|
||||
"KfSinusoidalEntangledZeroOneFromWavelengthx8": KfSinusoidalEntangledZeroOneFromWavelengthx8,
|
||||
"KfSinusoidalEntangledZeroOneFromWavelengthx9": KfSinusoidalEntangledZeroOneFromWavelengthx9,
|
||||
|
||||
"KfSinusoidalEntangledZeroOneFromFrequencyx2": KfSinusoidalEntangledZeroOneFromFrequencyx2,
|
||||
"KfSinusoidalEntangledZeroOneFromFrequencyx3": KfSinusoidalEntangledZeroOneFromFrequencyx3,
|
||||
"KfSinusoidalEntangledZeroOneFromFrequencyx4": KfSinusoidalEntangledZeroOneFromFrequencyx4,
|
||||
"KfSinusoidalEntangledZeroOneFromFrequencyx5": KfSinusoidalEntangledZeroOneFromFrequencyx5,
|
||||
"KfSinusoidalEntangledZeroOneFromFrequencyx6": KfSinusoidalEntangledZeroOneFromFrequencyx6,
|
||||
"KfSinusoidalEntangledZeroOneFromFrequencyx7": KfSinusoidalEntangledZeroOneFromFrequencyx7,
|
||||
"KfSinusoidalEntangledZeroOneFromFrequencyx8": KfSinusoidalEntangledZeroOneFromFrequencyx8,
|
||||
"KfSinusoidalEntangledZeroOneFromFrequencyx9": KfSinusoidalEntangledZeroOneFromFrequencyx9,
|
||||
}
|
||||
|
||||
# A dictionary that contains the friendly/humanly readable titles for the nodes
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {
|
||||
"KfSinusoidalEntangledZeroOneFromWavelengthx2": "2x Entangled Curves [0,1] (Wavelength)",
|
||||
"KfSinusoidalEntangledZeroOneFromWavelengthx3": "3x Entangled Curves [0,1] (Wavelength)",
|
||||
"KfSinusoidalEntangledZeroOneFromWavelengthx4": "4x Entangled Curves [0,1] (Wavelength)",
|
||||
"KfSinusoidalEntangledZeroOneFromWavelengthx5": "5x Entangled Curves [0,1] (Wavelength)",
|
||||
"KfSinusoidalEntangledZeroOneFromWavelengthx6": "6x Entangled Curves [0,1] (Wavelength)",
|
||||
"KfSinusoidalEntangledZeroOneFromWavelengthx7": "7x Entangled Curves [0,1] (Wavelength)",
|
||||
"KfSinusoidalEntangledZeroOneFromWavelengthx8": "8x Entangled Curves [0,1] (Wavelength)",
|
||||
"KfSinusoidalEntangledZeroOneFromWavelengthx9": "9x Entangled Curves [0,1] (Wavelength)",
|
||||
|
||||
"KfSinusoidalEntangledZeroOneFromFrequencyx2": "2x Entangled Curves [0,1] (Frequency)",
|
||||
"KfSinusoidalEntangledZeroOneFromFrequencyx3": "3x Entangled Curves [0,1] (Frequency)",
|
||||
"KfSinusoidalEntangledZeroOneFromFrequencyx4": "4x Entangled Curves [0,1] (Frequency)",
|
||||
"KfSinusoidalEntangledZeroOneFromFrequencyx5": "5x Entangled Curves [0,1] (Frequency)",
|
||||
"KfSinusoidalEntangledZeroOneFromFrequencyx6": "6x Entangled Curves [0,1] (Frequency)",
|
||||
"KfSinusoidalEntangledZeroOneFromFrequencyx7": "7x Entangled Curves [0,1] (Frequency)",
|
||||
"KfSinusoidalEntangledZeroOneFromFrequencyx8": "8x Entangled Curves [0,1] (Frequency)",
|
||||
"KfSinusoidalEntangledZeroOneFromFrequencyx9": "9x Entangled Curves [0,1] (Frequency)",
|
||||
}
|
||||
Reference in New Issue
Block a user