一体节点 · 内部提示词
Presets, styles and triggers in one string
- model
- clip
- vae
- 正面条件
- 负面条件
- 正面文本
- 负面文本
- 模型
- 空 latent
Five ways to say the same thing
一体节点 · 内部提示词 is the node that turns your text into CONDITIONING. ComfyUI's own CLIP Text Encode does that in one line; this does it after merging up to five sources - the text you typed, text arriving from upstream nodes, enabled prompt presets, selected style entries, and the LoRA trigger words the console collects - into one positive string and one negative string, deduplicated.
It's a 创界/临时测试/内部 node: injected by the console's prompt rewrite, not dragged by you. Category and naming tell you to treat it as private plumbing. That said, its behaviour is the whole reason the pack's prompt manager exists, so it's worth understanding what merged and in what order.
The merge
Precedence is user text first, then positive_extra from an upstream string input, then enabled presets in list order. Each candidate is split into terms and compared normalized, so masterpiece in your text silently kills masterpiece from a preset rather than doubling it. Styles come last as a second pass with a stricter duplicate rule - a style written as a paragraph is matched as a whole block, not word by word, because style blurbs are prose ("shot on expired 400-speed film, hard midday sun") and chopping them into terms is what makes style packs bleed weirdly.
Style placement is configurable: append the style block or prepend it. Prepending puts the style's language first in the prompt, which on CLIP-era encoders does make it weigh more - earlier tokens get more attention - and on LLM-encoded models matters less than structure. The pack also marks malformed or unusual entries ("complex or special terms") as matched whole, so (word:1.3) survives as a literal rather than being parsed. Which brings up the honest caveat: on modern LLM-encoded models, (word:1.3) is discarded by the encoder wrapper anyway, and at CFG 1 the negative prompt isn't computed at all. Style text is still useful there; weight syntax isn't.
Conditional outputs: text or conditioning, automatically
The first two outputs, 正面条件 and 负面条件, are wildcards. At execution the node scans the prompt for what consumes its outputs: if any downstream input is declared CONDITIONING, it encodes both sides with the CLIP you gave it; if not, it passes the merged strings through as plain text. No CLIP wired into a conditioning consumer and you get a clear 请连接 CLIP error instead of a crash.
That auto-switch is genuinely nice for a beginner - one node, don't think about types. It's also a footgun if you build a graph where the downstream node's input type depends on its own configuration. When in doubt, wire it to a KSampler and be done.
The remaining outputs are the dedicated plain-text pair 正面文本 / 负面文本, the model pass-through (风格参考模型), and 空 latent built from latent_width / latent_height / latent_batch_size.
text_output_* : the switches people miss
The text outputs are off by default and gated twice. text_output_enabled turns them on at all; then text_output_user, text_output_extra, text_output_presets and text_output_styles choose which sources feed them. So you can send your raw typing to one downstream node and the full merged prompt to another - useful when you want a plain re-encoder or a captioning step to see what you actually wrote, not the styled result. If both text outputs come out empty strings, one of those five booleans is the reason.
The two krea fields are relics
krea_enabled, krea_reference_key and krea_reference_data are still in the input signature - and in 0.5.26+ the console hardwires them off, because using a saved style's cover image as a Krea 2 generation reference was removed. The sockets stay so old workflows still load, and the values are ignored. If you're reading a tutorial that tells you to turn on Krea style references here, it's describing a build you don't have.
Install and one troubleshooting note
Nothing separate - part of the pack.
cd ComfyUI/custom_nodes
git clone https://github.com/lefango/ComfyUI-ChuangJie.git
Restart, hard-refresh. If you previously ran the standalone PromptManager from this same author, disable it: both register /prompt-manager/v1 and only one can win. Your saved prompt library in the ComfyUI user directory is untouched by the upgrade, and old PromptManager workflows need a manual swap to the console - they won't be rewritten for you.
If prompts come out with pieces in the wrong order, check the style-order toggle and the preset list order before assuming the merge is broken. It's deterministic; it's just deterministic about a stack of things you may have forgotten are enabled.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | STRING | — | |
| negative | STRING | — | |
| config | STRING | {"schema":2,"presets":[],"styles":[],"style_enabled":false,"style_order":"user","multi_select":false} | — |
| krea_enabled | BOOLEAN | false | — |
| text_output_enabled | BOOLEAN | false | — |
| text_output_user | BOOLEAN | true | — |
| text_output_extra | BOOLEAN | false | — |
| text_output_presets | BOOLEAN | false | — |
| text_output_styles | BOOLEAN | false | — |
| krea_reference_key | STRING | — | |
| krea_reference_data | STRING | — | |
| latent_width | INT | 102416–16384 | — |
| latent_height | INT | 102416–16384 | — |
| latent_batch_size | INT | 11–4096 | — |
| modelopt | MODEL | — | |
| clipopt | CLIP | — | |
| vaeopt | VAE | — | |
| positive_extraopt | STRING | — | |
| negative_extraopt | STRING | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| 正面条件 | * | — |
| 负面条件 | * | — |
| 正面文本 | STRING | — |
| 负面文本 | STRING | — |
| 模型 | MODEL | — |
| 空 latent | LATENT | — |