DIGIT Text Encode
CLIP Text Encode with a wire-ready text input — the boring node that saves you clicks
- clip
- conditioning
Here's the thing about stock CLIP Text Encode: its text field is a widget, not a socket. To drive it from another node you have to right-click, "Convert widget to input", and then wire it up - a two-step ritual anyone who's built a dynamic prompt has done a thousand times. DIGIT Text Encode just ships with text as a connectable input already. It's the exact same CLIP encoding, minus the ceremony.
This is a "plumbing" node in the purest sense, and the comfyui-node-plumbing KB essay names the underlying problem: typed values repeated across widgets are a silent-mismatch factory. When your prompt lives in one place (say, a DIGIT Prompt Combine or Random Prompt node) and needs to reach the sampler, you want a single authoritative source feeding a wire - not a copy-pasted widget.
The inputs and output
clip- the CLIP model from your checkpoint/UNET loader.text- the prompt string, already a connectable input (the source setsforceInput: true). Wire it from Prompt Combine, Random Prompt, a primitive node, or any string output.- Output:
conditioning- feeds straight into the positive/negative conditioning inputs of your sampler, exactly like the stock node.
That's the whole surface. Two inputs, one output, no hidden knobs. The node calls clip.tokenize(text) and clip.encode_from_tokens(...) with return_pooled=True, so it behaves like the modern CLIP Text Encode that pools and passes dict-form conditioning - which matters for models like FLUX that want that extra pooled vector. Drop-in compatible.
Why you'd reach for it
If you only ever type prompts by hand into the sampler, you don't need this node. The moment your prompt comes from somewhere else - a randomizer, a combiner, a LoRA trigger phrase, an LLM - this saves you the convert-to-input right-click on every single workflow. It's part of the DIGIT pack for a reason: the pack's prompt nodes (Prompt Combine, Random Prompt) output plain strings, and this is the intended handoff point into conditioning.
Setup
Standard pack install: ComfyUI Manager, search comfyui-digit, restart. No dependencies beyond the pack itself, no keys, no API - it's pure local CLIP encoding. One honest caveat: because it uses the same encode machinery as stock ComfyUI, if a future ComfyUI version changes that machinery's output contract, this node tracks the version it shipped with. It's a tiny convenience node, and for anyone wiring dynamic prompts it's the kind of thing you stop noticing - which is exactly the point.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | The CLIP model to encode text with. | |
| text | STRING | Text to encode (connect from Prompt Combine, Random Prompt, etc.). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |