From 90ecf34b8c4f997bd75cfb5cb02bac484b5286ef Mon Sep 17 00:00:00 2001 From: yunxiang wei <121092793+yiwangsimple@users.noreply.github.com> Date: Sat, 27 Jul 2024 10:58:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E7=9B=B4=E6=8E=A5=E6=8F=90?= =?UTF-8?q?=E5=8F=96=E6=96=87=E6=9C=AC=E4=B8=AD=E7=9A=84=E6=AD=A3=E8=B4=9F?= =?UTF-8?q?=E5=90=91=E6=8F=90=E7=A4=BA=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nodes/prompt_extractor.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 nodes/prompt_extractor.py diff --git a/nodes/prompt_extractor.py b/nodes/prompt_extractor.py new file mode 100644 index 0000000..f04be33 --- /dev/null +++ b/nodes/prompt_extractor.py @@ -0,0 +1,38 @@ +import re + +class PromptExtractorNode: + def __init__(self): + pass + + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "input_text": ("STRING", {"multiline": True}), + }, + } + + RETURN_TYPES = ("STRING", "STRING") + RETURN_NAMES = ("positive_prompt", "negative_prompt") + FUNCTION = "extract_prompts" + CATEGORY = "🌙DW/prompt_utils" + + def extract_prompts(self, input_text): + positive_pattern = r'\*\*Positive Prompt:\*\*\s*"(.+?)"' + negative_pattern = r'\*\*Negative Prompt:\*\*\s*"(.+?)"' + + positive_match = re.search(positive_pattern, input_text, re.DOTALL) + negative_match = re.search(negative_pattern, input_text, re.DOTALL) + + positive_prompt = positive_match.group(1).strip() if positive_match else "" + negative_prompt = negative_match.group(1).strip() if negative_match else "" + + return (positive_prompt, negative_prompt) + +NODE_CLASS_MAPPINGS = { + "PromptExtractorNode": PromptExtractorNode +} + +NODE_DISPLAY_NAME_MAPPINGS = { + "PromptExtractorNode": "Prompt Extractor" +} \ No newline at end of file