refactor + entangled

This commit is contained in:
David
2023-12-06 14:49:02 -08:00
parent 58c17d19d2
commit 363db1e21e
5 changed files with 205 additions and 25 deletions
-7
View File
@@ -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"]
+14
View File
@@ -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
View File
@@ -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
##################################################################
View File
+167
View File
@@ -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)",
}