Donut Detailer (DEPRECATED)
Not that kind of detailer — a per-block model patch in a detailer's clothing
- model
- MODEL
Let's get the naming problem out of the way, because it will bite you: this is not an ADetailer-style detailer. It doesn't detect faces, it doesn't crop and re-inpaint anything, it doesn't touch a mask. The Impact Pack FaceDetailer does that. This node is a model patch - it reaches into the UNet's weights, multiplies a few blocks' weights and biases by a factor you set, and hands you back a modified model that draws "more detailed" (or less) from then on. Same word, completely different mechanism. If you typed "Donut Detailer" into Google because a face came out mushy, you want the Impact Pack; if you want to tune how strongly a checkpoint renders fine detail at the weight level, you're in the right place.
The inputs are nine floats in three groups, each group a Scale, Weight, and Bias for a specific block region:
Scale_in/Weight_in/Bias_in- the first input block (input_blocks.0.0), the entry conv that the latent noise first hits.Scale_out0/Weight_out0/Bias_out0- the first output block (out.0).Scale_out2/Weight_out2/Bias_out2- the third output block (out.2).
How the math works
The node clones your model, then for each of those three regions computes a weight multiplier and a bias multiplier from the three knobs. For the input block, weight gets 1 - Scale * Weight and bias gets 1 + Scale * Bias; the output regions use slightly different formulas. The result is applied through ComfyUI's patch system as a delta - to multiply a tensor by M, it adds original * (M-1), which is how you get a per-block gain without permanently editing the file on disk.
The effect is a boost or dampening of the very first and last stages of the denoiser, which is where local high-frequency detail lives. Turn Scale up on a block and you get crisper structure; turn it negative and the model goes softer. It's a one-shot tuner, applied at model-load time, and it affects every image that model produces.
A note from the defaults: the node ships with Scale_in at 1.0 but Weight_in at 0.0 - so at stock settings it does nothing. That's intentional; this is a tool you're supposed to dial in, not a magic detail button.
The honest verdict
As a standalone, this node is a fork in the road that's been paved over. It's marked DEPRECATED in the pack - still registered so old workflows load, but hidden from the Add Node menu. Its three formulas (this one plus "Donut Detailer 2" and "Donut Detailer 4") were merged into a single DonutDetailerUnified node that lets you pick which formula you want. The current, non-deprecated version to reach for is that one, or Donut Detailer XL Blocks if you want per-block control across all 20 SDXL block groups instead of just these three regions.
If a downloaded workflow references Donut Detailer, don't panic - it still runs fine. But for new graphs, use the Unified node. And if what you actually wanted was to fix a blurry face, close this tab and go look at the Impact Pack.
Install: ComfyUI Manager → DonutNodes, or git clone the repo into custom_nodes/ and pip install -r requirements.txt with the same Python as ComfyUI. No model downloads, no extra files. Because it patches weights at load time, remember to re-run the whole graph after changing a value - a changed slider does not retroactively fix the image sitting in your viewer.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| Scale_in | FLOAT | 1.000-100–100 | — |
| Weight_in | FLOAT | 0.000-10–10 | — |
| Bias_in | FLOAT | 0.000-10–10 | — |
| Scale_out0 | FLOAT | 1.000-100–100 | — |
| Weight_out0 | FLOAT | 0.000-10–10 | — |
| Bias_out0 | FLOAT | 1.000-10–10 | — |
| Scale_out2 | FLOAT | 1.000-100–100 | — |
| Weight_out2 | FLOAT | 0.000-10–10 | — |
| Bias_out2 | FLOAT | 1.000-10–10 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |