Detail Daemon Sampler GUI
The Detail Daemon Sampler GUI
- sampler
- sigmas
- sampler
- sigmas
Detail Daemon is one of the few detail tricks that actually works on Flux and Z-Image - the flow-matching models where cranking CFG or stacking sharpening filters just makes things worse. And the GUI version is the one you'll want, because it replaces the pack's nine blind sliders with a live schedule graph you drag with your mouse. Same sampler underneath, picture on top.
What it is
The Detail Daemon Sampler GUI is a ComfyUI port of muerrilla's sd-webui-Detail-Daemon, repackaged with an interactive graph you edit by hand. Where ADetailer fixes detail by detecting and inpainting a region (usually a face), this is a completely different game: it never touches your image directly, it tweaks the sampling schedule so the model simply leaves more fine detail behind. It shines on Flux, Z-Image, and Qwen, and it works on SDXL and SD1.5 too - just with much smaller settings.
How it works
The node wraps whatever sampler you feed it. At each denoising step it computes a multiplier for the current sigma, then passes a reduced sigma to the model - the code effectively does adjusted_sigma = sigma * max(1e-06, 1 - adjustment * 0.1 * cfg_scale). The noise injected at each step stays exactly the same; only the amount of noise removed shrinks. Less noise removed per step, more detail left in. Big shapes form in the early steps and fine detail in the late ones, so the curve's shape decides what kind of detail you're boosting. Push it too far and you get the pack's signature failure: an oversharpened, HDR-look image.
This is the right lever for flow-matching models because their near-straight trajectories hate aggressive schedule reshaping - Karras and exponential schedules fail across the board on Z-Image Turbo, per the community sweeps. Detail Daemon does a mild, targeted redistribution in the middle steps instead, which those models tolerate fine.
Wiring it up
This node is the one thing people trip on: it needs both sampler and sigmas connected, because the graph has to draw something. Wire a sampler (say KSamplerSelect) into sampler, and a scheduler (like BasicScheduler) into sigmas. It outputs the wrapped sampler followed by the unchanged sigmas - feed both into a SamplerCustomAdvanced (sampler port and sigmas port respectively).
That's also the main gotcha: Detail Daemon only works through custom sampler nodes. Stock KSampler won't let you insert a wrapped sampler. Either build a SamplerCustomAdvanced chain or register a preset with BlehSetSamplerPreset from ComfyUI-bleh so it shows up in the KSampler dropdown.
The knobs that matter
The graph handles map directly onto widgets, so you mostly won't type these numbers:
- Blue start handle →
start(0.2 default, rec 0.1–0.5) andstart_offset(leave alone) - Yellow peak handle →
bias(0.5) anddetail_amount, the main event: 0.1–1.0 or higher on Flux/Z-Image, under 0.25 on SDXL, negative to decrease detail - Red end handle →
end(0.8 default, rec 0.5–0.9) andend_offset(leave alone) - Purple
Ehandles →exponent(1; 0 = no curvature, 1 = smooth curve)
Double-click the graph to reset everything. The x-axis is normalized 0–100%, so the graph renders before you queue and ignores whatever step count the workflow actually uses. cfg_scale_override defaults to 0, meaning the sampler auto-reads the model's CFG; the adjustment scales with CFG, so if your workflow runs at CFG 3.5, set the override to match.
Install
ComfyUI Manager → search "Detail Daemon", or:
cd ComfyUI/custom_nodes
git clone https://github.com/Jonseed/ComfyUI-Detail-Daemon
then restart ComfyUI. The only real dependency is matplotlib (pulled from the pack's requirements), which most ComfyUI installs already have - and it's only there to power the graph.
Start at detail_amount around 0.3 on Flux, leave everything else at defaults, and drag the yellow handle up until you see it - then back off one notch. The default curve is conservative for a reason.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| sampler | SAMPLER | — | |
| sigmas | SIGMAS | — | |
| detail_amount | FLOAT | 0.10-5–5 | — |
| start | FLOAT | 0.200–1 | — |
| end | FLOAT | 0.800–1 | — |
| bias | FLOAT | 0.500–1 | — |
| exponent | FLOAT | 1.000–10 | — |
| start_offset | FLOAT | 0.00-1–1 | — |
| end_offset | FLOAT | 0.00-1–1 | — |
| fade | FLOAT | 0.000–1 | — |
| smooth | BOOLEAN | true | — |
| cfg_scale_override | FLOAT | 0.00–100 | If set to 0, the sampler will automatically determine the CFG scale (if possible). Set to some other value to override. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| sampler | SAMPLER | — |
| sigmas | SIGMAS | — |