Nodes/comfyui-AGSoft/🛠AGSoft KSampler Options
ComfyUI Node

🛠AGSoft KSampler Options

The node that tells you what your sweep actually ran

By Art-xmaster·Created about a year ago·Updated about 15 hours ago· 27
🛠AGSoft KSampler Options
  • 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 on
  • params_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.

CategoryAGSoft/🧩KSampler

Inputs (1)

NameTypeDefaultDescription
optionsKSAMPLER_OPTIONSOptions output of AGSoft KSampler. Выход options ноды AGSoft KSampler.

Outputs (13)

NameTypeDescription
seedINT
stepsINT
cfgFLOAT
denoiseFLOAT
samplerSTRING
schedulerSTRING
seed_strSTRING
steps_strSTRING
cfg_strSTRING
denoise_strSTRING
sampler_strSTRING
scheduler_strSTRING
params_listSTRING