Flux.2 Detailer Sampling Provider (Umbra)
Give your Flux.2 detail crops their own scheduler — not a one-size sampler
- model
- sampling_provider
Flux.2 is a flow-matching transformer, and flow-matching models don't sample like SDXL. They want no CFG, a simple guider, and sigmas built from their own scheduler - which is exactly what Flux.2 Detailer Sampling Provider (Umbra) hands to the Umbra image detailer: per-crop Flux.2-style sampling instead of forcing the region through a generic img2img pass.
If that sentence needs unpacking: when you run the Image Detailer without a provider, every crop gets sampled with the Impact Pack's classic detailer recipe. For a model family with a fundamentally different sampling math, that's leaving quality on the table. This node exists so each refined crop uses the sampling its architecture expects.
How it works
It builds a Flux2DetailerSamplingProvider - one of the four UMBRA_DETAILER_SAMPLING_PROVIDER types this pack exposes - and you plug its single output into the Image Detailer's sampling_provider input. When the detailer runs a stage, the provider takes over sampling for that crop:
- BasicGuider - the no-CFG guider Flux-style models use. There's no negative-prompt guidance term here, which is normal for these architectures; conditioning is a single positive stream.
- Flux2Scheduler sigmas - each crop gets sigmas computed from Flux.2's own resolution-aware scheduler, at the crop's actual width/height and step count (the
_resolution_sigmashelper preserves the requested denoise over the right number of steps). - Your sampler - the
sampler_namedropdown (44 samplers from ComfyUI's registry, defaulteuler) picks the sampler applied on top of those sigmas. Euler is the conventional Flux choice; thecfg_pp-suffixed variants are ComfyUI's recent predictor-adapted additions if you want to experiment.
Inputs: model (the Flux.2 model, loaded however you load it) and sampler_name. Output: sampling_provider, wired to Image Detailer.
How to use it
- Load your Flux.2 model/CLIP/VAE as usual.
- Add this node, feed it the model, pick a sampler.
- Add
Image Detailer (Umbra UI), wire image/model/clip/vae/positive/negative/seed, and connect this node'ssampling_providerinto the detailer'ssampling_providerinput. - Run. Each detail stage now samples its crop with Flux.2-native sigmas and guider.
Installing it
Part of Umbra-Nodes, the ComfyUI companion pack for Umbra Studio (NocturneLabs' open-source local AI suite). ComfyUI Manager → search "Umbra Nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/Nocturne-Ai-Labs/Umbra-Nodes
Restart ComfyUI. The detailer still needs Impact Pack + Impact Subpack and its detector/SAM model files (see the Image Detailer article for the exact list) - the provider replaces the sampling, not the detection machinery.
Gotchas
A provider wired in means the detailer's stage-level steps/cfg widgets still apply (they're part of the crop context), so a high CFG on the stage will fight the no-CFG guider design - keep the stage CFG low for Flux.2. Also, provider sampling is only used when sampling_provider is connected; unplug it and you silently fall back to the classic path, which can make results look different for reasons that are easy to forget. And this is a detailer provider, not a standalone sampler - it has no outputs to feed a main-pass KSampler.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| sampler_name | COMBO | euler | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| sampling_provider | UMBRA_DETAILER_SAMPLING_PROVIDER | — |