Files
2025-04-01 23:29:05 +01:00

66 lines
2.3 KiB
Python

import random
from typing import List
import comfy.model_management as model_management
class TT_StoryCombiner:
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"text1": ("STRING", {"multiline": True}),
"text2": ("STRING", {"multiline": True}),
"text3": ("STRING", {"multiline": True}),
"text4": ("STRING", {"multiline": True}),
"text5": ("STRING", {"multiline": True}),
"text6": ("STRING", {"multiline": True}),
"text7": ("STRING", {"multiline": True}),
"text8": ("STRING", {"multiline": True}),
"text9": ("STRING", {"multiline": True}),
"separator": ("STRING", {"default": ". "}),
"seed": ("INT", {"default": 0}),
}
}
RETURN_TYPES = ("STRING",)
FUNCTION = "process"
CATEGORY = "TT_TextTools"
def process(self, text1: str, text2: str, text3: str, text4: str, text5: str, text6: str, text7: str, text8: str, text9: str, separator: str, seed: int) -> List[str]:
random.seed(seed)
def get_random_line(text):
lines = [line.strip() for line in text.split("\n") if line.strip()]
return random.choice(lines) if lines else ""
selected_lines = [
get_random_line(text1),
get_random_line(text2),
get_random_line(text3),
get_random_line(text4),
get_random_line(text5),
get_random_line(text6),
get_random_line(text7),
get_random_line(text8),
get_random_line(text9)
]
filtered_lines = [line for line in selected_lines if line]
result = separator.join(filtered_lines)
return (result,)
def register_nodes():
return {"TT_StoryCombiner": TT_StoryCombiner}
# A dictionary that contains all nodes you want to export with their names
# NOTE: names should be globally unique
NODE_CLASS_MAPPINGS = {
"TT_StoryCombiner": TT_StoryCombiner
}
# A dictionary that contains the friendly/humanly readable titles for the nodes
NODE_DISPLAY_NAME_MAPPINGS = {
"TT_StoryCombiner": "TT_StoryCombiner"
}