Single CLIP Text Encode
The same encoder you already know, plus a text wire for metadata
- clip
- conditioning
- text
This is ComfyUI's stock CLIP Text Encode with one addition that sounds trivial and isn't: it also hands you back the text it encoded. That little extra wire is the entire point of the node, and it exists because of how this pack thinks about metadata.
Here's the workflow reality. ComfyUI's default CLIP Text Encode swallows your prompt and only outputs a CONDITIONING - the embedded vector that guides the sampler. That's all you need for generation, but the moment you also want to record what prompt produced the image in the PNG's metadata, you're stuck running the prompt through a separate path just to have it as text again. Sage Utils' metadata pipeline is built around that need: nodes like Construct Metadata Flexible want the positive prompt as a string input, and this node hands it over for free. Wire conditioning to your sampler and text to your metadata constructor, and one node covers both.
Mechanically there's nothing exotic here. It takes a clip and a multiline text, runs the text through the pack's condition_text helper (which is the same CLIP conditioning you'd get from the core node), and returns the conditioning plus the prompt string. The "zeros any input not hooked up" behavior in the description matters if you leave text disconnected - the node returns empty/zeroed conditioning rather than erroring, which keeps graphs half-built without blowing up.
One thing worth knowing about the broader context: the conditioning you get is only as good as the text encoder your checkpoint uses. On SD 1.5 / SDXL / Illustrious-class models, prompts are CLIP tag bags and (word:1.3) weighting works. On the 2026 LLM-encoded models (Qwen3/Mistral encoder families), your prompt is read like a message and weighting syntax does nothing - but this node doesn't care, it just passes whatever you typed to whatever CLIP model you loaded. If your negative prompt seems to do nothing, that's the model architecture, not this node.
The inputs that matter
clip- the CLIP model, usually from your checkpoint loader or a CLIP loader. Required.text- your prompt, multiline. The only field a beginner actually edits.
Install
Same pack for everything here, so the ritual is short. ComfyUI Manager: search Sage Utils, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/arcum42/ComfyUI_SageUtils.git
cd ComfyUI_SageUtils && pip install -r requirements.txt
Restart ComfyUI and the node appears under Sage Utils → clip → encode → text. If you only need positive-and-negative in one node, grab Dual CLIP Text Encode instead - same idea, half the graph space.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | The CLIP model used for encoding the text. | |
| text | STRING | The positive prompt's text. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | A conditioning containing the embedded text used to guide the diffusion model. |
| text | STRING | The positive prompt's text. |