Conditioning Passthrough
Share one prompt's embeddings with every sampler
- conditioning
- conditioning
In ComfyUI, "conditioning" is what comes out of a CLIP Text Encode node: a bundle of token embeddings (plus the pooled version) that the sampler reads as your prompt. Encoding is the expensive step - it runs the text encoder over your tokens. Handing the result around afterward is nearly free. Conditioning Passthrough is built for that exact hand-off: a CONDITIONING object goes in, the same CONDITIONING comes out, and the point is that you can fan one encoding to many consumers without re-encoding.
The most common reason you reach for it is the "two samplers, one prompt" graph. You have a positive and negative conditioning feeding one KSampler, and now you want a second sampler - maybe a refiner, maybe the same sampler with a different seed for comparison. The lazy move is to duplicate the whole CLIP Text Encode block. The correct move is to keep the original encoding and wire it to both samplers. Drop a Conditioning Passthrough on that wire and you've got a visible, type-checked fan-out point: one source, many consumers, exactly the pattern the plumbing layer of ComfyUI is built around.
Mechanically it's the same shape as every passthrough in this pack. The input is conditioning (optional, forceInput), the output is conditioning, and the function returns whatever you handed it. No copying, no re-encoding, no transform. A disconnected input just outputs nothing, so it's harmless mid-build.
Inputs and outputs that matter
Two sockets, both CONDITIONING:
- conditioning (in) - from your CLIP Text Encode (positive or negative).
- conditioning (out) - identical object, wire it to as many samplers as you like.
Installing it
Same story as every node in this pack. ComfyUI Manager → Custom Nodes Manager → search "ComfyUI-Practical-Tools" → Install → restart. Or clone manually:
cd ComfyUI/custom_nodes
git clone https://github.com/wenchengxiang/ComfyUI-Practical-Tools
then restart. There's no requirements.txt and nothing to pip install - the pack is pure Python over ComfyUI's existing stack, so no model files and no heavy dependencies ride along.
Issues and gotchas
The one trap here is conceptual, not mechanical: passthrough doesn't re-encode, so if you change the prompt you have to re-run the CLIP Text Encode node anyway - a passthrough downstream won't refresh embeddings on its own (nothing in ComfyUI would, really). Also remember the negative and the positive are separate conditioning objects; each needs its own passthrough if you want to fan both. And if your goal is just to straighten a wire, the built-in Reroute is lighter - Conditioning Passthrough earns its keep when you want a typed socket that proves, at a glance, that both samplers are eating the same encoding.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioningopt | CONDITIONING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |