FLOAT To Any π½
Cast a float to ANY β the two-second fix for stubborn sockets
- any
Sometimes the only thing standing between you and a working connection is a type label. You've got a FLOAT - a CFG value, a denoise strength, a seed multiplier - and the socket you want to feed is typed * (any) and won't accept it. This node takes your float, passes it through value-for-value identical, and outputs it as any. No rounding, no conversion to string, no surprises.
It's one of the generated converters in the ComfyUI Telegram Suite pack, and it behaves identically to the pack's other XToAny nodes for INT, STRING, DICT, MODEL, CLIP, VAE, IMAGE, AUDIO, and LATENT.
Why it exists
The converters are a side effect of the pack's trigger mechanism. To enforce execution order, the suite's nodes expose a trigger input/output that accepts any type - and before version 1.0.4 you had to cast your signal to ANY before feeding it, then cast it back. The README literally points at the size of the converter category as the evidence of how clunky that was.
1.0.4 removed the need: typed signals now feed directly into trigger inputs, and the changelog says the XToAny nodes remain for backward compatibility. So for a new graph they're mostly optional. The legitimate remaining use is a third-party node with a true * input that won't take a typed FLOAT output - ComfyUI does not coerce types across sockets, and this is the minimal cast.
How it works
A bare pass-through:
def convert(self, FLOAT):
return (FLOAT,)
The FLOAT input is a forceInput socket - wire a number in rather than setting a widget - and the output is any of type *. Same value in and out; only the declared type changes.
Inputs and outputs
FLOAT(required) - the number to pass through.any(output, type*) - the same float, typed as any.
Installation
Pack-wide:
cd ComfyUI/custom_nodes
git clone https://github.com/SwissCore92/comfyui-telegram-suite.git
cd comfyui-telegram-suite
pip install -r requirements.txt
or install "ComfyUI Telegram Suite" via ComfyUI Manager and restart.
Notes
Before you drop one of these in, check whether the target socket actually accepts FLOAT natively - plenty of *-typed inputs are implemented permissively and take any value. Only add the cast when the connection genuinely refuses to snap. And if you're seeing these nodes inside a legacy workflow's trigger chain, leave them be; they still work, they're just redundant.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| FLOAT | FLOAT | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| any | * | β |