Nodes/ComfyUI-UtilsCollection/Text Encode with Flux2 Klein System Prompt
ComfyUI Node

Text Encode with Flux2 Klein System Prompt

The Text Encode That Lets You Edit Klein's Thinking Block

By silveroxides·Created 2 months ago·Updated about 7 hours ago· 24
Text Encode with Flux2 Klein System Prompt
  • clip
  • CONDITIONING
prompt
system_prompt
thinking_content

Flux 2 Klein is the distilled answer to "Flux 2 is too heavy for my card," and it runs on a Qwen3 LLM as its text encoder - which means your prompt is a chat turn with roles, and Klein even has a reasoning block it fills in before answering. UC_TextEncodeKleinSystemPrompt is the encode node that lets you rewrite both of those: the system message and the <think> content Klein generates before the actual image instruction. You can inject your own thinking.

Why you'd reach for it

Klein's encoder doesn't read tags - it reads an instruction, and the template this node builds is:

<|im_start|>system
<your system prompt><|im_end|>
<|im_start|>user
<your prompt><|im_end|>
<|im_start|>assistant
<think>
<your thinking content>
</think>

The thinking_content input is the genuinely novel knob here. Leave it empty and the template emits an empty think block - the default behavior - or type custom reasoning ("the subject is a red car on a rainy street; preserve the car's exact proportions...") and that becomes the reasoning the model conditions on. That's a lever no CLIP-era encoder ever had, and it's exactly the kind of structured prompting the community has found works on LLM-encoder models.

With no system prompt, the template simply omits the system turn and goes straight to the user turn + think block, so the node degrades gracefully.

The inputs

  • clip - Klein's Qwen3 encoder.
  • prompt - the actual generation/instruction text.
  • system_prompt - role framing; leave empty for no system turn.
  • thinking_content - custom reasoning to inject into the think block; empty = default.

Both prompt and system_prompt are dynamic-prompts aware. Output is one CONDITIONING tensor.

Installing it

It's part of ComfyUI-UtilsCollection by silveroxides:

cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI-UtilsCollection

Restart ComfyUI, or install "ComfyUI-UtilsCollection" via Manager. Requirements are the pack's minimal opencv-python + typing-extensions; encoding runs through core.

The caveats

Remember Klein is guidance-distilled - it runs at CFG 1, and prompt weighting is disabled on its encoder, so (word:1.3) does nothing here. The think block is conditioning, not a literal hidden monologue: it shapes the encoded instruction, and its effect is model-dependent, so treat it as something to experiment with rather than a switch you flip for guaranteed wins. And don't confuse this with the Flux2 dev encode - dev uses a different (Mistral-3) encoder and template; the pack has a separate node for it. Klein's whole appeal is fitting on ~13GB of VRAM; if you're on the 9B, watch your encoder memory before anything else.

Categoryadvanced/conditioning

Inputs (4)

NameTypeDefaultDescription
clipCLIP
promptSTRING
system_promptSTRING
thinking_contentSTRINGCustom thinking content to inject. Leave empty for default.

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING