Nodes/ComfyUI-CitronNodes/Float Literal (Citron Image Saver)
ComfyUI Node

Float Literal (Citron Image Saver)

A decimal on a wire, with one sharp edge at the bottom of the range

By citronlegacy·Created about a year ago·Updated 22 days ago· 0
Float Literal (Citron Image Saver)
    • FLOAT
    ◄float1.00►

    Denoise, LoRA strength, IP-Adapter weight, ControlNet strength, CFG-plus-something - every workflow accumulates floats that two different nodes need to agree on. Float Literal is the generic one of those: a decimal box with a FLOAT output, default 1, step 0.01.

    The pack already has a CFG-specific float and a seed generator; this is the one for everything else. Its declared range is the whole floating-point spectrum - the tooltip says from 2.2250738585072014e-308 to 1.7976931348623157e+308, step 0.01 - which is a nice way of saying "no meaningful limit".

    How it works

    One required input, float. One output, FLOAT, carrying it untouched. That's the mechanism; the value is in the fan-out.

    Typical wiring: one value into the KSampler's denoise (converted to an input) and into the save node's denoise, so a 0.45 img2img pass doesn't get recorded as 1.0. Or one value into three LoRA loader strength fields, so a style stack that's tuned as a unit can't drift out of sync. Or an IP-Adapter weight you're sweeping, going to the adapter and into the filename via a template variable.

    Now the sharp edge. The minimum on that range isn't 0 - it's the smallest positive double, a hair above zero. In practice the widget won't let you type a negative number, and it won't let you reach exactly 0 either. For most float uses that's invisible. For the ones it isn't, it's annoying: negative LoRA weights (subtracting a concept, the "anti-style" trick) can't be dialled in here, and a strict 0 denoise isn't reachable. If you need negatives, convert the target widget to an input and feed it from a node with a signed range - this pack's Input Parameters covers denoise 0–1 with a proper zero, and other packs' primitives handle signed floats.

    Second thing to know: floats in ComfyUI are widget values with a step. 0.01 is fine granularity for almost everything, but that's the increment the box moves in - if a model card tells you 0.0005 for something exotic, check what actually validates rather than trusting the typed digits.

    The honest assessment: this node exists so the pack has a complete set of literals, and it's the least essential of them. ComfyUI's PrimitiveFloat does the same thing and is already installed. The reason to use this one anyway is consistency - if you're building a parameter block out of Citron literals and selectors for a save-metadata workflow, keeping the whole block in one family means one less thing to explain on a shared canvas. It won't make your images better.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/citronlegacy/ComfyUI-CitronNodes
    # restart ComfyUI
    

    ComfyUI Manager support isn't dependable yet - the README says "coming soon", the repo metadata is placeholder - so clone it. piexif is the pack's only pip dependency; a missing copy means the pack doesn't import at all:

    pip install piexif
    

    No models needed. Under Citron_ImageSaver/utils.

    Common issues

    • Can't enter a negative value. Expected - the floor is just above zero. Use a signed source instead.
    • Value doesn't reach the target node. The target's widget wasn't converted to an input, so the widget value still wins.
    • Denoise of 0 isn't possible. Same floor problem; wire denoise from Input Parameters if you need a true zero.
    • Metadata's denoise says 1.0. Nothing is wired into the saver's denoise input - that's its default, not a reflection of your run.
    CategoryCitron_ImageSaver/utils

    Inputs (1)

    NameTypeDefaultDescription
    floatFLOAT1.00floating point number

    Outputs (1)

    NameTypeDescription
    FLOATFLOATfloat (FLOAT)