Settings (smZ)
A1111's Sampler Settings, Wired Into a ComfyUI Graph
- *
- *
This is the deep-cut companion to CLIP Text Encode++, from the same pack. Where that node gets you A1111's prompt syntax, this one gets you the other half of A1111's Settings > Stable Diffusion panel - RNG source, eta, NaN checks, the CFGDenoiser optimizations - as a single node you drop into a ComfyUI graph. The author built it, in their own words, "to explore the various settings found in stable-diffusion-webui." Most people will never touch 90% of it. The 10% they do touch is genuinely useful for closing the last gap between an A1111 image and a ComfyUI reproduction of it.
How it works
Functionally it's a Reroute node with opinions. It has one required input typed * - a wildcard, so you can feed it CLIP, MODEL, or basically anything else - and it passes that through while patching in whatever settings you've configured on its widgets. The patch only applies to what's downstream of its link: a CLIP input only affects CLIP Text Encode++ specifically (not the stock CLIP Text Encode), and everything else applies locally, the same way a model-patch node does. You can chain multiple Settings nodes in sequence and a later one overrides an earlier one, which is handy for A/B testing a setting change partway through a graph.
Two real landmines from the README, worth internalizing before you build around this node: it can change shape when the pack updates, so if an update leaves it looking broken, delete and recreate it before you go debugging anything else. And right-click the node for a "Hide/show all descriptions" toggle - with every setting expanded it's a genuinely enormous node, and most of what you see are cosmetic section headers (Stable Diffusion, Compute Settings, Sampler parameters, Optimizations, Compatibility, Experimental) grouping the real widgets underneath.
The settings actually worth knowing
Everything here mirrors an A1111 setting, and the tooltips are the author's own - trust them over guessing:
RNG(cpu/gpu/nv) - the noise source. This is the single biggest lever for matching seeds between A1111 and ComfyUI; usecputo match across GPU vendors,nvto match what an Nvidia card produced in A1111.enable_emphasis- the on/off switch for attention-weight parsing ((word:1.1)and friends). On by default.eta,s_churn,s_tmin,s_tmax,s_noise- the classic k-diffusion sampler-noise cluster.etaonly applies to ancestral (Euler a) and SDE samplers; thes_*group applies to Euler, Heun, Heun++2, and DPM2's churn-based stochasticity instead. Only worth touching if you're trying to match A1111's exact noise behavior on one of those samplers.ENSD(eta noise seed delta) - does nothing for quality; exists purely to reproduce specific old seeds on ancestral samplers.skip_early_condandNGMS- both skip the negative prompt for part of the run to save time (early steps vs. late steps respectively). Community reports on r/comfyui noteNGMSis generally the better trade -skip_early_condhits quality harder for the same speedup.disable_nan_check,pad_cond_uncond,batch_cond_uncond,sgm_noise_multiplier,upcast_sampling- a grab-bag of A1111 CFGDenoiser-era performance and precision toggles.pad_cond_uncondandbatch_cond_uncondin particular only take effect if you also flip onUse CFGDenoiser(see below).Use CFGDenoiser- off by default, and explicitly marked experimental. This opts you into A1111's own denoiser implementation, which is the switch that actually unlocks several of the Optimizations fields above.Use previous prompt editing timelines- a compatibility toggle for how[red:green:N]prompt-editing syntax interpretsN. Only matters if you're reproducing an old A1111 seed.debug- dumps extra logging to the console.
Output is the same * wildcard type you fed in - this is a pass-through node, not a generator, so nothing new comes out the other side except your original input with settings attached to its downstream links.
Installing it
Same pack as CLIP Text Encode++: ComfyUI Manager (search "smZNodes"), or
cd ComfyUI/custom_nodes
git clone https://github.com/shiimizu/ComfyUI_smZNodes
No models, no heavy dependencies - restart ComfyUI and it's there.
Where people get stuck
The most common confusion is wiring it in and seeing nothing change. Two usual causes: either the setting you touched only applies to CLIP Text Encode++ and you're still using the stock CLIP Text Encode downstream, or the node isn't actually inline - it has to sit in the wire between two nodes to patch anything, dangling doesn't do anything. The second most common one is exactly what the README warns about: after updating the pack, an old Settings node can start behaving oddly or throwing errors until you delete and rebuild it. And if you're chasing an exact A1111 reproduction and it's still not matching, check RNG first - a CPU/GPU mismatch there will throw off your seed before anything else in this node even gets a chance to matter.
Inputs (27)
| Name | Type | Default | Description |
|---|---|---|---|
| * | COMFY_MATCHTYPE_V3 | Model or CLIP to attach smZ settings to | |
| ㅤ | STRING | Stable Diffusion | — |
| prompt_word_wrap_length_limit | INT | 200–255 | Prompt word wrap length limit in tokens - moves short words to next chunk if exceeding 75 tokens |
| enable_emphasis | BOOLEAN | true | Enable emphasis syntax (e.g. (text:1.1)) |
| RNG | COMBO | cpu | Random number generator source |
| ㅤㅤ | STRING | Compute Settings | — |
| disable_nan_check | BOOLEAN | true | Disable NaN check in produced latents/images (CFGDenoiser only) |
| ㅤㅤㅤ | STRING | Sampler parameters | — |
| eta | FLOAT | 1.000–1 | Eta for k-diffusion ancestral and SDE samplers |
| s_churn | FLOAT | 0.000–100 | Sigma churn: amount of stochasticity |
| s_tmin | FLOAT | 0.000–10 | Sigma tmin: start value for stochasticity |
| s_tmax | FLOAT | 0.000–999 | Sigma tmax: end value for stochasticity (0 = inf) |
| s_noise | FLOAT | 1.0000–1.1 | Sigma noise: additional noise to counteract loss of detail |
| ENSD | INT | 00–18446744073709550000 | Eta noise seed delta for reproducing ancestral sampler outputs |
| skip_early_cond | FLOAT | 0.000–1 | Fraction of steps at the beginning to skip negative prompt guidance |
| sgm_noise_multiplier | BOOLEAN | true | Match initial noise to official SDXL implementation |
| upcast_sampling | BOOLEAN | true | 🚧 Upcast sampling precision to FP32 |
| ㅤㅤㅤㅤ | STRING | Optimizations | — |
| NGMS | FLOAT | 0.000–15 | Negative Guidance minimum sigma: skip negative prompt at low sigmas |
| NGMS_all_steps | BOOLEAN | false | 🚧 Skip negative prompt on all steps below NGMS |
| pad_cond_uncond | BOOLEAN | false | 🚧 Pad prompt and negative prompt to equal length for CFGDenoiser |
| batch_cond_uncond | BOOLEAN | true | 🚧 Batch conditional and unconditional denoising (CFGDenoiser) |
| ㅤㅤㅤㅤㅤ | STRING | Compatibility | — |
| use_old_scheduling | BOOLEAN | true | 🚧 Compatibility with legacy prompt editing step scheduling |
| ㅤㅤㅤㅤㅤㅤ | STRING | Experimental | — |
| use_CFGDenoiser | BOOLEAN | false | 🚧 Use stable-diffusion-webui's denoiser pipeline |
| debug | BOOLEAN | false | Print debug messages in console |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| * | COMFY_MATCHTYPE_V3 | Model or CLIP with smZ options attached |