Make dynamic inputs work better
This commit is contained in:
@@ -15,6 +15,8 @@ except:
|
||||
ComfyNodeABC = object
|
||||
ExecutionBlocker = lambda x: x
|
||||
|
||||
from ._dynamic_input import ContainsDynamicDict
|
||||
|
||||
|
||||
class IfElse(ComfyNodeABC):
|
||||
"""
|
||||
@@ -70,11 +72,11 @@ class IfElifElse(ComfyNodeABC):
|
||||
"if": (IO.BOOLEAN, {"forceInput": True}),
|
||||
"then": (IO.ANY, {"lazy": True}),
|
||||
},
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"elif_0": (IO.BOOLEAN, {"forceInput": True, "lazy": True, "_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"then_0": (IO.ANY, {"lazy": True, "_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"else": (IO.ANY, {"lazy": True}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = (IO.ANY,)
|
||||
@@ -152,10 +154,10 @@ class SwitchCase(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"required": ContainsDynamicDict({
|
||||
"selector": (IO.INT, {"default": 0, "min": 0}),
|
||||
"case_0": (IO.ANY, {"lazy": True, "_dynamic": "number"}),
|
||||
},
|
||||
}),
|
||||
"optional": {
|
||||
"default": (IO.ANY, {"lazy": True}),
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ except:
|
||||
ANY = "*"
|
||||
ComfyNodeABC = object
|
||||
|
||||
from ._dynamic_input import ContainsDynamicDict
|
||||
|
||||
INT_MAX = 2**15-1 # the computer can do more but be nice to the eyes
|
||||
|
||||
|
||||
@@ -26,9 +28,9 @@ class DataListCreate(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.ANY, {"_dynamic": "number"}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = (IO.ANY,)
|
||||
@@ -53,9 +55,9 @@ class DataListCreateFromBoolean(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.BOOLEAN, {"_dynamic": "number"}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = (IO.BOOLEAN,)
|
||||
@@ -80,9 +82,9 @@ class DataListCreateFromFloat(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.FLOAT, {"_dynamic": "number"}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = (IO.FLOAT,)
|
||||
@@ -107,9 +109,9 @@ class DataListCreateFromInt(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.INT, {"_dynamic": "number"}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = (IO.INT,)
|
||||
@@ -134,9 +136,9 @@ class DataListCreateFromString(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.STRING, {"_dynamic": "number"}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = (IO.STRING,)
|
||||
|
||||
@@ -13,6 +13,8 @@ except:
|
||||
ANY = "*"
|
||||
ComfyNodeABC = object
|
||||
|
||||
from ._dynamic_input import ContainsDynamicDict
|
||||
|
||||
|
||||
class DictCreate(ComfyNodeABC):
|
||||
"""
|
||||
@@ -24,10 +26,10 @@ class DictCreate(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"key_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"value_0": (IO.ANY, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("DICT",)
|
||||
@@ -56,10 +58,10 @@ class DictCreateFromBoolean(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"key_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"value_0": (IO.BOOLEAN, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
}
|
||||
"value_0": (IO.BOOLEAN, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("DICT",)
|
||||
@@ -88,10 +90,10 @@ class DictCreateFromFloat(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"key_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"value_0": (IO.FLOAT, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("DICT",)
|
||||
@@ -120,10 +122,10 @@ class DictCreateFromInt(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"key_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"value_0": (IO.INT, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("DICT",)
|
||||
@@ -152,10 +154,10 @@ class DictCreateFromString(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"key_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"value_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("DICT",)
|
||||
|
||||
@@ -28,9 +28,9 @@ class ListCreate(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.ANY, {"_dynamic": "number"}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("LIST",)
|
||||
@@ -53,9 +53,9 @@ class ListCreateFromBoolean(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.BOOLEAN, {"_dynamic": "number"}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("LIST",)
|
||||
@@ -78,9 +78,9 @@ class ListCreateFromFloat(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.FLOAT, {"_dynamic": "number"}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("LIST",)
|
||||
@@ -103,9 +103,9 @@ class ListCreateFromInt(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.INT, {"_dynamic": "number"}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("LIST",)
|
||||
|
||||
@@ -12,6 +12,8 @@ except:
|
||||
ANY = "*"
|
||||
ComfyNodeABC = object
|
||||
|
||||
from ._dynamic_input import ContainsDynamicDict
|
||||
|
||||
class MathFormula(ComfyNodeABC):
|
||||
"""
|
||||
A node that evaluates a mathematical formula provided as a string without using eval.
|
||||
@@ -30,10 +32,10 @@ class MathFormula(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"required": ContainsDynamicDict({
|
||||
"formula": (IO.STRING, {"default": "a + b"}),
|
||||
"a": (IO.NUMBER, {"default": 0.0, "_dynamic": "letter"}),
|
||||
},
|
||||
}),
|
||||
}
|
||||
|
||||
RETURN_TYPES = (IO.FLOAT,)
|
||||
|
||||
@@ -13,6 +13,8 @@ except:
|
||||
ANY = "*"
|
||||
ComfyNodeABC = object
|
||||
|
||||
from ._dynamic_input import ContainsDynamicDict
|
||||
|
||||
|
||||
class SetCreate(ComfyNodeABC):
|
||||
"""
|
||||
@@ -24,9 +26,9 @@ class SetCreate(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.ANY, {"_dynamic": "number"}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("SET",)
|
||||
@@ -49,9 +51,9 @@ class SetCreateFromBoolean(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.BOOLEAN, {"_dynamic": "number"}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("SET",)
|
||||
@@ -74,9 +76,9 @@ class SetCreateFromFloat(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.FLOAT, {"_dynamic": "number"}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("SET",)
|
||||
@@ -99,9 +101,9 @@ class SetCreateFromInt(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.INT, {"_dynamic": "number"}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("SET",)
|
||||
@@ -124,9 +126,9 @@ class SetCreateFromString(ComfyNodeABC):
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.STRING, {"_dynamic": "number"}),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("SET",)
|
||||
|
||||
Reference in New Issue
Block a user