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 (47)
| Name | Type | Default | Description |
|---|---|---|---|
| * | * | — | |
| extraopt | STRING | {"show_headings":true,"show_descriptions":false,"mode":"*"} | — |
| ㅤopt | STRING | Stable Diffusion | — |
| info_comma_padding_backtrackopt | STRING | — | |
| Prompt word wrap length limitopt | INT | 200–74 | 🚧Prompt word wrap length limit in tokens - for texts shorter than specified, if they don't fit into 75 token limit, move them to the next 75 token chunk |
| enable_emphasisopt | BOOLEAN | true | 🚧Emphasis mode makes it possible to make model to pay (more:1.1) or (less:0.9) attention to text when you use the syntax in prompt; None: disable the mechanism entirely and treat (:.1.1) as literal characters Ignore: treat all emphasized words as if they have no emphasis Original: the original emphasis implementation No norm: same as original, but without normalization (seems to work better for SDXL) |
| info_RNGopt | STRING | — | |
| RNGopt | COMBO | cpu | Random number generator source. changes seeds drastically; use CPU to produce the same picture across different videocard vendors; use NV to produce same picture as on NVidia videocards |
| ㅤㅤopt | STRING | Compute Settings | — |
| info_disable_nan_checkopt | STRING | — | |
| disable_nan_checkopt | BOOLEAN | true | Disable NaN check in produced images/latent spaces. Only for CFGDenoiser. |
| ㅤㅤㅤopt | STRING | Sampler parameters | — |
| info_eta_ancestralopt | STRING | — | |
| etaopt | FLOAT | 1.000–1 | Eta for k-diffusion samplers noise multiplier; currently only applies to ancestral samplers (i.e. Euler a) and SDE samplers |
| info_s_churnopt | STRING | — | |
| s_churnopt | FLOAT | 0.000–100 | Sigma churn amount of stochasticity; only applies to Euler, Heun, Heun++2, and DPM2 |
| info_s_tminopt | STRING | — | |
| s_tminopt | FLOAT | 0.000–10 | Sigma tmin enable stochasticity; start value of the sigma range; only applies to Euler, Heun, Heun++2, and DPM2' |
| info_s_tmaxopt | STRING | — | |
| s_tmaxopt | FLOAT | 0.000–999 | Sigma tmax 0 = inf; end value of the sigma range; only applies to Euler, Heun, Heun++2, and DPM2 |
| info_s_noiseopt | STRING | — | |
| s_noiseopt | FLOAT | 1.0000–1.1 | Sigma noise amount of additional noise to counteract loss of detail during sampling |
| info_eta_noise_seed_deltaopt | STRING | — | |
| ENSDopt | INT | 00–18446744073709550000 | Eta noise seed delta does not improve anything, just produces different results for ancestral samplers - only useful for reproducing images |
| info_skip_early_condopt | STRING | — | |
| skip_early_condopt | FLOAT | 0.000–1 | Ignore negative prompt during early sampling disables CFG on a proportion of steps at the beginning of generation; 0=skip none; 1=skip all; can both improve sample diversity/quality and speed up sampling |
| info_sgm_noise_multiplieropt | STRING | — | |
| sgm_noise_multiplieropt | BOOLEAN | true | SGM noise multiplier match initial noise to official SDXL implementation - only useful for reproducing images see https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/12818 |
| info_upcast_samplingopt | STRING | — | |
| upcast_samplingopt | BOOLEAN | true | 🚧upcast sampling. No effect with --force-fp32. Usually produces similar results to --force-fp32 with better performance while using less memory. |
| ㅤㅤㅤㅤopt | STRING | Optimizations | — |
| info_NGMSopt | STRING | — | |
| NGMSopt | FLOAT | 0.000–15 | Negative Guidance minimum sigma skip negative prompt for some steps when the image is almost ready; 0=disable, higher=faster. see https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/9177 https://github.com/lllyasviel/stable-diffusion-webui-forge/pull/1434 |
| info_NGMS_all_stepsopt | STRING | — | |
| NGMS all stepsopt | BOOLEAN | false | Negative Guidance minimum sigma all steps By default, NGMS above skips every other step; this makes it skip all steps |
| info_pad_cond_uncondopt | STRING | — | |
| pad_cond_uncondopt | BOOLEAN | false | 🚧Pad prompt/negative prompt to be same length improves performance when prompt and negative prompt have different lengths; changes seeds. Only for CFGDenoiser. |
| info_batch_cond_uncondopt | STRING | — | |
| batch_cond_uncondopt | BOOLEAN | true | 🚧Batch cond/uncond do both conditional and unconditional denoising in one batch; uses a bit more VRAM during sampling, but improves speed. Only for CFGDenoiser. |
| ㅤㅤㅤㅤㅤopt | STRING | Compatibility | — |
| info_use_prev_schedulingopt | STRING | — | |
| Use previous prompt editing timelinesopt | BOOLEAN | true | 🚧Previous prompt editing timelines For [red:green:N]; previous: If N < 1, it's a fraction of steps (and hires fix uses range from 0 to 1), if N >= 1, it's an absolute number of steps; new: If N has a decimal point in it, it's a fraction of steps (and hires fix uses range from 1 to 2), othewrwise it's an absolute number of steps |
| ㅤㅤㅤㅤㅤㅤopt | STRING | Experimental | — |
| info_use_CFGDenoiseropt | STRING | — | |
| Use CFGDenoiseropt | BOOLEAN | false | 🚧CFGDenoiser An experimental option to use stable-diffusion-webui's denoiser. It allows you to use the 'Optimizations' settings listed here. |
| info_debugopt | STRING | — | |
| debugopt | BOOLEAN | false | Debugging messages in the console. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| * | * | The model used for denoising latents. |