Nodes/MTB Nodes/Floats To Float (mtb)
ComfyUI Node Runs on cloud

Floats To Float (mtb)

A socket-type hack for a typo the ecosystem never fixed

By melMass·Created 3 years ago·Updated about a month ago· 723
Floats To Float (mtb)
  • floats
  • float

The node's own description is refreshingly honest about why it exists: "AD, IPA, Fitz etc have commonly [chosen] to mistype float lists as FLOAT. This is just a hack to be compatible with these." Translation - AnimateDiff, IPAdapter, and FizzNodes each shipped inputs that are actually a list of floats but are typed in ComfyUI's graph as a plain FLOAT socket instead of the proper FLOATS list type. That inconsistency is baked into those packs now and nobody's going back to fix it, so melMass built this node as a bridge: it takes a real FLOATS list and relabels it as a FLOAT socket so it'll actually connect to those inputs.

Why this matters to you

You'll hit this the moment you try to wire a genuine list of floats - say, from a scheduling node, a batch of per-frame weights, or another mtb utility - into an input on AnimateDiff, IPAdapter, or FizzNodes that ComfyUI insists is typed FLOAT. The connection will refuse to snap because the socket types don't match on paper, even though the receiving node is going to treat the data as a list at runtime anyway. This node exists purely to get past that type-checking mismatch.

Inputs and outputs

There's exactly one input and one output, no settings to configure:

  • floats - a FLOATS list, the real thing.
  • Output: float - the same data, now typed as a plain FLOAT so it'll plug into the mistyped sockets that expect that.

That's it. No transformation happens to the actual values - this is a type-system workaround, not a math operation.

Installing it

  • ComfyUI Manager - search "MTB Nodes", install, restart.
  • Manual - cd ComfyUI/custom_nodes && git clone https://github.com/melMass/comfy_mtb, restart. If you cloned manually rather than through Manager, run pip install -r requirements.txt inside the comfy_mtb folder first.

No models, no heavy dependencies - it's a couple lines of Python doing a type relabel.

Common issues & troubleshooting

You still can't connect the wire. Make sure you're going in the right direction. This node converts FLOATSFLOAT, matching the direction those mistyped AD/IPA/FizzNodes inputs need. If you actually need the opposite - turning a real FLOAT output into something that looks like a FLOATS list - that's a different node in this same pack, Float To Floats (mtb), not this one.

The downstream node errors even after connecting. The type relabel doesn't validate that your data is shaped the way the receiving node expects - if AnimateDiff wants exactly one float per frame and you feed it a list of the wrong length, this node won't catch that mismatch; it just gets the wire to connect. The runtime error you'll see is coming from whatever node is actually consuming the values, not from this one.

A handful of mtb's other nodes fail to load at startup. Normal for this pack - check the console for [comfy_mtb] STATUS and http://127.0.0.1:8188/mtb for specifics. Floats To Float has no optional dependencies, so it's essentially never the node that's missing.

Categorymtb/utils

Inputs (1)

NameTypeDefaultDescription
floatsFLOATS

Outputs (1)

NameTypeDescription
floatFLOAT