import os import comfy import nodes from comfy.cli_args import args class MultiTextLoader: def __init__(self): pass @classmethod def INPUT_TYPES(cls): return { "required": { "text_input": ("STRING", {"multiline": True, "default": ""}), "enable_formatting": ("BOOLEAN", {"default": True}), "file_path": ("STRING", {"default": ""}), "file_name": ("STRING", {"default": ""}), "calculate_lines": ("BOOLEAN", {"default": True}), "seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff}), }, } RETURN_TYPES = ("STRING", "INT", "INT") RETURN_NAMES = ("text_output", "line_count", "new_seed") FUNCTION = "process_text" CATEGORY = "custom" def process_text(self, text_input, enable_formatting, file_path, file_name, calculate_lines, seed): # 读取文件内容 full_path = os.path.join(file_path, file_name) file_text = "" if os.path.exists(full_path): try: with open(full_path, "r", encoding="utf-8") as f: file_text = f.read() except: pass # 选择文本源 text = file_text if file_text.strip() else text_input # 自动排版处理 if enable_formatting: lines = [line.strip() for line in text.splitlines() if line.strip()] processed_text = "\n".join(lines) else: processed_text = text # 分割处理后的文本 all_lines = processed_text.splitlines() line_count = len(all_lines) output_line_count = line_count if calculate_lines else 0 # 选择输出行 selected_line = "" if line_count > 0: selected_line = all_lines[seed % line_count] # 生成新种子 new_seed = seed + 1 return (selected_line, output_line_count, new_seed) NODE_CLASS_MAPPINGS = { "MultiTextLoader": MultiTextLoader } NODE_DISPLAY_NAME_MAPPINGS = { "MultiTextLoader": "YK_Line loading" }