MBQ Wedge Sampler
Finally A/B test every sampler in one run
- sampler_name
Comparing samplers is the ComfyUI chore nobody enjoys: render, change the dropdown, render, change the dropdown, and somewhere around image five you've lost track of which one was dpmpp_2m and which was euler_ancestral. MBQ Wedge Sampler is the "just do all of them" button. Wire it into a KSampler's sampler_name and one Queue click renders one image per sampler - each PNG labelled with the sampler that made it.
Why you'd bother
The stock sampler dropdown in this ComfyUI build has 44 entries. That's not a list you should hold opinions about from memory - it's a list you should test. The wedge pulls its values straight from comfy.samplers.KSampler.SAMPLERS, the same live registry ComfyUI uses, so samplers added by other custom node packs show up here automatically.
One strong take worth stealing: sampler choice is architecture-dependent. SD 1.5 and SDXL finetunes still live in dpmpp / Karras territory, but on flow-matching models like Flux the sensible part of that list is a lot smaller - mostly the euler family on conservative schedules. A full sweep on a big model burns a lot of render time for a lot of answers you already knew. That's exactly what the filter field is for.
How it works
Same machinery as the numeric MBQ Wedge: the JS extension intercepts Queue, submits one job per sampler, and patches each job so the sampler name ends up embedded in that PNG's ComfyUI metadata chunk - which is how MBQ Viewer labels the sweep for you. The output's type matches the sampler COMBO exactly, so the KSampler accepts the link without complaint.
The filter box is the input you'll actually use. Leave it blank to sweep all 44, or list names - one per line, or space-separated, either works. Invalid names are silently skipped, and the node's label updates live ("will sweep 6 of 44 samplers → 6 images"), so you get instant feedback on whether your filter matched anything. parameter_name auto-fills to "sampler_name" and just labels the outputs; current is a cosmetic readout of whatever the dropdown shows.
There's a sneaky footgun the pack guards you against: in the frontend, a sampler-name COMBO and a scheduler-name COMBO report the same link type, so ComfyUI will happily let you wire a Sampler wedge into a KSampler's scheduler input. The wedge checks whether the target actually accepts your values and quietly undoes the link with a warning toast if not. So: Sampler wedge → sampler_name, Scheduler wedge → scheduler. Don't swap them.
Install and gotchas
Same as the whole pack - ComfyUI Manager (search "MBQ Wedge"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/Beakfx/mbq
# restart ComfyUI
No dependencies, no model downloads. The usual MBQ rules apply: only one wedge can drive a sweep at a time (multiple connected wedges → warning and a single normal job), and a wedge with no wired output is ignored. And remember that 44 renders adds up at high step counts and big resolutions - which is the other reason to lean on filter. You don't want to sit through forty renders to learn you only cared about five.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| parameter_name | STRING | sampler_name | — |
| filter | STRING | — | |
| current | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| sampler_name | 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 | — |