65 lines
1.8 KiB
Python
65 lines
1.8 KiB
Python
# MultiText.py
|
|
class MultiText:
|
|
@classmethod
|
|
def INPUT_TYPES(s):
|
|
return {
|
|
"required": {
|
|
"separator": ("STRING", {
|
|
"default": " ",
|
|
"multiline": False,
|
|
"hidden": True,
|
|
"forceInput": True
|
|
}),
|
|
"active": ("BOOLEAN", {"default": True, "hidden": True}),
|
|
},
|
|
"hidden": {
|
|
**{f"enabled{i}": ("BOOLEAN", {"default": True}) for i in range(1, 21)},
|
|
**{f"text{i}": ("STRING", {"multiline": True}) for i in range(1, 21)},
|
|
**{f"weight{i}": ("FLOAT", {
|
|
"default": 1.0,
|
|
"min": 0.0,
|
|
"max": 2.0,
|
|
"step": 0.1
|
|
}) for i in range(1, 21)}
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("STRING",)
|
|
RETURN_NAMES = ("*",)
|
|
FUNCTION = "combine_text"
|
|
CATEGORY = "AIDoc"
|
|
|
|
def combine_text(self, separator=" ", active=True, **kwargs):
|
|
if not active:
|
|
return ("",)
|
|
|
|
texts = []
|
|
for i in range(1, 21):
|
|
# read enabled{i}
|
|
enabled = kwargs.get(f"enabled{i}", True)
|
|
if not enabled:
|
|
continue # skip if disabled
|
|
|
|
text = kwargs.get(f"text{i}", "").strip()
|
|
weight = 1.0
|
|
if weight is None:
|
|
weight = 1.0
|
|
|
|
if text:
|
|
if weight == 1.0:
|
|
texts.append(text)
|
|
else:
|
|
texts.append(text)
|
|
|
|
return (separator.join(texts),)
|
|
|
|
|
|
# Mappings for MultiText
|
|
NODE_CLASS_MAPPINGS = {
|
|
"MultiText": MultiText # Class mapping for the MultiText node
|
|
}
|
|
|
|
NODE_DISPLAY_NAME_MAPPINGS = {
|
|
"MultiText": "Multi Text" # Display name for the MultiText node
|
|
}
|