Nodes/ComfyUI-Info-Prompt-Toolkit/Split Sampler Params
ComfyUI Node

Split Sampler Params

Unpack the sampler bundle when something wants the settings loose

By kinorax·Created 5 months ago·Updated about a month ago· 2
Split Sampler Params
  • sampler_params
  • sampler
  • scheduler
  • steps
  • denoise
  • seed
  • cfg

Split Sampler Params is the unwrap side of this pack's sampler bundle. Sampler Params bundles six settings into one sampler_params value; this node takes a bundle and hands the six values back out on separate wires - sampler, scheduler, steps, denoise, seed, cfg.

It exists because the bundle is convenient for transport but inconvenient for interop. A bundle flows cleanly from Sampler Params into SamplerCustom (Sampler Params), which is exactly where it belongs. But the moment you need a single value from it - say, the steps, to feed into a schedule-plot node, or the cfg, to compare across passes - you can't reach inside a bundle with a wire. This node is the reach-in.

What you get out

  • sampler (Any) - the sampler name, ready for a KSamplerSelect or any sampler-name socket.
  • scheduler (Any) - the scheduler name, ready for BasicScheduler.
  • steps (INT), denoise (FLOAT), seed (INT), cfg (FLOAT) - the typed numeric values, directly usable by anything that expects those types.

You don't have to use all six outputs. This is a one-way splitter - take the sampler to one place, the steps to another, ignore the rest. That's the flexibility a bundle takes away and this node gives back.

It's also worth knowing it's lenient: it can split a bundle even if some fields are missing (the require_all=False behavior), so it won't blow up on a partially-populated bundle - missing values come out as whatever the bundle holds, including empty.

The shape of the workflow

The natural pattern is bundle → split, and it shows up in two places. First, hybrid graphs: you keep the bundle for the pack's own sampler, but split off a value for a node that won't accept the bundle type (a plot axis, a text display, a comparison node). Second, as the "loosen it" step before a hand-wired core sampler - bundle once, split into the six sockets of a stock KSampler, and you've made vanilla ComfyUI obey a single configuration point. If you find yourself wanting override behavior on top of splitting (base bundle + change one field + split), Sampler Params Context does both halves in one node.

Install

Standard pack install:

cd ComfyUI/custom_nodes
git clone https://github.com/kinorax/comfyui-info-prompt-toolkit.git
cd comfyui-info-prompt-toolkit
pip install -r requirements.txt

Or ComfyUI Manager → search "ComfyUI-Info-Prompt-Toolkit" → install → restart. No models, no extra dependencies.

Where people get burned

The temptation is to build the bundle and re-enter values downstream from it, creating two sources of truth for the same settings. If you split a bundle and then hand-wire different values into a sampler, the split is meaningless - the bundle didn't change, you just stopped listening to it. Decide which path is authoritative (the bundle, ideally) and let the split outputs be read-only views of it. Also: this node splits; it doesn't validate against your model. If the bundle says dpmpp_2m + karras and your flow-matching model hates karras, the split will happily hand those wrong values on.

CategoryInfo-Prompt-Toolkit/ImageInfo

Inputs (1)

NameTypeDefaultDescription
sampler_paramsIPT-SamplerParams

Outputs (6)

NameTypeDescription
sampler*
scheduler*
stepsINT
denoiseFLOAT
seedINT
cfgFLOAT