Generation Parameters Hub
Stop Typing 20 Steps and CFG 7 Into Five Different Samplers
- ckpt_name
- steps
- step_refiner
- cfg
- sampler_name
- scheduler
- denoise
- ckpt_name_str
- sampler_str
- scheduler_str
Every serious workflow ends up with the same value typed in five places. Steps, CFG, sampler, scheduler, denoise - you set them on the KSampler, then again on the refiner pass, then again on the hires-fix stage, and the first time you forget to update one of them, you get a render that disagrees with everything else in the graph. Generation Parameters Hub is the "define once, fan out" answer: one node holds the full sampling recipe and hands it to every consumer that needs it.
This is the plumbing pattern the KB calls "one source, many consumers" - the exact thing value nodes exist for, except here the value is a whole parameter set instead of a single number. For a model-testing workflow, where you sweep the same settings across a dozen models and want every render comparable, a single hub is what keeps the comparisons honest.
How it works
The node does no generation and loads no model. It's a router: you set the values, it returns them from seven outputs plus three string variants, and you wire those into your samplers, schedulers, and checkpoint loaders. Two details make it more than a toy:
- The
sampler_nameandschedulerdropdowns come straight fromcomfy.samplers.SAMPLER_NAMESandSCHEDULER_NAMES- the exact same lists the core KSampler uses. No hand-maintained list that drifts out of sync with your ComfyUI version; what the hub offers is what your install supports. - The
ckpt_nameoutput is typed as a combo slot, and the sampler/scheduler outputs are combo-typed too, so they plug directly into the matching sockets on aCheckpoint Loader,KSampler, orSamplerSelectrather than just being text that happens to look right.
The inputs you actually set
steps(20) - the base denoising step count.step_refiner(10) - the refiner pass's step count, or the threshold for multi-pass pipelines. If you don't run a refiner, leave it unwired.cfg(7.0) - classifier-free guidance; how strictly the model follows the prompt.sampler_name/scheduler- algorithm and noise curve.denoise(1.0) - 1.0 for fresh txt2img, 0.2–0.6 for img2img or upscaling passes.ckpt_name- which checkpoint the recipe applies to, passed along for downstream loaders.
The three *_str outputs (ckpt_name_str, sampler_str, scheduler_str) are the same values as plain text, for metadata and save filenames - the "what did I run this with" record.
Installing it
Part of MarwanDSAI/comfyui-mdsnodes. ComfyUI Manager: search "ComfyUI-MDSNodes", install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/MarwanDSAI/comfyui-mdsnodes
Restart, and no pip install - the pack's requirements.txt is empty.
Gotchas
Remember what this node isn't: it doesn't load a checkpoint, so you still need a Load Checkpoint somewhere, and the ckpt_name output is there to drive it, not replace it. And a hub is only as trustworthy as the wiring - if one sampler in a multi-pass setup gets a steps value from somewhere else, you're back to the silent-mismatch problem this node was built to kill. Wire every consumer from the hub and nothing else, and the recipe stays single-sourced.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | Select the base checkpoint diffusion model file from your models/checkpoints folder. | |
| steps | INT | 201–10000 | The total number of sampling/denoising steps for base generation. |
| step_refiner | INT | 100–10000 | Target step count for refiner passes or the step transition threshold for multi-pass pipelines. |
| cfg | FLOAT | 7.00–100 | Classifier-Free Guidance (CFG) scale. Controls how strictly the model adheres to your prompt. |
| sampler_name | COMBO | The mathematical sampling algorithm used to generate or denoise the image (e.g., euler, dpmpp_2m). | |
| scheduler | COMBO | The noise scheduling rate/curve across the steps (e.g., normal, karras, sgm_uniform, simple). | |
| denoise | FLOAT | 1.000–1 | Denoise strength. Set to 1.0 for initial txt2img generation, or 0.20-0.60 for img2img / upscaling. |
Outputs (10)
| Name | Type | Description |
|---|---|---|
| ckpt_name | The selected checkpoint filename (COMBO slot for Checkpoint Loaders). | |
| steps | INT | Base generation step count (INT). |
| step_refiner | INT | Refiner step count or threshold (INT). |
| cfg | FLOAT | Classifier-Free Guidance scale (FLOAT). |
| 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 | Sampler algorithm name (COMBO slot for KSampler / SamplerSelect). |
| scheduler | simple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal | Scheduler curve type (COMBO slot for KSampler / BasicScheduler). |
| denoise | FLOAT | Denoise strength multiplier (FLOAT). |
| ckpt_name_str | STRING | Checkpoint filename exported as a clean plain text string (for metadata/file naming). |
| sampler_str | STRING | Sampler algorithm name exported as a plain text string. |
| scheduler_str | STRING | Scheduler type exported as a plain text string. |