Nodes/smZNodes/Settings (smZ)
ComfyUI Node

Settings (smZ)

A1111's Sampler Settings, Wired Into a ComfyUI Graph

By shiimizu·Created 3 years ago·Updated about a year ago· 328
Settings (smZ)
  • *
  • *
extra{"show_headings":true,"show_descriptions":false,"mode":"*"}
Stable Diffusion
info_comma_padding_backtrack
Prompt word wrap length limit20
enable_emphasistrue
info_RNG
RNGcpu
ㅤㅤCompute Settings
info_disable_nan_check
disable_nan_checktrue
ㅤㅤㅤSampler parameters
info_eta_ancestral
eta1.00
info_s_churn
s_churn0.00
info_s_tmin
s_tmin0.00
info_s_tmax
s_tmax0.00
info_s_noise
s_noise1.000
info_eta_noise_seed_delta
ENSD0
info_skip_early_cond
skip_early_cond0.00
info_sgm_noise_multiplier
sgm_noise_multipliertrue
info_upcast_sampling
upcast_samplingtrue
ㅤㅤㅤㅤOptimizations
info_NGMS
NGMS0.00
info_NGMS_all_steps
NGMS all stepsfalse
info_pad_cond_uncond
pad_cond_uncondfalse
info_batch_cond_uncond
batch_cond_uncondtrue
ㅤㅤㅤㅤㅤCompatibility
info_use_prev_scheduling
Use previous prompt editing timelinestrue
ㅤㅤㅤㅤㅤㅤExperimental
info_use_CFGDenoiser
Use CFGDenoiserfalse
info_debug
debugfalse

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; use cpu to match across GPU vendors, nv to 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. eta only applies to ancestral (Euler a) and SDE samplers; the s_* 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_cond and NGMS - both skip the negative prompt for part of the run to save time (early steps vs. late steps respectively). Community reports on r/comfyui note NGMS is generally the better trade - skip_early_cond hits 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_uncond and batch_cond_uncond in particular only take effect if you also flip on Use 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 interprets N. 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.

Categoryadvanced

Inputs (47)

NameTypeDefaultDescription
**
extraoptSTRING{"show_headings":true,"show_descriptions":false,"mode":"*"}
optSTRINGStable Diffusion
info_comma_padding_backtrackoptSTRING
Prompt word wrap length limitoptINT200–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_emphasisoptBOOLEANtrue🚧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_RNGoptSTRING
RNGoptCOMBOcpuRandom 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
ㅤㅤoptSTRINGCompute Settings
info_disable_nan_checkoptSTRING
disable_nan_checkoptBOOLEANtrueDisable NaN check in produced images/latent spaces. Only for CFGDenoiser.
ㅤㅤㅤoptSTRINGSampler parameters
info_eta_ancestraloptSTRING
etaoptFLOAT1.000–1Eta for k-diffusion samplers noise multiplier; currently only applies to ancestral samplers (i.e. Euler a) and SDE samplers
info_s_churnoptSTRING
s_churnoptFLOAT0.000–100Sigma churn amount of stochasticity; only applies to Euler, Heun, Heun++2, and DPM2
info_s_tminoptSTRING
s_tminoptFLOAT0.000–10Sigma tmin enable stochasticity; start value of the sigma range; only applies to Euler, Heun, Heun++2, and DPM2'
info_s_tmaxoptSTRING
s_tmaxoptFLOAT0.000–999Sigma tmax 0 = inf; end value of the sigma range; only applies to Euler, Heun, Heun++2, and DPM2
info_s_noiseoptSTRING
s_noiseoptFLOAT1.0000–1.1Sigma noise amount of additional noise to counteract loss of detail during sampling
info_eta_noise_seed_deltaoptSTRING
ENSDoptINT00–18446744073709550000Eta noise seed delta does not improve anything, just produces different results for ancestral samplers - only useful for reproducing images
info_skip_early_condoptSTRING
skip_early_condoptFLOAT0.000–1Ignore 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_multiplieroptSTRING
sgm_noise_multiplieroptBOOLEANtrueSGM 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_samplingoptSTRING
upcast_samplingoptBOOLEANtrue🚧upcast sampling. No effect with --force-fp32. Usually produces similar results to --force-fp32 with better performance while using less memory.
ㅤㅤㅤㅤoptSTRINGOptimizations
info_NGMSoptSTRING
NGMSoptFLOAT0.000–15Negative 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_stepsoptSTRING
NGMS all stepsoptBOOLEANfalseNegative Guidance minimum sigma all steps By default, NGMS above skips every other step; this makes it skip all steps
info_pad_cond_uncondoptSTRING
pad_cond_uncondoptBOOLEANfalse🚧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_uncondoptSTRING
batch_cond_uncondoptBOOLEANtrue🚧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.
ㅤㅤㅤㅤㅤoptSTRINGCompatibility
info_use_prev_schedulingoptSTRING
Use previous prompt editing timelinesoptBOOLEANtrue🚧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
ㅤㅤㅤㅤㅤㅤoptSTRINGExperimental
info_use_CFGDenoiseroptSTRING
Use CFGDenoiseroptBOOLEANfalse🚧CFGDenoiser An experimental option to use stable-diffusion-webui's denoiser. It allows you to use the 'Optimizations' settings listed here.
info_debugoptSTRING
debugoptBOOLEANfalseDebugging messages in the console.

Outputs (1)

NameTypeDescription
**The model used for denoising latents.