Nodes/ComfyUI-Hypnodes/Hypnodes Converter
ComfyUI Node

Hypnodes Converter

The exit ramp that unpacks the hn_config bus into plain ComfyUI types

By hypnichorse·Created 3 months ago·Updated 16 days ago· 0
Hypnodes Converter
  • hn_config
  • pos_string
  • neg_string
  • width
  • height
  • cfg
  • ckpt_name
  • steps
  • seed

Let's get the naming out of the way, because it'll confuse you: the node class is HN_GlobalConditioner, but it displays as Hypnodes Converter, and it does neither. It doesn't condition anything and it doesn't convert image formats. What it actually does is unpack the hn_config bus into eight ordinary ComfyUI outputs so standard nodes - samplers, loaders, latent creators - can read the Hub's values. The README calls it the "Exit Ramp," which is the right mental model.

Why it exists

The hn_config bus is a walled garden. Hypnodes nodes speak it natively, but a stock KSampler has no idea what HN_CONFIG is. Without this node, using the Hub's seed, steps, and CFG to drive anything outside the pack means manually re-typing those numbers everywhere. The Converter is the bridge: feed it the bus and it hands you plain types.

What you get out

One input (hn_config), eight outputs:

  • pos_string (STRING) - the global positive prompt.
  • neg_string (STRING) - the global negative prompt.
  • width / height (INT) - parsed from the Hub's resolution preset. Wire into an Empty Latent to match the Hub's chosen aspect ratio exactly.
  • cfg (FLOAT) - the guidance scale, for a KSampler or guider.
  • ckpt_name (*) - the checkpoint name, typed as a wildcard so it can feed a CheckpointLoader or be passed through.
  • steps (INT) - the Hub's step count.
  • seed (INT) - the Hub's seed, for a KSampler or any node that wants one.

That's the whole play: unpack the bus and route the values to the sampler, the loader, and the latent creator so your whole graph stays in sync off a single source of truth.

The honest caveat

The * on ckpt_name is both a feature and a warning sign. It means the output type is "anything," which ComfyUI resolves at runtime - handy for flexibility, but it won't catch a wiring mistake the way a strict STRING type would. Also note that width/height come out as separate INTs; if you're on a workflow that expects a combined resolution, you'll want to multiply or pass both into a node that wants them separately.

The other thing to know: this node is the "interoperability" layer, so it only makes sense as a companion to the Control Hub. If you're not using the Hub, there's nothing to unpack.

Install

ComfyUI Manager (search Hypnodes) or:

cd ComfyUI/custom_nodes
git clone https://github.com/hypnichorse/ComfyUI-Hypnodes

Restart ComfyUI. No model downloads; the pack's only dependencies are numpy and pillow, which ComfyUI already ships.

CategoryHypnodes

Inputs (1)

NameTypeDefaultDescription
hn_configHN_CONFIG

Outputs (8)

NameTypeDescription
pos_stringSTRING
neg_stringSTRING
widthINT
heightINT
cfgFLOAT
ckpt_name*
stepsINT
seedINT