Nodes/comfy-deploy/External Float (ComfyDeploy)
ComfyUI Node

External Float (ComfyDeploy)

A float that arrives over the wire (and quietly becomes 0.0 when it doesn't)

By ihmily·Created 11 months ago·Updated 3 months ago· 3
External Float (ComfyDeploy)
    • float
    param_nameinput_float
    default_value0.00
    display_name
    description

    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, step 0.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.

    Categorycomfy-deploy/Number

    Inputs (4)

    NameTypeDefaultDescription
    param_nameSTRINGinput_float
    default_valueoptFLOAT0.00-3.402823e+38–3.402823e+38
    display_nameoptSTRING
    descriptionoptSTRING

    Outputs (1)

    NameTypeDescription
    floatFLOAT