Nodes/comfyui-mdsnodes/Generation Parameters Hub
ComfyUI Node

Generation Parameters Hub

Stop Typing 20 Steps and CFG 7 Into Five Different Samplers

By MarwanDSAI·Created about a month ago·Updated 2 days ago· 1
Generation Parameters Hub
    • ckpt_name
    • steps
    • step_refiner
    • cfg
    • sampler_name
    • scheduler
    • denoise
    • ckpt_name_str
    • sampler_str
    • scheduler_str
    ckpt_name
    steps20
    step_refiner10
    cfg7.0
    sampler_name
    scheduler
    denoise1.00

    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_name and scheduler dropdowns come straight from comfy.samplers.SAMPLER_NAMES and SCHEDULER_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_name output is typed as a combo slot, and the sampler/scheduler outputs are combo-typed too, so they plug directly into the matching sockets on a Checkpoint Loader, KSampler, or SamplerSelect rather 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.

    CategoryMDSNodes/sampling

    Inputs (7)

    NameTypeDefaultDescription
    ckpt_nameCOMBOSelect the base checkpoint diffusion model file from your models/checkpoints folder.
    stepsINT201–10000The total number of sampling/denoising steps for base generation.
    step_refinerINT100–10000Target step count for refiner passes or the step transition threshold for multi-pass pipelines.
    cfgFLOAT7.00–100Classifier-Free Guidance (CFG) scale. Controls how strictly the model adheres to your prompt.
    sampler_nameCOMBOThe mathematical sampling algorithm used to generate or denoise the image (e.g., euler, dpmpp_2m).
    schedulerCOMBOThe noise scheduling rate/curve across the steps (e.g., normal, karras, sgm_uniform, simple).
    denoiseFLOAT1.000–1Denoise strength. Set to 1.0 for initial txt2img generation, or 0.20-0.60 for img2img / upscaling.

    Outputs (10)

    NameTypeDescription
    ckpt_nameThe selected checkpoint filename (COMBO slot for Checkpoint Loaders).
    stepsINTBase generation step count (INT).
    step_refinerINTRefiner step count or threshold (INT).
    cfgFLOATClassifier-Free Guidance scale (FLOAT).
    sampler_nameeuler,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_bh2Sampler algorithm name (COMBO slot for KSampler / SamplerSelect).
    schedulersimple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimalScheduler curve type (COMBO slot for KSampler / BasicScheduler).
    denoiseFLOATDenoise strength multiplier (FLOAT).
    ckpt_name_strSTRINGCheckpoint filename exported as a clean plain text string (for metadata/file naming).
    sampler_strSTRINGSampler algorithm name exported as a plain text string.
    scheduler_strSTRINGScheduler type exported as a plain text string.