Nodes/ComfyUI-fal-Connector/Float Input (fal)
ComfyUI Node

Float Input (fal)

Exposing a decimal knob (CFG, denoise, strength) as an API field

By badayvedat·Created 2 years ago·Updated 5 months ago· 56
Float Input (fal)
    • FLOAT
    namefloat_input
    number0.00
    min-2147483648.00
    max2147483648.00
    step0.10

    This is the decimal-number knob of the fal connector pack. It emits a single FLOAT, and - same as its String, Boolean, and Integer siblings - its job is to become a named parameter in your workflow's API once the graph runs on fal.ai. The difference from the others is that a float has natural bounds, so this node lets you declare them: alongside the name and the value, you get min, max, and step. Locally it's just a number that outputs a number. Through fal, it's the labeled, range-limited slider your API exposes.

    It's part of the ComfyUI-fal-Connector, fal's bridge for running a ComfyUI workflow on their serverless GPUs. Build the graph, "Save as fal format," POST it to fal.run/fal-ai/comfy-server, and each Float Input becomes an overridable numeric field - {"cfg": 6.5} in, result out.

    What you'd wire it to

    Floats are the continuous dials of a diffusion graph: CFG scale, denoise strength on a KSampler, LoRA strength, ControlNet weight, IPAdapter weight. Any of those you want a caller to tune per request gets a Float Input. Give it a clear name (cfg, denoise), a sane default, and bounds that keep callers out of nonsense territory - a CFG field capped at, say, 215 stops someone sending 500 and getting a fried image and a support question.

    The inputs that matter

    Five required inputs, but only a couple you'll fuss over:

    • name - the API parameter key. Default float_input; rename it to the thing it controls.
    • number - the value itself, and the default when a caller sends nothing. Defaults to 0.
    • min / max - the allowed range. The out-of-the-box defaults are enormous (roughly ±2.1 billion), i.e. effectively unbounded, which is fine for a raw pass-through but sloppy for a public API. Tighten them to the parameter's real range.
    • step - the increment for the slider widget, default 0.1. Purely how granularly the value ticks; drop it to 0.01 when you need finer control (LoRA strength, denoise), leave it at 0.1 for coarse dials like CFG.

    The single output is a FLOAT. Wire it into any float input - a sampler's cfg/denoise, a LoRA loader's strength, a ControlNet Apply's weight. It's an ordinary float wire from there.

    Installing it

    The connector ships with fal's bundle, per the README:

    git clone --recursive https://github.com/badayvedat/ComfyUI-fal.git
    cd ComfyUI-fal
    pip install -r requirements.txt
    

    Add your fal API key to fal-config.ini (optional Hugging Face token too). The README flags the path: the file belongs in ComfyUI-fal/custom_nodes/ComfyUI-fal-Connector/, not the repo root. Launch with main.py.

    Just want the node in an existing ComfyUI? ComfyUI Manager → search ComfyUI-fal-Connector, or cd ComfyUI/custom_nodes && git clone https://github.com/badayvedat/ComfyUI-fal-Connector, then restart. No model files, no heavy deps.

    Where people get burned

    The classic float mistake is a step and min/max that fight the value you want - set step to 1 and you can't dial 0.75 on the widget; leave min at 0 when the parameter legitimately wants negatives and you've locked yourself out. Match the bounds and step to the actual knob. Beyond that it's the pack-wide caveat: with no fal-config.ini and no fal-ai/comfy-server target, the "API parameter" magic isn't present - locally this is just a number node, and the name/min/max only take on meaning inside fal's pipeline. Auth failures on remote runs almost always trace back to the config file's location or a missing key, not the node.

    Categorysd

    Inputs (5)

    NameTypeDefaultDescription
    nameSTRINGfloat_input
    numberFLOAT0.00
    minFLOAT-2147483648.00
    maxFLOAT2147483648.00
    stepFLOAT0.10

    Outputs (1)

    NameTypeDescription
    FLOATFLOAT