From 00cdff54227b61fc32e14db6e29330154de184de Mon Sep 17 00:00:00 2001 From: Cyan9977 Date: Wed, 24 Dec 2025 12:41:17 +0800 Subject: [PATCH] Add files via upload --- README.md | 2 +- nodes.py | 45 ++++++++++++--------------------------------- 2 files changed, 13 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 0dd8aff..216a1da 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ * **容错机制**: 如果您的 KSampler 设置 `Batch Size > 1` (例如 4),该节点会输出 4 份**完全相同**的 conditioning。这意味着您将得到 4 张基于同一提示词的图片,方便优选,提高出图容错率。 * **参数详解**: * **全局前缀**: 一个全局通用的提示词前缀(例如通用画质词、常用 LoRA 触发词等),**始终拼在最前面**。 - * **保存为全局前缀**: 勾选后,会将当前“全局前缀”写入插件全局状态,供后续所有 PQ 节点默认使用。 + * **使用规则**: 仅当你在“全局前缀”里填写内容时才会生效;留空则等同于旧版本逻辑(不添加任何全局前缀)。 * **画师风格提示词 (前缀)**: 输入风格、艺术家等前缀。 * **多行文本**: 核心主体提示词列表,每行一个。 * **提示词后缀**: 画面质量、细节描述等通用后缀。 diff --git a/nodes.py b/nodes.py index dee4ca9..dc933bf 100644 --- a/nodes.py +++ b/nodes.py @@ -29,7 +29,6 @@ PARAMETER_LABELS = { "save_preset": "保存预设", "delete_preset": "删除预设", "global_prefix": "全局前缀", - "save_global_prefix": "保存为全局前缀", "artist_style_prompt": "画师风格提示词", "prompt_suffix": "提示词后缀", "preset_name_for_save": "保存预设名称", @@ -47,18 +46,6 @@ def _pq_normalize_prompt_part(s: str) -> str: return s -_PQ_GLOBAL_PREFIX_CATEGORY = "Global" -_PQ_GLOBAL_PREFIX_KEY = "Global Prefix" - - -def _pq_get_global_prefix() -> str: - return str(_pq_store.get(_PQ_GLOBAL_PREFIX_CATEGORY, _PQ_GLOBAL_PREFIX_KEY, "") or "") - - -def _pq_set_global_prefix(value: str) -> None: - _pq_store.put(_PQ_GLOBAL_PREFIX_CATEGORY, _PQ_GLOBAL_PREFIX_KEY, str(value or "")) - - def _pq_build_prompt_file_path(file_folder: str, file_name: str) -> str: """ 将“提示词文件夹 + 文件名”组合成最终 .txt 路径。 @@ -382,7 +369,6 @@ class StylePromptQueue: "required": { "clip": ("CLIP",), "全局前缀": ("STRING", {"multiline": False, "default": ""}), - "保存为全局前缀": ("BOOLEAN", {"default": False}), "画师风格提示词": ("STRING", {"multiline": False, "default": ""}), "多行文本": ("STRING", {"multiline": True, "default": "A cat\nA dog"}), "提示词后缀": ("STRING", {"multiline": False, "default": ""}), @@ -402,11 +388,9 @@ class StylePromptQueue: FUNCTION = "run" CATEGORY = "PromptQueue" - def run(self, clip, 全局前缀, 保存为全局前缀, 画师风格提示词, 多行文本, 提示词后缀, 使用文件, 提示词文件夹, 文件名, 索引设置, 预设模板, 保存预设名称, 保存预设, 删除预设, unique_id=None): - # 处理全局前缀(独立于预设逻辑,永远保留最高层级) - if 保存为全局前缀: - _pq_set_global_prefix(全局前缀) - global_prefix = _pq_normalize_prompt_part(全局前缀) or _pq_normalize_prompt_part(_pq_get_global_prefix()) + def run(self, clip, 全局前缀, 画师风格提示词, 多行文本, 提示词后缀, 使用文件, 提示词文件夹, 文件名, 索引设置, 预设模板, 保存预设名称, 保存预设, 删除预设, unique_id=None): + # 全局前缀:仅当输入不为空时生效;留空则完全等同于旧逻辑 + global_prefix = _pq_normalize_prompt_part(全局前缀) prefix = 画师风格提示词 suffix = 提示词后缀 @@ -559,7 +543,7 @@ class StylePromptQueue: return ([[cond, meta]], line_to_process) @classmethod - def IS_CHANGED(cls, clip, 全局前缀, 保存为全局前缀, 画师风格提示词, 多行文本, 提示词后缀, 使用文件, 提示词文件夹, 文件名, 索引设置, 预设模板, 保存预设名称, 保存预设, 删除预设): + def IS_CHANGED(cls, clip, 全局前缀, 画师风格提示词, 多行文本, 提示词后缀, 使用文件, 提示词文件夹, 文件名, 索引设置, 预设模板, 保存预设名称, 保存预设, 删除预设): # 始终返回时间戳以强制重新执行 return str(time.time()) @@ -577,7 +561,6 @@ class SimpleStylePromptQueue(StylePromptQueue): "required": { "clip": ("CLIP",), "全局前缀": ("STRING", {"multiline": False, "default": ""}), - "保存为全局前缀": ("BOOLEAN", {"default": False}), "画师风格提示词": ("STRING", {"multiline": False, "default": ""}), "多行文本": ("STRING", {"multiline": True, "default": "A cat\nA dog"}), "提示词后缀": ("STRING", {"multiline": False, "default": ""}), @@ -589,12 +572,11 @@ class SimpleStylePromptQueue(StylePromptQueue): } } - def run(self, clip, 全局前缀, 保存为全局前缀, 画师风格提示词, 多行文本, 提示词后缀, 使用文件, 提示词文件夹, 文件名, 索引设置, 预设模板, unique_id=None): + def run(self, clip, 全局前缀, 画师风格提示词, 多行文本, 提示词后缀, 使用文件, 提示词文件夹, 文件名, 索引设置, 预设模板, unique_id=None): # 调用父类的 run,传入 None/False 作为预设参数 return super().run( clip, 全局前缀, - 保存为全局前缀, 画师风格提示词, 多行文本, 提示词后缀, @@ -610,7 +592,7 @@ class SimpleStylePromptQueue(StylePromptQueue): ) @classmethod - def IS_CHANGED(cls, clip, 全局前缀, 保存为全局前缀, 画师风格提示词, 多行文本, 提示词后缀, 使用文件, 提示词文件夹, 文件名, 索引设置, 预设模板): + def IS_CHANGED(cls, clip, 全局前缀, 画师风格提示词, 多行文本, 提示词后缀, 使用文件, 提示词文件夹, 文件名, 索引设置, 预设模板): return str(time.time()) @@ -629,7 +611,6 @@ class StylePromptQueueBatch: "required": { "clip": ("CLIP",), "全局前缀": ("STRING", {"multiline": False, "default": ""}), - "保存为全局前缀": ("BOOLEAN", {"default": False}), "画师风格提示词": ("STRING", {"multiline": False, "default": ""}), "多行文本": ("STRING", {"multiline": True, "default": "A cat\nA dog"}), "提示词后缀": ("STRING", {"multiline": False, "default": ""}), @@ -649,10 +630,9 @@ class StylePromptQueueBatch: FUNCTION = "run" CATEGORY = "PromptQueue" - def run(self, clip, 全局前缀, 保存为全局前缀, 画师风格提示词, 多行文本, 提示词后缀, 使用文件, 提示词文件夹, 文件名, 索引设置, 预设模板, 保存预设名称, 保存预设, 删除预设): - if 保存为全局前缀: - _pq_set_global_prefix(全局前缀) - global_prefix = _pq_normalize_prompt_part(全局前缀) or _pq_normalize_prompt_part(_pq_get_global_prefix()) + def run(self, clip, 全局前缀, 画师风格提示词, 多行文本, 提示词后缀, 使用文件, 提示词文件夹, 文件名, 索引设置, 预设模板, 保存预设名称, 保存预设, 删除预设): + # 全局前缀:仅当输入不为空时生效;留空则完全等同于旧逻辑 + global_prefix = _pq_normalize_prompt_part(全局前缀) prefix = 画师风格提示词 suffix = 提示词后缀 @@ -772,7 +752,6 @@ class SimpleStylePromptQueueBatch(StylePromptQueueBatch): "required": { "clip": ("CLIP",), "全局前缀": ("STRING", {"multiline": False, "default": ""}), - "保存为全局前缀": ("BOOLEAN", {"default": False}), "画师风格提示词": ("STRING", {"multiline": False, "default": ""}), "多行文本": ("STRING", {"multiline": True, "default": "A cat\nA dog"}), "提示词后缀": ("STRING", {"multiline": False, "default": ""}), @@ -784,12 +763,12 @@ class SimpleStylePromptQueueBatch(StylePromptQueueBatch): } } - def run(self, clip, 全局前缀, 保存为全局前缀, 画师风格提示词, 多行文本, 提示词后缀, 使用文件, 提示词文件夹, 文件名, 索引设置, 预设模板): + def run(self, clip, 全局前缀, 画师风格提示词, 多行文本, 提示词后缀, 使用文件, 提示词文件夹, 文件名, 索引设置, 预设模板): # 调用父类的 run,传入 None 作为预设参数 - return super().run(clip, 全局前缀, 保存为全局前缀, 画师风格提示词, 多行文本, 提示词后缀, 使用文件, 提示词文件夹, 文件名, 索引设置, 预设模板, "", False, False) + return super().run(clip, 全局前缀, 画师风格提示词, 多行文本, 提示词后缀, 使用文件, 提示词文件夹, 文件名, 索引设置, 预设模板, "", False, False) @classmethod - def IS_CHANGED(cls, clip, 全局前缀, 保存为全局前缀, 画师风格提示词, 多行文本, 提示词后缀, 使用文件, 提示词文件夹, 文件名, 索引设置, 预设模板): + def IS_CHANGED(cls, clip, 全局前缀, 画师风格提示词, 多行文本, 提示词后缀, 使用文件, 提示词文件夹, 文件名, 索引设置, 预设模板): return float("nan")