Doom Flux1 Sampler Advanced
Flux.1 img2img with step control and a 'dynamic CFG' that isn't quite
- model
- conditioning
- latent_image
- output
- denoised_output
Doom Flux1 Sampler Advanced is the sibling of the plain DoomFlux1Sampler, with one big difference: instead of building an empty latent from a width and height, it takes an existing latent as input and denoises it. That makes it the pack's img2img node for Flux.1 - VAE-encode a real image, plug the latent in here, and it re-samples it toward your conditioning. The pack's own img2img example workflow uses exactly this node.
It also adds three dials the base sampler doesn't have: start_at_step / end_at_step (a window of the schedule to run), denoise (how much of the original latent survives), and a pair of CFG values that the README describes as a ramp from cfg_start to cfg_end.
How it works
The pipeline is straightforward: it takes your input latent_image, mixes it with noise according to denoise (latent * (1-denoise) + noise * denoise), slices the sigma schedule to your start_at_step/end_at_step window, and samples. The two latent outputs are the usual output and denoised_output (the x0 prediction), both to be decoded externally.
Now, the honest caveat. The README and the node description sell cfg_start → cfg_end as a dynamic CFG that ramps over the sampling run. In the current code, it doesn't. The sampler runs a single positive-only pass at CFG 1 (like every sampler in this pack), and the only value that actually reaches the model is cfg_start, which is injected as the guidance embedding - the distilled guidance Flux reads from conditioning, not classic classifier-free guidance. cfg_end is accepted as an input and then never used. So treat this as a guidance-setting node plus a step-window node, and don't expect an interesting CFG curve. It's a small dishonesty in the docs, not a broken node - the img2img mechanics work well.
The shift handling is the same as the base sampler: max_shift/base_shift (defaults 1.15/0.5) are resolved from the latent's dimensions automatically.
Inputs you'll actually touch: latent_image (from a VAEEncode), conditioning, denoise (1.0 = full resample; ~0.4-0.6 keeps more of the original), start_at_step/end_at_step, steps, noise_seed, and cfg_start for adherence. There's no negative input - it's a single-pass CFG-1 sampler.
Installing it
Same pack, same story:
cd ComfyUI/custom_nodes
git clone https://github.com/PeterMikhai/Doom_Flux_NodePack
Restart, or install via ComfyUI Manager. No extra dependencies. Requires a recent ComfyUI (V3 io.ComfyNode API). The README's DoomAI_nodes.git clone line is stale - the repo is now Doom_Flux_NodePack.
Common issues
- Forgetting to encode the image first. This node wants a LATENT. Drop a
VAEEncodebetween your image andlatent_image. - "I set cfg_end and nothing changed." Known.
cfg_endisn't wired into the current version. Set your guidance withcfg_startand move on. - Denoise 1.0 with a tiny input latent effectively ignores the input image. If you're doing gentle edits, lower
denoise- that's the main lever for "keep the original but change X." - Old workflows with
start_at_stepset from a prior ComfyUI version - the semantics (slice the sigma schedule) are stable; just double-check the window isn't empty, because an empty window short-circuits to a passthrough.
It's the node to grab when your Flux.1 work is "change something about this existing image, controlled and deliberate" rather than "dream a fresh one."
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| 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 | — | |
| latent_image | LATENT | Входной латент (например от img2img) | |
| start_at_step | INT | 00–10000 | — |
| end_at_step | INT | 100000–10000 | — |
| denoise | FLOAT | 1.000–1 | — |
| cfg_start | FLOAT | 7.00–100 | CFG на старте |
| cfg_end | FLOAT | 3.00–100 | CFG в конце |
| max_shift | FLOAT | 1.150–100 | — |
| base_shift | FLOAT | 0.500–100 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| output | LATENT | — |
| denoised_output | LATENT | — |