External Float (ComfyDeploy)
A float that arrives over the wire (and quietly becomes 0.0 when it doesn't)
- float
External Float (ComfyDeploy) is how you let an outside app set a decimal parameter in a deployed workflow. Denoise strength, CFG, ControlNet strength, a LoRA weight, an upscale factor - anything in your graph that takes a float and should be tweakable per API call gets one of these. In the ihmily/comfy-deploy pack, it's the decimal sibling of External Integer and External Text: same idea, different type.
As with every node in this pack, the value only becomes "external" after you deploy. The pack has two halves - the nodes in ComfyUI plus a self-hosted admin backend (comfy-deploy-admin) that manages and publishes deployed workflows. In the editor, this node just emits its default_value, so you build and test the workflow with fixed numbers. Once it's deployed, an API request containing your param_name key supplies the real value, and the admin injects it before the graph runs.
How it works
Peek at nodes/comfydeploy_external_float.py and the whole mechanism is a type coercion:
try:
return_value = float(default_value)
except ValueError:
return_value = 0.0
That's it. The node hands back whatever float it was given. The deployment pipeline is what turns the node's param_name into the request key. Set param_name to "denoise_strength", and a caller posting {"denoise_strength": 0.75} changes that value at runtime.
Inputs and outputs that matter
- param_name (required, default
"input_float") - the JSON key callers send. This is your API contract; pick it once and don't rename it later or every deployed version breaks. - default_value (optional, default
0, step0.01) - the fallback when a call omits the parameter, and your local-testing value. The step of 0.01 is just widget ergonomics; values from the API aren't snapped to it.
The output is float (FLOAT), which feeds sampler settings, model loaders, IPAdapter strengths - any float input in your graph.
Installing it
Same as the rest of the pack: ComfyUI Manager → search "comfy-deploy" (author ihmily) → install → restart, or clone it by hand:
cd ComfyUI/custom_nodes/
git clone https://github.com/ihmily/comfy-deploy.git
cd comfy-deploy
pip install -r requirements.txt
No model files. The README is explicit about the one gate that bites: pack v1.0.1+ needs ComfyUI 0.3.67 or newer. If the node doesn't show up in your node list, that's the first thing to check. Then remember the second half of the system - you need the comfy-deploy-admin backend running and its endpoint + API key configured in the ComfyDeploy panel before anything you deploy becomes callable.
The trap: 0.0 is a silent disaster
Notice what that coercion does on failure - it returns 0.0, not an error. If your API passes a garbage value (a string, null, a typo), the node quietly substitutes zero. For a denoise strength that means "pure noise" output; for a CFG it means a degenerate result. Mitigate by setting a sane default_value and validating the float on the caller's side, because this node will not save you. It's the price of a node this simple, and worth knowing before you wire it into something expensive to run.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| param_name | STRING | input_float | — |
| default_valueopt | FLOAT | 0.00-3.402823e+38–3.402823e+38 | — |
| display_nameopt | STRING | — | |
| descriptionopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| float | FLOAT | — |