KSamplerSetting
KSamplerSetting
- model
- positive
- negative
- latent_image
- DICT
KSamplerSetting doesn't sample anything. The name sets expectations and then immediately breaks them - all this node does is collect its inputs into a single DICT and hand it downstream. It's the "save these settings once" node that the rest of the hnmr sampling family is built around.
Here's the idea. Every KSampler in ComfyUI has the same ten-ish knobs: seed, steps, cfg, sampler, scheduler, denoise, plus your conditioning and latent. If you're running a two-pass workflow (a base pass and a hires fix), you're setting a lot of those twice. KSamplerSetting lets you define one set of sampler settings and feed it to both passes, so you tweak in one place instead of hunting across the graph.
Its inputs are exactly what a KSampler takes: model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, and denoise. The sampler_name dropdown lists all 34 samplers ComfyUI knows about, scheduler the 9 schedulers - no surprises there. Its one output, DICT, is the whole bundle.
Wire that DICT into either KSamplerOverrided (a working KSampler that lets you override individual fields) or KSamplerXYZ (the grid-search sampler). The real payoff is KSamplerXYZ, where the settings dict becomes the baseline and the XYZ node's text fields sweep across it.
Installation is the same as the rest of this pack, which is itself a maintenance fork of hnmr293's original that fixes it for modern ComfyUI. ComfyUI Manager: search "ComfyUI-nodes-hnmr" and install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/CYBERLOOM-INC/ComfyUI-nodes-hnmr
Restart ComfyUI. No extra model files, no requirements.txt - the pack leans entirely on ComfyUI's own dependencies.
Two gotchas worth knowing. First, the original pack broke on newer ComfyUI with No module named 'comfy.ldm.models.diffusion.ddpm' - that's exactly the bug this fork exists to fix, so if you're seeing that error you grabbed the wrong repo. Second, KSamplerSetting is pure plumbing; if you wire its DICT into nothing, the node silently does nothing at all. That's not a bug, but it is a confusing first run.
When would you reach for it? When you've got more than one sampler in a workflow and you're tired of keeping their settings in sync - or when you're about to build an XYZ grid and need a baseline to sweep from. For a single sampler, skip it and use a plain KSampler; this node earns its keep by being shared, not by existing.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 201–10000 | — |
| cfg | FLOAT | 8.000–100 | — |
| sampler_name | COMBO | 34 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +28 | |
| scheduler | COMBO | 9 options: normal, karras, exponential, sgm_uniform, simple, ddim_uniform, +3 | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| latent_image | LATENT | — | |
| denoise | FLOAT | 1.000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| DICT | DICT | — |