added DynamicPrompts Text Box (with dynamicPrompts property=True. Don't work when text is input from other node :/ )

fixed boolean type in fields class
added dynamicPrompts attribute for string fields class
This commit is contained in:
Derfuu
2024-04-26 20:06:09 +03:00
parent 43653f29f8
commit dd5e1541dc
3 changed files with 31 additions and 7 deletions
+1
View File
@@ -35,6 +35,7 @@ NODE_CLASS_MAPPINGS = {
_n("Integer"): TypeNodes.IntegerNode,
_n("Text"): TypeNodes.StringNode,
_n("Text_Box"): TypeNodes.MultilineStringNode,
_n("DynamicPrompts_Text_Box"): TypeNodes.AsDynamicPromptsStringNode,
_n("String_Concatenate"): StringNodes.StringConcat,
_n("String_Replace"): StringNodes.StringReplace,
_n("To_text_(Debug)"): DebugNodes.ShowDataDebug,
+23 -3
View File
@@ -38,7 +38,7 @@ class IntegerNode:
CATEGORY = TREE_VARIABLE
FUNCTION = "get_value"
def get_value(self, Value):
def get_value(self, Value: float):
return (int(Value),)
@@ -58,7 +58,7 @@ class StringNode:
FUNCTION = "get_value"
CATEGORY = TREE_VARIABLE
def get_value(self, Text):
def get_value(self, Text: str) -> tuple[str]:
return (Text,)
@@ -78,5 +78,25 @@ class MultilineStringNode:
FUNCTION = "get_value"
CATEGORY = TREE_VARIABLE
def get_value(self, Text):
def get_value(self, Text: str) -> tuple[str]:
return (Text,)
class AsDynamicPromptsStringNode:
def __init__(self):
pass
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"Text": Field.string(multiline=True, dynamicPrompts=True),
},
}
RETURN_TYPES = ("STRING",)
FUNCTION = "get_value"
CATEGORY = TREE_VARIABLE
def get_value(self, Text: str) -> tuple[str]:
return (Text,)
+7 -4
View File
@@ -17,11 +17,11 @@ class Field:
return (field,)
@staticmethod
def bool(
def boolean(
default: float = False, force: bool = False
) -> tuple[str, dict]:
field_data = {"default": default, "force": force}
return Field.field("BOOL", field_data)
return Field.field("BOOLEAN", field_data)
@staticmethod
def float(
@@ -40,9 +40,12 @@ class Field:
@staticmethod
def string(
default: str = '', multiline: bool = False, force: bool = False
default: str = '',
multiline: bool = False,
force: bool = False,
dynamicPrompts: bool = False
) -> tuple[str, dict]:
field_data = {"default": default, 'multiline': multiline, "forceInput": force}
field_data = {"default": default, 'multiline': multiline, "forceInput": force, "dynamicPrompts": dynamicPrompts}
return Field.field("STRING", field_data)
@staticmethod