Nodes/ComfyUI Easy Use/PreSampling (Custom)
ComfyUI Node Runs on cloud

PreSampling (Custom)

The deep end of Easy-Use's sampler config

By yolain·Created 3 years ago·Updated 12 days ago· 2,647
PreSampling (Custom)
  • pipe
  • image_to_latent
  • latent
  • optional_sampler
  • optional_sigmas
  • pipe
guiderBasic
cfg3.50
cfg_negative1.50
sampler_name
scheduler
coeff1.20
steps20
sigma_max14.61
sigma_min0.03
rho7.00
beta_d19.90
beta_min0.10
eps_s0.0010
flip_sigmasfalse
denoise1.00
add_noiseenable (CPU)
seed0

Fair warning going in: this is the advanced node in the presampling family, not the one you reach for on a normal day. Everywhere else in Easy-Use, "presampling" means picking a sampler, a scheduler, steps, and cfg. This node exposes ComfyUI's full custom-sampling stack instead - separate guider selection, hand-tunable sigma schedules, the works. The README's own framing for it is that it exists to support things like cosXL-edit, which is a hint about the audience: models and techniques that need more control than the standard sampler config gives you.

What "guider" actually changes

guider is the field that makes this node different from every other presampler in the pack. Basic is ordinary CFG guidance - what every other Easy-Use sampler does implicitly. CFG and DualCFG expose that explicitly, with DualCFG giving you separate control over two conditioning branches, which matters on architectures that split guidance that way. The IP2P+CFG, IP2P+DualCFG, and IP2P+Basic variants layer InstructPix2Pix-style image-conditioned guidance on top - relevant if you're doing instruction-based image editing rather than plain text-to-image. cfg and cfg_negative are your two guidance-scale dials, and which one actually matters depends on which guider you picked.

The sigma schedule fields - mostly leave them alone

sampler_name and scheduler work like anywhere else, but this node also exposes the raw parameters behind ComfyUI's various sigma-schedule generators: coeff, sigma_max, sigma_min, rho, beta_d, beta_min, eps_s, flip_sigmas. Here's the honest advice: each scheduler type only actually reads the parameters relevant to it - Karras-style schedules care about rho and the sigma bounds, variance-preserving schedules care about beta_d/beta_min/eps_s, and so on. Unless you're specifically implementing or tuning a schedule from a paper, the defaults are tuned sensibly and touching these rarely helps. Know they exist for when you need them; don't feel obligated to understand all eight before using this node.

denoise and steps behave as expected. add_noise is the one field worth understanding: enable (CPU) is the standard path, enable (GPU=A1111) reproduces A1111's noise generation on GPU - part of what lets this pack get close to A1111-identical output for the same seed - and disable skips fresh noise entirely, which you'd want when you're continuing a partially-denoised latent rather than starting fresh.

Optional inputs

image_to_latent and latent let you feed a starting point instead of generating from scratch. optional_sampler and optional_sigmas let you plug in externally-built sampler and sigma objects - for when you're constructing a genuinely custom sampling curve upstream rather than picking from this node's own dropdowns.

Output is a single pipe, same as every other presampler in the pack.

Installing it

ComfyUI Manager: search ComfyUI Easy Use, install, restart. By hand:

cd ComfyUI/custom_nodes
git clone https://github.com/yolain/ComfyUI-Easy-Use

Windows: double-click install.bat. Linux/Mac: run pip install -r requirements.txt yourself. Restart ComfyUI.

Where people get stuck

The number one mistake is reaching for this node by default instead of the plain presampler - if you don't have a specific reason to need guider-level control or a hand-tuned sigma curve, the simpler presampling node does everything most workflows need with far less surface area to get wrong. Second: setting sigma parameters that don't apply to your chosen scheduler and being confused when nothing changes - that's expected, not broken. And if add_noise is set to disable and your output looks like pure noise or a blank frame, check that you're actually feeding a partially-denoised latent in - with noise addition off, this node assumes you're continuing an existing latent, not starting one.

CategoryEasyUse/PreSampling

Inputs (22)

NameTypeDefaultDescription
pipePIPE_LINE
guiderCOMBOBasic6 options: CFG, DualCFG, Basic, IP2P+CFG, IP2P+DualCFG, IP2P+Basic
cfgFLOAT3.500–100
cfg_negativeFLOAT1.500–100
sampler_nameCOMBO45 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +39
schedulerCOMBO16 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +10
coeffFLOAT1.200.8–1.5
stepsINT201–10000
sigma_maxFLOAT14.610–1000
sigma_minFLOAT0.030–1000
rhoFLOAT7.000–100
beta_dFLOAT19.900–1000
beta_minFLOAT0.100–1000
eps_sFLOAT0.00100–1
flip_sigmasBOOLEANfalse
denoiseFLOAT1.000–1
add_noiseCOMBOenable (CPU)3 options: enable (CPU), enable (GPU=A1111), disable
seedINT00–1125899906842624
image_to_latentoptIMAGE
latentoptLATENT
optional_sampleroptSAMPLER
optional_sigmasoptSIGMAS

Outputs (1)

NameTypeDescription
pipePIPE_LINE