feat: 新增多行文本框(原样输出)节点,修复 Markdown 标题被上游节点吞掉的问题
用户实测发现标题行缺失,根因并非渲染:WAS Node Suite 的「Text Multiline」 会把 "#" 开头的行当注释删除(WAS_Node_Suite.py text_multiline),Markdown 的 #/## 标题在进入本套件节点前就已被丢弃。 - 新增 RuiTextBox 节点:多行文本一字不动透传,关闭 dynamicPrompts, 专门配合 Markdown转图片 使用 - README 在 Markdown 节点文档加警示,说明勿用 WAS Text Multiline 喂 Markdown Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
d419f9262c
commit
eff089c771
@@ -33,6 +33,7 @@ Rui-Node🐶 是一个功能丰富的 ComfyUI 节点集合,提供图像处理
|
||||
- [文本列表制作器 / Text List Creator](#8-文本列表制作器--text-list-creator)
|
||||
- [转化为utf-8编码 / Convert to UTF-8](#11-转化为utf-8编码--convert-to-utf-8)
|
||||
- [Markdown转图片 / Markdown To Image](#19-markdown转图片--markdown-to-image)
|
||||
- [多行文本框(原样输出) / Text Box (Raw)](#20-多行文本框原样输出--text-box-raw)
|
||||
|
||||
### 🎭 遮罩处理类
|
||||
- [遮罩筛选 / Mask Selector](#9-遮罩筛选--mask-selector)
|
||||
@@ -790,6 +791,28 @@ ComfyUI-SDMatte 传 `aux_input="trimap"`,把模型推到了没训练过的输
|
||||
- 生成小红书 / 公众号风格的图文卡片、A4 打印稿
|
||||
- 工作流内把结构化报告(含表格、代码)落成图像资产
|
||||
|
||||
**⚠️ 重要:不要用 WAS 的「Text Multiline」节点喂 Markdown**
|
||||
WAS Node Suite 的「Text Multiline」会把 `#` 开头的行**当注释删除**,标题行会凭空消失,还会做动态提示词替换。请改用本套件的 [多行文本框(原样输出)](#20-多行文本框原样输出--text-box-raw),或直接在本节点的 `markdown` 输入框里粘贴文本。
|
||||
|
||||
---
|
||||
|
||||
### 20. 多行文本框(原样输出) / Text Box (Raw)
|
||||
|
||||
**分类**: `Rui-Node🐶/文本处理📝`
|
||||
|
||||
**功能描述**:
|
||||
把输入的多行文本**一字不动**输出为 STRING:不删注释行、不做动态提示词/通配符/token 替换。专门用来安全承载 Markdown、代码等格式敏感文本(WAS 的「Text Multiline」会把 `#` 开头的行当注释吃掉,喂 Markdown 时标题会消失)。
|
||||
|
||||
**输入参数**:
|
||||
- `text` (STRING): 多行文本
|
||||
|
||||
**输出**:
|
||||
- `text` (STRING): 与输入完全一致的文本
|
||||
|
||||
**使用场景**:
|
||||
- 为 [Markdown转图片](#19-markdown转图片--markdown-to-image) 提供含 `#` 标题的原样文本
|
||||
- 存放任何不希望被上游文本节点"加工"的内容
|
||||
|
||||
---
|
||||
|
||||
## 🐕 关于 Rui-Node🐶
|
||||
|
||||
@@ -58,6 +58,9 @@ except Exception as _e:
|
||||
print(f"[Ruinode] Markdown转图片 节点未加载:{_e}")
|
||||
MDIMG_NODE_CLASS_MAPPINGS = {}
|
||||
MDIMG_NODE_DISPLAY_NAME_MAPPINGS = {}
|
||||
# 新增:多行文本框(原样输出,规避 WAS Text Multiline 吞 "#" 行的问题)
|
||||
from .text_box_node import NODE_CLASS_MAPPINGS as TEXTBOX_NODE_CLASS_MAPPINGS
|
||||
from .text_box_node import NODE_DISPLAY_NAME_MAPPINGS as TEXTBOX_NODE_DISPLAY_NAME_MAPPINGS
|
||||
|
||||
# 合并节点映射字典
|
||||
NODE_CLASS_MAPPINGS = {}
|
||||
@@ -80,6 +83,7 @@ NODE_CLASS_MAPPINGS.update(IMAGESPLITTER_NODE_CLASS_MAPPINGS)
|
||||
NODE_CLASS_MAPPINGS.update(SDMATTE_NODE_CLASS_MAPPINGS)
|
||||
NODE_CLASS_MAPPINGS.update(ZENMUX_NODE_CLASS_MAPPINGS)
|
||||
NODE_CLASS_MAPPINGS.update(MDIMG_NODE_CLASS_MAPPINGS)
|
||||
NODE_CLASS_MAPPINGS.update(TEXTBOX_NODE_CLASS_MAPPINGS)
|
||||
|
||||
# 合并节点显示名称映射
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {}
|
||||
@@ -102,5 +106,6 @@ NODE_DISPLAY_NAME_MAPPINGS.update(IMAGESPLITTER_NODE_DISPLAY_NAME_MAPPINGS)
|
||||
NODE_DISPLAY_NAME_MAPPINGS.update(SDMATTE_NODE_DISPLAY_NAME_MAPPINGS)
|
||||
NODE_DISPLAY_NAME_MAPPINGS.update(ZENMUX_NODE_DISPLAY_NAME_MAPPINGS)
|
||||
NODE_DISPLAY_NAME_MAPPINGS.update(MDIMG_NODE_DISPLAY_NAME_MAPPINGS)
|
||||
NODE_DISPLAY_NAME_MAPPINGS.update(TEXTBOX_NODE_DISPLAY_NAME_MAPPINGS)
|
||||
|
||||
__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS']
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
多行文本框(原样输出)节点
|
||||
==========================
|
||||
把输入的多行文本一字不动地输出为 STRING。
|
||||
|
||||
背景:WAS Node Suite 的「Text Multiline」节点会把 "#" 开头的行当注释删除,
|
||||
还会做动态提示词/token 替换——喂 Markdown 文本时标题行(# 一级标题)会凭空
|
||||
消失。本节点纯透传、零处理,专门用来安全地承载 Markdown / 代码等原样文本。
|
||||
"""
|
||||
|
||||
|
||||
class RuiTextBoxNode:
|
||||
"""多行文本原样透传。"""
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"text": ("STRING", {
|
||||
"default": "",
|
||||
"multiline": True,
|
||||
# 关闭动态提示词处理,杜绝 {a|b}、通配符等被前端改写
|
||||
"dynamicPrompts": False,
|
||||
}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("STRING",)
|
||||
RETURN_NAMES = ("text",)
|
||||
FUNCTION = "passthrough"
|
||||
CATEGORY = "Rui-Node🐶/文本处理📝"
|
||||
|
||||
def passthrough(self, text):
|
||||
return (text,)
|
||||
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
"RuiTextBox": RuiTextBoxNode,
|
||||
}
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {
|
||||
"RuiTextBox": "多行文本框(原样输出) / Text Box (Raw)",
|
||||
}
|
||||
Reference in New Issue
Block a user