Split Sampler Params
Unpack the sampler bundle when something wants the settings loose
- 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
KSamplerSelector 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.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| sampler_params | IPT-SamplerParams | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| sampler | * | — |
| scheduler | * | — |
| steps | INT | — |
| denoise | FLOAT | — |
| seed | INT | — |
| cfg | FLOAT | — |