Bubba Sampler Controls
Stop Retyping Steps and CFG Into Every KSampler
- steps
- cfg
- sampler_name
- scheduler
- denoise
Bubba Sampler Controls solves the most boring, repetitive problem in multi-sampler workflows: the same steps, CFG, sampler, scheduler, and denoise typed into five different KSamplers. Change your mind about CFG and you get to edit five widgets. This node holds those five values once and fans them out, so you edit one place and every sampler follows.
It's a pure "one source, many consumers" plumbing node - the exact pattern the modidex KB's node-plumbing essay describes as the base case for value nodes. If you're building a model-comparison rig or a hi-res-fix pipeline with multiple sampling passes, this is the node that keeps the settings honest across branches. And because it outputs plain INT, FLOAT, and COMBO sockets, it plugs straight into any KSampler - no pipe required.
How it works
There's no computation here, which is the point. The five widgets - steps (default 20), cfg (default 8), sampler_name, scheduler, denoise (default 1.0) - each come out as their own output socket with the same name. Wire steps into every sampler's steps input, cfg into every CFG input, and so on. One edit upstream, five samplers updated. sampler_name and scheduler are dropdowns populated from whatever samplers and schedulers your ComfyUI build actually supports, so you won't get a typo'd sampler name silently ignored.
A small but real design detail: the denoise default is 1.0, which is right for txt2img. If you're fanning these into an img2img or hires pass where you want different denoise per branch, just don't wire denoise from this node into that one branch - the widget stays yours to override per sampler.
The two nodes you'll use it with
Bubba Sampler Controls pairs naturally with Bubba Seed Control (same pack, same philosophy - one shared seed). The README's model-comparison workflow wires them side by side: Seed Control's integer output into each sampler's seed, Sampler Controls' five outputs into each sampler's steps/CFG/sampler/scheduler/denoise. Together they turn a multi-branch comparison into a graph where the only thing you touch between runs is two nodes.
How to install it
It's part of the Bubba_Nodes pack, so the install is the pack install. ComfyUI Manager → search "Bubba Nodes" → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/bubbafett5611/bubba_nodes.git
restart ComfyUI, and python -m pip install -r requirements.txt if the console complains. Dependencies are minimal (aiohttp, pydantic), and the pack requires ComfyUI v0.27.0+ because it registers nodes through the newer V3 API.
Gotchas
The most common failure isn't a bug, it's a stale value: you tweak CFG on the Sampler Controls node, hit run, and a sampler somewhere is still at the old setting - because you forgot to wire its CFG input here in the first place. Half-connected is the default state of every fan-out setup, so when a branch misbehaves, check its individual widgets first. Also note the obvious-but-easy-to-miss: this node has no pipe input and doesn't touch metadata, so it only helps samplers you explicitly wire to it. And because the pack is young with essentially no community tutorial trail yet, the README's comparison-workflow section is currently the best guide to using it - it's short and worth reading before you wire up five branches by hand.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| steps | INT | 201–10000 | — |
| cfg | FLOAT | 8.00–100 | — |
| sampler_name | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| denoise | FLOAT | 1.000–1 | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| steps | INT | — |
| cfg | FLOAT | — |
| sampler_name | COMBO | — |
| scheduler | COMBO | — |
| denoise | FLOAT | — |