AK XZ Range Float
Sweep cfg and denoise like you mean it
- range
- xz_config
AK XZ Range Float is the float-flavored sibling of AK XZ Range Int from the ComfyUI-AK-XZ-Axis pack. Same idea, decimals instead of integers: it generates a list of float values, feeds them one at a time to a KSampler widget, and labels the results. Its two preset types are exactly the two float parameters every SD/SDXL workflow obsesses over - Cfg and Denoise.
What it's for
CFG sweeps are the classic use. Every model family has a sweet spot, and it's not always the default: roughly 5–9 on SD 1.5 and SDXL, 4–6 on Pony and Illustrious, and around 1 on anything guidance-distilled (Turbo/Lightning checkpoints and the like - at CFG 1 ComfyUI skips the negative pass entirely). If you've just swapped checkpoints, a labeled cfg strip from 4 to 9 tells you in one run where your new model actually wants to live instead of trusting a guess.
Denoise is the img2img dial - how much of the input image gets destroyed and regenerated. It matters for refinements, inpainting-adjacent passes, and any "2.5D" relight work. It's also the parameter where tiny changes matter, which is exactly what a float range is for.
How it works
Set type to Cfg or Denoise, pick start and end, and the node builds a list of floats from start to end. Wire range (a FLOAT list) into the KSampler's cfg or denoise widget and it runs once per value. The xz_steps input controls how many intermediate values you get between the endpoints - and yes, unlike the int node, both endpoints are always included and values are rounded to the 0.05 step the field enforces, so you won't get junk like 4.33333 in your cfg.
Same X/Z split as the rest of the pack:
- X mode (
xz_configleft unconnected):xz_stepsis the count.start=4, end=9, xz_steps=6→[4.0, 5.0, 6.0, 7.0, 8.0, 9.0]. Six runs, each labeled. - Z mode (
xz_configconnected): the node matches one float per image slot in the existing config, letting denoise ride along as a second varying parameter under a cfg sweep (or vice versa).
The outputs
range(FLOAT list) → the KSamplercfgordenoisewidget.xz_config(STRING) → AK XZ Axis Plot so every image comes back labeled with its value, or into the next Range/Batch node if you're stacking.
That second hop is the nice part of this pack's design: the config string is how one sweep knows it's inside another, so combining "cfg across the top, denoise down the side" is just chaining nodes, not writing code.
Install
ComfyUI Manager → search AK XZ → install, or the usual:
cd ComfyUI/custom_nodes
git clone https://github.com/akawana/ComfyUI-AK-XZ-Axis.git
Restart ComfyUI. No requirements to pip, no models to download - it's pure Python on ComfyUI's own torch/PIL. The repo ships xz_workflow_cfg.json, xz_workflow_denoise.json, and a combined xz_workflow_cfg_and_seed.json in /workflows/ so you can see both axes stacked in one graph.
Gotchas worth knowing
The node labels its output as the raw numbers ("Cfg: 6.00"), so when you're reading the plot, remember the value that produced the image, not the one you wish you'd used. Also bear in mind this is a young, lightly-trafficked pack (December 2025 release, small community footprint) - the README and demo workflows are the documentation. And one more honest note: with guidance-distilled checkpoints, sweeping cfg below ~2 is often a waste of VRAM because the model was trained to sit at 1; spend your sweep budget where the model can actually move.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| type | COMBO | Cfg | 2 options: Cfg, Denoise |
| start | FLOAT | 0.00 | — |
| end | FLOAT | 0.05 | — |
| xz_steps | INT | 1 | — |
| xz_configopt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| range | FLOAT | — |
| xz_config | STRING | — |