Nodes/ComfyUI Easy Use/XY Inputs: CFG Scale //EasyUse
ComfyUI Node Runs on cloud

XY Inputs: CFG Scale //EasyUse

CFG Scale — grid-search your CFG value instead of guessing

By yolain·Created 3 years ago·Updated 12 days ago· 2,647
XY Inputs: CFG Scale //EasyUse
    • X or Y
    batch_count3
    first_cfg7.00
    last_cfg9.00

    A1111 users had X/Y/Z Plot to sweep a setting across a grid of images and eyeball the differences side by side - it's one of the extension-era features people still say ComfyUI does worse. easy XYInputs: CFG Scale is Easy-Use's answer for one specific axis: it generates an evenly spaced range of CFG values and hands them off as one axis of a comparison grid, instead of you manually re-running the same prompt five times and swapping the number by hand.

    Why you'd reach for it

    CFG is the single most argued-about slider in the whole stack, and the right value depends entirely on what you're running: 5-9 is the sweet spot on SD 1.5 and SDXL, 4-6 on Pony and Illustrious, and roughly 1 on anything distilled - Flux, Z-Image Turbo, Krea 2 Turbo and their kin, where the guidance is already baked in and a carried-over 7 just burns the image. Rather than trusting a rule of thumb, wire this node in and generate the actual range on your actual prompt and seed. It's also the fastest way to see the failure modes for yourself: too low and the prompt gets ignored, too high and you get the oversaturated, deep-fried look CFG is famous for above roughly 12.

    How it works

    This node doesn't render anything itself - it just computes a list of CFG values and packages them, tagged as the "CFG Scale" axis, for the pack's easy XY Plot Advanced node to consume. Give it a start value, an end value, and how many steps you want, and it linearly interpolates between the two. Wire its output into the X or Y input of easy XY Plot Advanced (alongside a pipe from your loader), and the plot node runs your workflow once per value, laying the results out as a labeled grid.

    The inputs and outputs that matter

    • batch_count (default 3) - how many CFG values to generate, evenly spaced between your two endpoints. Set to 1 for a single value, higher for a finer sweep - each one is a full generation, so treat this as a multiplier on render time.
    • first_cfg / last_cfg (default 7 → 9) - the range endpoints. The defaults assume an SD 1.5/SDXL-style checkpoint; on a distilled model you'd want a much tighter range hugging 1 (say 0.8 to 2) rather than the wide default, since anything much above 3 tends to burn on those.

    The single output is X or Y - plug it into whichever axis you want on easy XY Plot Advanced.

    How to install it

    ComfyUI Manager: search ComfyUI Easy Use, install, restart. Or by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/yolain/ComfyUI-Easy-Use
    

    Windows: double-click install.bat. Linux/Mac: pip install -r requirements.txt. Restart ComfyUI. No models, no extra dependencies - this node is pure arithmetic feeding a plot.

    Common issues & troubleshooting

    The node this feeds, easy XY Plot Advanced, needs a pipe input as well as your X/Y - if you only wire this node's output and forget the pipe, the plot has nothing to actually run against. Make sure a loader's pipe output is connected too.

    Second, know what you're sweeping before you burn GPU time on it: if your checkpoint is guidance-distilled (Flux Dev, Z-Image Turbo, Krea 2 Turbo, any Lightning/Turbo/Hyper variant), the useful range is tight and close to 1 - a sweep from 5 to 9 will just show you five flavors of burned. Conversely, running a narrow 1-to-2 sweep on a plain SDXL checkpoint will mostly look identical, because that model wants real guidance to do anything. Match the range to the architecture, not the node's defaults.

    And a general grid-search caveat worth carrying over: a single sweep on one seed tells you what happened on that seed, not what's reliably better - the standing objection from anyone who's actually run these comparisons is to generate more than one image per value before concluding a difference is real rather than luck.

    CategoryEasyUse/XY Inputs

    Inputs (3)

    NameTypeDefaultDescription
    batch_countINT30–50
    first_cfgFLOAT7.000–100
    last_cfgFLOAT9.000–100

    Outputs (1)

    NameTypeDescription
    X or YX_Y