Nodes/ComfyUI Model Bending/ConditioningApplyOperation
ComfyUI Node

ConditioningApplyOperation

ConditioningApplyOperation

By abuzreq·Created about a year ago·Updated 3 months ago· 21
ConditioningApplyOperation
  • cond
  • operation
  • CONDITIONING
zero_out

Prompts don't go into the sampler as words - they go in as CLIP embeddings, and those embeddings occupy a semantic space where "move this vector a little" means "subtly change the meaning." This node lets you reach in and edit that space directly: it takes a CONDITIONING and a LATENT_OPERATION (from one of the pack's Latent Operation builder nodes) and applies the operation to the conditioning's embedding tensor. No prompt rewriting, no weight tweaks - just math on the vector your prompt became.

Why would you? Because it's a whole different axis of control. The README frames it as "moving conditionings in semantic latent space," and the example workflow does exactly that: it takes a Latent Operation (Custom) set to add_noise at 0.1 and feeds it through this node. Result: the prompt's meaning wanders slightly, image to image, in a way that's hard to replicate by editing words. Add a scalar and you're biasing the whole conditioning; multiply and you're scaling how strongly the embedding asserts itself. It's experimental in the source, and it shows - this is tinkerer territory, not a production tool.

The mechanism is dead simple. A conditioning in ComfyUI is a list of (embedding_tensor, extras_dict) tuples. The node walks that list, applies your operation to each embedding tensor, and - if zero_out is on - zeroes the pooled_output in the extras, which is the global image-level summary CLIP produces. Zeroing pooled output is a crude "forget the global gist" switch; leave it off unless you're chasing a specific effect. Output is a CONDITIONING you can feed straight into any sampler.

Inputs: cond (the conditioning from a CLIPTextEncode), operation (a LATENT_OPERATION - you can only wire in the pack's own operation nodes, which is the usual socket gotcha), and zero_out (boolean).

Realistic expectations: effects at small magnitudes are subtle but real; crank the operation and the image drifts into odd semantic territory. Since it's per-conditioning, you can bend the positive and negative independently - bending just the negative is a fun way to discover what "negative space" actually encodes. The mechanism is grounded in how CLIP pooling works, but the pack is small and largely un-commented-on in the community, so treat it as a lab bench, not a recipe book.

Install: ComfyUI Manager → search "ComfyUI-Model-Bending" → install → restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/abuzreq/ComfyUI-Model-Bending

Dependencies: kornia and scikit-learn. The pack's conditioning_bending.json workflow is the fastest way to see it working - wire a CLIPTextEncode in, add a noise operation at 0.1, and run the same seed twice to watch the drift.

Categorymodel_bending

Inputs (3)

NameTypeDefaultDescription
condCONDITIONING
operationLATENT_OPERATION
zero_outBOOLEAN

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING