LotusConditioning
The node with no inputs that isn't broken
- conditioning
This node has zero inputs and one conditioning output, and it looks like a placeholder until you read the source. It isn't broken - it's a constant, inlined so you don't have to carry 800MB of tensors around.
Lotus is a family of fast depth- and normal-estimation models (from the "Lotus depth and normal" research line) that ComfyUI folds into its pose and geometry pipelines. Those pipelines run a single diffusion step with a fixed, frozen text encoder, and the encoding never changes between runs. So instead of shipping the whole encoder and running inference, the ComfyUI devs computed the result once and baked the numbers straight into the node. LotusConditioning is that baked result: a fixed "null" conditioning embedding, ready to hand to a sampler.
What you actually use it for
You'll meet this node in two places. The first is inside SDPose keypoint extraction - the node itself calls LotusConditioning to get the context embedding for its one-step denoising pass that finds pose keypoints. You don't wire it up yourself there; it's just how the machinery works.
The second is in depth/normal conditioning workflows built on the Lotus line. Because Lotus-style estimators condition their diffusion step on a frozen text encoder, workflows that feed a Lotus-derived depth or normal map into a ControlNet-style setup need that same fixed conditioning as the context - and this node hands it to you without any model files.
Its one output, conditioning, plugs in wherever the workflow's context is expected. No settings to mis-set, no model to download, nothing to get wrong. If you see one in a workflow and wonder what it does, that's the whole answer: it's a saved constant so you never have to run a text encoder that would produce the same tensor every time anyway.
Gotchas
- Don't replace it with CLIPTextEncode. The embedding here is specifically the Lotus encoder's null conditioning, not a generic empty prompt. Substituting a CLIP encode (or an empty text string) changes the result - the shape and the values are the ones the Lotus family was trained against.
- No VRAM cost, no files. That's the entire point. If a tutorial tells you to download a Lotus text encoder, they're describing the standalone research repo, not the ComfyUI core path.
- It's a niche node. Unless you're building depth/normal pipelines or dissecting SDPose, you'll probably never touch it - it exists to make other nodes work, not to be a headline feature.
ComfyUI core ships it; there's nothing to install. It landed as part of the core pose/depth tooling rather than as a user-facing feature, which is exactly why the no-input, no-configuration shape makes sense. Treat it like a battery in a flashlight - invisible, always the same, and the thing that makes the rest run.
Inputs (0)
No inputs
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |