Flux Sampler
One node that bundles the whole Flux sampling stack
- model
- conditioning
- latent_image
- latent
If you've ever built a Flux workflow the "proper" way, you know the sampling end is a little rat's nest: SamplerCustomAdvanced, a BasicScheduler, a KSamplerSelect, a BasicGuider, a Noise node, all wired together just to get one image out. The Flux Sampler collapses all of that into a single node. Model in, conditioning in, latent in, one latent out. That's the pitch, and it's a good one if you just want to generate without babysitting five plumbing nodes.
It's not doing anything exotic under the hood - it wraps the same advanced sampling path Flux needs, pre-wired with only the pieces that make sense for Flux. Fewer knobs, fewer ways to get it wrong.
How it works, and the constraints baked in
Flux Dev is guidance-distilled, which means the classic CFG-with-a-negative-prompt mechanism isn't there anymore - you steer with a FluxGuidance value on your positive conditioning instead. This node leans into that: CFG is fixed at 1, and it takes positive conditioning only. There's no negative input because on Dev there's nothing for a negative to act through. If you were hunting for the negative slot, that's why it's missing - it's correct, not broken.
The sampler_name and scheduler dropdowns are filtered to the ones that actually behave on Flux. The community baseline is Euler with a Simple or Normal scheduler; this node defaults to Euler with the beta scheduler, which is a solid Flux choice. Pick the wrong sampler/scheduler on Flux and you get muddy, blurred output - the filtered list is here to stop that.
The inputs and outputs that matter
model,conditioning,latent_image- the three connections. Conditioning is your positive prompt (with FluxGuidance already applied upstream if you want a specific guidance value).steps- defaults to 30. Flux likes 20-30 for quality; 15 is about the floor.denoise- 1.0 for a fresh generation, lower it for img2img-style partial denoise.sampler_name/scheduler- leave at euler/beta unless you have a reason.
The single output is latent, which goes into your VAE Decode. One wire out, done.
Important compatibility note straight from the author: feed it the SD3 Empty Latent Image node, not the regular Empty Latent Image. The normal one isn't compatible with the Flux latent path. Pair it with the pack's Flux Resolution Calculator for the width/height and you've got a clean front-to-back Flux setup.
How to install it
ComfyUI Manager → search ControlAltAI Nodes → install → restart. Or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/gseth/ControlAltAI-Nodes
and restart. No extra downloads for this node - it's just Python wrapping ComfyUI's own samplers.
Common issues
Most "it's not working" reports trace back to the empty latent: use SD3's, not the standard one. After that, the usual Flux gotchas apply and none of them are the node's fault - blurry output means wrong sampler/scheduler (go euler/simple), and washed-out or over-baked results mean your FluxGuidance is off (the default 3.5 is on the high side; many people run lower).
The honest take: this node is convenience, not capability. It won't sample anything the manual node chain can't. But if you build a lot of Flux graphs, never rewiring that five-node cluster again is worth the install on its own.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| conditioning | CONDITIONING | — | |
| latent_image | LATENT | — | |
| sampler_name | COMBO | euler | 14 options: euler, heun, heunpp2, dpm_2, lms, dpm_adaptive, +8 |
| scheduler | COMBO | beta | 5 options: simple, normal, sgm_uniform, ddim_uniform, beta |
| steps | INT | 301–10000 | — |
| denoise | FLOAT | 1.000–1 | — |
| noise_seed | INT | 1432202759755940–18446744073709550000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | — |