🛠AGSoft KSampler Options
The node that tells you what your sweep actually ran
- options
- seed
- steps
- cfg
- denoise
- sampler
- scheduler
- seed_str
- steps_str
- cfg_str
- denoise_str
- sampler_str
- scheduler_str
- params_list
🛠AGSoft KSampler Options is the least glamorous node in this batch of seven, and it's the one that saves you from a folder of PNGs you can no longer interpret. It takes the options blob that 🧩AGSoft KSampler hands out after a run and unpacks it into ordinary values you can put in a filename, a text node, or a metadata field.
Why it exists
AGSoft KSampler's fourth output is options - "actual sampling parameters of the last run," overrides included. That's the point: the KSampler may have had its steps, cfg, sampler or scheduler rewritten on the fly by options_single, options_dual or options_lora, so the numbers you can read off the KSampler's own widgets are not necessarily the numbers that produced the image. This node reads the object that did run.
It's also a textbook case of the plumbing layer: it touches no pixels, it just breaks a bundle into individual wires so one value can feed several consumers without you retyping it. Same idea as ComfyUI's primitive nodes, one level up.
How it works
The options input is typed KSAMPLER_OPTIONS and arrives as a plain dict. The node reads six keys with defaults and emits them twice - once raw, once formatted:
seed,steps(INT),cfg,denoise(FLOAT),sampler,scheduler(STRING)seed_str,steps_str,cfg_str,denoise_str,sampler_str,scheduler_str- each exactly"seed = 12345","cfg = 4.5"and so onparams_list- all six joined with newlines, in the order seed, steps, cfg, sampler, scheduler, denoise
That last one is the one you'll wire most: it's the caption block for a batch, so it drops straight into a Save Image Plus filename prefix, a text overlay, or 📝AGSoft Show Text when you just want to see it. Note the order of params_list isn't the order of the output sockets - read the list, don't assume it.
Wiring it
There's exactly one input, options, and it comes from AGSoft KSampler's options output. The 13 outputs fan out to whatever you want logged. The natural pair is current_str (from the options node feeding the sampler) for per-image labels and params_list from here for the shared settings.
Install
Nothing special - this module imports comfy.samplers, folder_paths and torch, all of which are already there:
cd ComfyUI/custom_nodes
git clone https://github.com/Art-xmaster/comfyui-AGSoft
# restart ComfyUI
Manager users: search comfyui-AGSoft. If you installed the pack for something else and this node is missing from the menu, the cause is upstream of it - the pack's loader skips any module that fails to import and logs the reason to the console.
The traps
A series gives you one run's parameters, not a log. When AGSoft KSampler gets a list of overrides it loops internally and returns the options of the last item. So after a 20-item sweep this node reports item 20's steps and sampler, not twenty rows. For per-item text you want current_str off the options node or a Contact Sheet caption. Use this node for the repeated stuff.
Empty in, zeros out. The reads are all options.get(key, default), so an empty dict yields seed = 0, cfg = 0.0, denoise = 1.0 and blank sampler/scheduler strings. That's the normal result when the upstream node has nothing to say - options_lora with lora_name set to __none__, or a current-mode options node whose only row is empty - so don't read a zero as "the sampler ran at cfg 0".
scheduler says manual sigmas when you fed it sigmas. That is deliberate in the KSampler, not a bug in this node: when a SIGMAS wire is connected, steps/scheduler are bypassed and the reported step count becomes len(sigmas) - 1, with denoise reported as the first sigma value. If you're logging sweeps that mix schedulers and custom sigmas, expect that string.
It can't change anything. This is a read-only unpacker. If you want to force parameters rather than observe them, feed a primitive or an options node into the sampler's options input - this node is the other end of that wire.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| options | KSAMPLER_OPTIONS | Options output of AGSoft KSampler. Выход options ноды AGSoft KSampler. |
Outputs (13)
| Name | Type | Description |
|---|---|---|
| seed | INT | — |
| steps | INT | — |
| cfg | FLOAT | — |
| denoise | FLOAT | — |
| sampler | STRING | — |
| scheduler | STRING | — |
| seed_str | STRING | — |
| steps_str | STRING | — |
| cfg_str | STRING | — |
| denoise_str | STRING | — |
| sampler_str | STRING | — |
| scheduler_str | STRING | — |
| params_list | STRING | — |