Nodes/HALO Debug Pack/HALO Conditioning Debug
ComfyUI Node

HALO Conditioning Debug

Your prompt encoded to garbage? This node proves it in the terminal

By bkpaine1·Created 7 months ago·Updated 7 months ago· 3
HALO Conditioning Debug
  • conditioning
  • CONDITIONING

When your image comes out black or full of static on an AMD card, the fight isn't "which node is broken" - it's "where did the numbers go bad." Conditioning is the text encoder's output: the compressed instructions the sampler actually follows. HALO Conditioning Debug is a pass-through node that reads those numbers out loud so you can tell whether your prompt is healthy or poisoned with NaN.

You'd normally never see this. CLIP Text Encode hands a conditioning tensor to the sampler and that's the whole story. This node parks itself between them, dumps what's inside to the ComfyUI console, and hands the conditioning along untouched. If the text encoder silently produced garbage, this is the node that catches it red-handed.

How it works

The node loops over every entry in the conditioning list and prints dtype, shape, min, max, and mean for each. Then it runs the checks that matter:

  • NaN values → prints TEXT ENCODER is outputting garbage!
  • Inf values → same treatment
  • Otherwise → ✓ Conditioning looks valid

That's the entire job. It's a diagnostic, not a fix - it changes nothing, which is exactly what you want from a probe.

Inputs and outputs

One required input, one output:

  • conditioning (CONDITIONING) - wire this from any CLIP Text Encode (or conditioning combiner).
  • Output: CONDITIONING, same data, passed through.

Wire it as: CLIPTextEncode → HALO Conditioning Debug → sampler's positive/negative conditioning input. Since it's a pass-through, adding it mid-workflow can't change your result.

Installation

Part of the HALO Debug Pack, so you get all five nodes at once. ComfyUI Manager → search "HALO Debug Pack", or:

cd ComfyUI/custom_nodes
git clone https://github.com/bkpaine1/halo_pack

Then restart ComfyUI. No requirements.txt, no model downloads, nothing to configure - the whole pack is a single __init__.py, so there's no dependency hell to worry about.

Where people get burned

  • The output is in your terminal, not the UI. This is the #1 beginner trap. Launch ComfyUI from a terminal, run the workflow, and the diagnostic prints to that console window. The frontend will show nothing.
  • NaN here is upstream of everything. If conditioning is garbage, the text encoder is the problem - the pack's FP32 VAE nodes cannot fix this, because the damage is already baked into the conditioning before sampling even starts. The README's own advice applies: try the --force-fp32 launch flag or a different model.
  • It always prints. There's no enable toggle, so don't leave it in workflows you share; you'll just be spamming someone's console.

The honest take: for a pack with essentially zero community traction, this is quietly the most useful node in it, because conditioning is the one thing people never inspect. When you're staring at a black image wondering where it all went wrong, a single console line telling you the text encoder is fine or isn't is worth more than an hour of guessing.

CategoryHALO

Inputs (1)

NameTypeDefaultDescription
conditioningCONDITIONING

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING