Doom Flux1 Sampler
Prompt in, latent out, shift handled for you
- model
- conditioning
- output
- denoised_output
Doom Flux1 Sampler is the pack's workhorse text-to-image node for FLUX.1 dev/schnell. It does in one purple node what a stock ComfyUI graph needs four or five nodes to do: build the empty latent, inject guidance into the conditioning, set up a resolution-aware timestep shift, and run the sampler. Feed it a model, a conditioning, a seed, and a size, and you get a latent out the other end that you decode with a plain VAEDecode.
The one thing it deliberately doesn't do is decide what's "prompt" for you - you still need a CLIP text encode (or the pack's DoomFlux1Loader_GGUFwan to supply the model + clip). But the sampling math, which is where beginners lose the most time, is a solved problem here.
How it works
The interesting mechanics are three:
Resolution-aware shift. Flux-family models use a shift on the timestep schedule to distribute sampling effort between structure and detail. This node computes it for you, interpolating linearly from base_shift (used at ~256px) up to max_shift (at ~4096px) based on megapixels. Defaults are 0.5 → 1.15, the sane range for Flux.1 - you basically never need to touch them, which is the point. See the shift discussion in the KB's concepts doc if you want the theory.
Guidance as an embedding, not CFG. The guidance input (default 3.5) isn't classifier-free guidance in the SD 1.5 sense. This sampler runs a single positive-only pass at CFG 1 - no negative prompt, no second model call - and injects guidance into the conditioning as the distilled guidance embedding Flux reads from the transformer. That's why there's no negative input here at all: for a guidance-distilled model like Flux dev, wiring up a negative prompt is wasted work.
Two latent outputs. output is the finished latent [B,4,H/8,W/8]. denoised_output is the x0 prediction - the model's clean estimate - which is useful for previews or if you're building a custom pipeline. Both decode through an external VAEDecode.
The inputs you actually set: model, conditioning, noise_seed, steps (20 is a fine dev default; 4-8 for schnell), width/height (step 8), sampler_name/scheduler (defaults euler/simple are correct for Flux), and guidance if you want to steer adherence. batch_size if you're farming seeds.
Installing it
The pack is the install unit:
cd ComfyUI/custom_nodes
git clone https://github.com/PeterMikhai/Doom_Flux_NodePack
Restart ComfyUI (or use ComfyUI Manager). No extra pip dependencies - everything rides on ComfyUI's own stack. The README still points at the renamed DoomAI_nodes.git; the current repo is Doom_Flux_NodePack. You'll need Flux.1 dev or schnell weights in diffusion_models, a CLIP pair, and the VAE.
Common issues
- This node needs a recent ComfyUI. It's written against the V3 backend API (
io.ComfyNode). On an old install it'll fail at load - update ComfyUI first. - "My negative prompt does nothing." Correct. There's no negative pass. If you genuinely need CFG-style negatives, this isn't the sampler for you - that's a different workflow.
- Blank/black output usually means you forgot the
VAEDecode- the outputs are latents, not images. - Guidance too high starts to over-saturate; Flux dev is happy in the 3-3.5 range. If images look burnt, drop it, don't crank it.
It's not fancy. It's the node you'd reach for when you want Flux.1 to just run without a seven-node sampler stack and without re-deriving the shift math.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | Flux.1 dev/schnell | |
| noise_seed | INT | 00–18446744073709550000 | — |
| steps | INT | 201–10000 | Шаги семплинга |
| sampler_name | COMBO | euler | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| scheduler | COMBO | simple | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 |
| conditioning | CONDITIONING | — | |
| guidance | FLOAT | 3.50–100 | CFG-направление (в conditioning как guidance) |
| max_shift | FLOAT | 1.150–100 | Макс. shift на 4096px |
| base_shift | FLOAT | 0.500–100 | Базовый shift на 256px |
| width | INT | 102416–16384 | — |
| height | INT | 102416–16384 | — |
| batch_size | INT | 11–4096 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| output | LATENT | Готовый латент [B,4,H/8,W/8] |
| denoised_output | LATENT | x0-прогноз (чистый латент) |