diff --git a/web_prompter_nodes.py b/web_prompter_nodes.py index 6989e49..f4326f4 100644 --- a/web_prompter_nodes.py +++ b/web_prompter_nodes.py @@ -94,45 +94,3 @@ class LLMNewsScriptGenerator: error_message = f"OpenAI API call failed: {e}" print(f"[LLMNewsScriptGenerator] {error_message}") return (error_message,) - - -# ================================================================================= -# 節點 3: Prompt Finalizer -# ================================================================================= -class PromptFinalizer: - @classmethod - def INPUT_TYPES(cls): - return { - "required": { - # 為了讓 UI 返回值能更新這個控件,它必須存在於 INPUT_TYPES 中 - "prompt": ("STRING", {"multiline": True, "dynamicPrompts": False, "default": ""}), - }, - "optional": { - # 我們用一個隱藏的輸入來接收上游數據,避免衝突 - "text_input": ("STRING", {"forceInput": True, "widget": "hide"}), - } - } - - # 注意:RETURN_TYPES 現在只包含給下游節點的數據 - RETURN_TYPES = ("STRING",) - RETURN_NAMES = ("final_prompt",) - FUNCTION = "finalize" - CATEGORY = "WebPrompter" - - def finalize(self, prompt, text_input=None): - # 決定最終的文本內容,優先使用來自上游連線的數據 - # 如果沒有連線,則使用用戶在文本框中輸入的內容 - final_text = text_input if text_input is not None else prompt - - # ====================================================================== - # V V V 這是解決問題的關鍵所在 V V V - # ====================================================================== - # 我們返回一個元組,其中第二個元素是一個特殊的 "ui" 字典。 - # 這個字典會告訴前端去更新名為 "prompt" 的控件(widget), - # 將其內容設置為我們處理好的 final_text。 - return { - "ui": { - "prompt": [final_text] # 將 'prompt' 文本框的內容更新為 final_text - }, - "result": (final_text,) # 'result' 鍵包含了要傳遞給下游節點的數據 - }