Sampler Setup Unpack
How Sampler Setup Unpack gets you to KSampler
- setup_pipe
- steps
- cfg
- clip_skip
- sampler
- scheduler
- width
- height
- batch_size
Sampler Setup Unpack is the boring, indispensable other half of this pack's SamplerSetup node. SamplerSetup bundles all your sampling dials into a single setup_pipe wire; this node takes that pipe and splits it back into the individual values a stock KSampler actually accepts. If SamplerSetup is the trunk of the pipe, this is where the cables fan out.
There's no way around the pair if you're using stock ComfyUI nodes. A SETUPPIPE wire cannot plug into a KSampler - the types don't match, and no amount of wiggling the mouse will make the connection land. The flow that actually works is:
SamplerSetup → setup_pipe → SamplerSetupUnpack → steps/cfg/... → KSampler
The pack's README draws the first hop as if the pipe goes straight into a KSampler, which is misleading; the Unpack node is the bridge, and it's a clean one.
How it works
unpack_pipe reads the pipe dict and hands back eight outputs, each with a ComfyUI-native type:
- steps (INT), cfg (FLOAT), clip_skip (INT)
- sampler and scheduler - the two interesting ones. Their output types are populated straight from
comfy.samplers.KSampler.SAMPLERSandSCHEDULERS, the exact same enum lists a KSampler uses for its dropdowns. That's why these two wires plug in with zero friction: the node literally promises "one of these known sampler names," so ComfyUI's type checker is satisfied before you even run anything. - width (INT), height (INT), batch_size (INT)
It's defensive under the hood: if a key is missing from the pipe it supplies a default (steps 0, cfg 0.0, clip_skip 0, batch_size 1), and if the sampler or scheduler value isn't in ComfyUI's known lists it falls back to euler. So a malformed pipe won't crash the graph - it'll just silently sample with euler, which is its own kind of confusing if you weren't expecting it.
Wiring it up
In practice you'll connect three or four of these outputs and ignore the rest. The ones that matter to a KSampler are steps, cfg, and sampler/scheduler; width, height, and batch_size are for your latent-creation or empty-latent node, and clip_skip belongs on a CLIP Set Last Layer style node - or just leave it, since -1 (no skip) is ComfyUI's own default. The point of the pipe isn't that you use every output, it's that you change one setting in one place and the unpacked values follow everywhere.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/hayde0096/Comfyui-EasySettingpipes
Restart ComfyUI, or search "Easy Setting Pipes" in ComfyUI Manager. No dependencies beyond ComfyUI itself, no model downloads. (The README's own clone snippet has a broken user-attachments URL - use the repo path above.)
Where people get burned
- Zero-tolerance type mismatch on the wire. Because the unpack types are exactly KSampler's enums, this node is one of the few places in the pack where a wire genuinely refuses to connect if you're feeding it into something exotic. That's usually correct behavior, not a bug.
- Silent fallbacks hide mistakes. Feed a pipe built by hand (or by another pack) with a weird sampler string, and you'll get euler out with no warning. If your renders suddenly look different, check what actually came out of
sampler, not what you think you put in. - Batch size 0 surprise. If a pipe is missing its batch_size key, the default is 1 - sensible. But missing steps/cfg default to 0, which will produce nonsense rather than an error. Keep pipes coming from SamplerSetup and you'll never hit it.
It's a thin node and it's fine that it's thin. Somebody has to be the adapter that turns a tidy pipe back into the eight loose ends the rest of ComfyUI expects, and this one does it without drama.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| setup_pipe | SETUPPIPE | — |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| steps | INT | — |
| cfg | FLOAT | — |
| clip_skip | INT | — |
| sampler | euler,euler_cfg_pp,euler_ancestral,euler_ancestral_cfg_pp,heun,heunpp2,exp_heun_2_x0,exp_heun_2_x0_sde,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_2s_ancestral_cfg_pp,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_cfg_pp,dpmpp_2m_sde,dpmpp_2m_sde_gpu,dpmpp_2m_sde_heun,dpmpp_2m_sde_heun_gpu,dpmpp_3m_sde,dpmpp_3m_sde_gpu,ddpm,lcm,ipndm,ipndm_v,deis,res_multistep,res_multistep_cfg_pp,res_multistep_ancestral,res_multistep_ancestral_cfg_pp,gradient_estimation,gradient_estimation_cfg_pp,er_sde,seeds_2,seeds_3,sa_solver,sa_solver_pece,ddim,uni_pc,uni_pc_bh2 | — |
| scheduler | simple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal | — |
| width | INT | — |
| height | INT | — |
| batch_size | INT | — |