Sampler Custom Advanced (Efficient)
The Efficient node that takes custom samplers, sigmas and guiders
- sigmas
- latent
- model
- positive
- custom_guider
- custom_sampler
- video_vae
- audio_vae
- model
- positive
- negative
- sampler
- original sigmas
- latent
- denoised latent
- images
- audio
- video_vae
- audio_vae
Stock ComfyUI gives you two worlds that don't talk to each other. Plain KSampler is friendly but locked to the built-in sampler and scheduler dropdowns. Sampler Custom Advanced lets you plug in anything - custom samplers, schedulers, guiders - but makes you wire up the noise, the guider, and the sampler by hand before you even get a picture. This node is the middle path: it's the descendant of efficiency-nodes' ksampler adv. (eff.), rebuilt on ComfyUI's native Sampler Custom Advanced so it keeps the one-node convenience but accepts custom samplers, sigmas, and guiders as inputs. Name says "Efficient," but "not stuck with the defaults" is the real selling point.
What you'd actually use it for
Every time you want a schedule or a sampler that isn't in the stock dropdown, this is the node. The pack's own README points at flowmatch scheduler for video models running LightX LoRAs - that's a custom SIGMAS feed, which stock KSampler can't take. Same story if you want to drive the sampler with a custom guider like this pack's ScheduledCfgGuider (higher CFG on the first steps, then drop it). And because it wraps Sampler Custom Advanced, it inherits support for nested tensors, which is what makes LTXV's combined latent work. For plain SDXL image generation the stock KSampler is honestly fine; you reach for this node when you're building something the stock node can't express.
How it works
It builds the whole sampling stack internally and hands it to ComfyUI's own SamplerCustomAdvanced. Random noise comes from Noise_RandomNoise seeded by noise_seed (or Noise_EmptyNoise if you turn add_noise off for second-pass sampling). Unless you plug a custom_guider in, it constructs a standard CFG guider from your positive and negative and your cfg. Same trick for the sampler: a custom_sampler input overrides the dropdown. Then it slices sigmas between start_at_step and end_at_step and runs.
The inputs that matter
sigmas- feed it the output of a custom scheduler node. This is the input that unlocks non-stock schedules.start_at_step/end_at_step- slice the sigma list to sample only part of the schedule. This is your multi-stage lever: run the high-noise portion here, then continue the low-noise part with another node.cfg- only used if nocustom_guideris connected.preview_method(auto,latent2rgb,taesd,vae_decoded_only,none) andvae_decode(true,true (tiled),false) - the built-in live preview and decode, courtesy of the efficiency-nodes lineage.positive/negative- technically optional, but here's the catch: with neither connected and no guider, sampling fails. And if you connect onlypositive, the node auto-generates a zeroed-out negative viaConditioningZeroOut- which is CFG 1 by definition, so the tooltip's advice to use "low cfg values" isn't a suggestion, it's a requirement.
The nine outputs are mostly pass-throughs: model, positive, negative, sampler, original sigmas (the unsliced sigmas - handy if a downstream node needs them), latent, denoised latent, images (populated only when vae_decode is on), and vae. The denoised latent is what you'd feed to a VAE decode or a second sampler pass.
Install
ComfyUI Manager, search "ComfyUI-MoreEfficientSamplers", or:
cd ComfyUI/custom_nodes
git clone https://github.com/GiusTex/ComfyUI-MoreEfficientSamplers.git
Restart ComfyUI. No pip dependencies, no model downloads - it's pure Python on top of ComfyUI's existing nodes.
Where people get burned
The most common trip: you set vae_decode to true but forget to connect a vae. The node just downgrades itself to false with a console warning - no error, which is either polite or infuriating depending on when you notice. The other classic is the CFG-1 trap above: if your custom_guider input is empty and you left negative disconnected, you might think you have a prompt and a CFG of 8, but the zeroed negative makes it 1. And if the node errors with "No guider input detected," that's the intended guard - connect a guider, or both conditionings. It's a fiddly node, but for video workflows where you're feeding custom sigmas or a scheduled guider, it's the one I actually reach for.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| sigmas | SIGMAS | — | |
| latent | LATENT | — | |
| add_noise | BOOLEAN | true | — |
| noise_seed | INT | 00–18446744073709550000 | — |
| sampler | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| use_cfg | COMBO | Using cfg will use CFGGuider, and ConditioningZeroOut will be passed as negative if no negative is provided. Disabling cfg will use BasicGuider, which requires only the positive | |
| start_at_step | INT | 00–10000 | — |
| end_at_step | INT | 100000–10000 | — |
| preview_method | COMBO | 5 options: auto, latent2rgb, taesd, vae_decoded_only, none | |
| vae_decode | COMBO | Automatically decodes the denoised image/video latent. -true: forces image/video decoding; -true (tiled): forces image/video decoding using tiles -false: disables video decoding. | |
| audio_decode | COMBO | Automatically decodes the denoised audio latent. -true: forces audio decoding; -true (tiled): forces audio decoding using tiles -false: disables audio decoding | |
| modelopt | MODEL | Required only if no guider is provided | |
| positiveopt | CONDITIONING | Not required if a guider is provided | |
| custom_guideropt | GUIDER | Custom guider to use instead of the default comfyui's CFG Guider. If no guider is connected, a positive and negative must be provided | |
| custom_sampleropt | SAMPLER | Custom sampler to use instead of the default comfyui samplers | |
| video_vaeopt | VAE | Required only for previews with "auto" option and vae_decode | |
| audio_vaeopt | VAE | Required only for vae_decode with models generating audio |
Outputs (11)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| sampler | SAMPLER | — |
| original sigmas | SIGMAS | — |
| latent | LATENT | — |
| denoised latent | LATENT | — |
| images | IMAGE | — |
| audio | AUDIO | — |
| video_vae | VAE | — |
| audio_vae | VAE | — |