Fooocus preDetailerFix
The detailer's control room, twenty knobs deep
- pipe
- bbox_segm_pipe
- sam_pipe
- optional_image
- pipe
The Fooocus detailerFix node rescues faces, but it doesn't decide how. This node decides. Fooocus preDetailerFix is the settings side of the pack's detailing pipeline - all the knobs that control what gets detected, how it's cropped, and how the fix pass samples - packaged as a config node whose output pipe feeds the detailerFix node. If you've used Impact Pack's FaceDetailer, this will feel like old friends with worse names.
What it configures
- guide_size (384) and max_size (1024) - the crop sizing: how big the detected region is brought up to before the fix pass, and the ceiling. Higher guide_size = more resolution on the face, slower runs.
- denoise (0.5) - the big one. How much the fix pass rewrites the detected region. 0.3–0.4 keeps it subtle and style-matched; higher changes the face more. This is the dial to reach for when fixes look wrong.
- steps (20), cfg (8), sampler_name, scheduler - the fix pass's own sampling settings, independent of your main generation.
- feather (5) - edge blending in pixels, so the fixed region doesn't show a seam. Raise it if you see a border.
- noise_mask (on), force_inpaint (on), drop_size (10) - inpainting mechanics for the patch. Leave them on; this is the same masked-inpaint logic the pack uses elsewhere.
- wildcard - an optional prompt template (Impact Pack's
{a|b|c}syntax works) so the fix pass can vary its prompt per run. - cycle (1) - how many fix passes to run. More cycles = more refinement, more risk of the face drifting into plastic.
- seed - reproducibility for the fix pass.
Then the two inputs that wire the pipeline together:
- bbox_segm_pipe - from the Fooocus ultralyticsDetectorPipe; this is what finds the face.
- sam_pipe - from the Fooocus samLoaderPipe; the segmentation model for precise masking.
- optional_image - run the fix on a specific image instead of the pipe's current one.
Output: pipe, ready for the detailerFix node to execute.
Installing
Pack install: ComfyUI Manager, search "Fooocus Nodes", or clone the repo. The expensive part is upstream - the detector and SAM pipes pull YOLO and SAM weights on first use, multi-gigabyte downloads if you haven't got them. And one security note worth carrying forward: this detector ecosystem runs on Ultralytics, the package that shipped a cryptominer via a compromised release in December 2024. Keep the pack's deps updated and stay off random detector packages.
The honest take
Twenty inputs looks like a lot, but it's really the standard detect-crop-refine recipe that ADetailer and FaceDetailer use, just laid flat. If you only touch two things, make them denoise (face changes too much? lower it) and guide_size (face still blurry after the fix? raise it). Most of the rest is set-and-forget. The most common beginner mistake is forgetting the whole chain: preDetailerFix configures, but nothing happens until a detailerFix node consumes its pipe with a detector wired in.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| pipe | PIPE_LINE | — | |
| guide_size | FLOAT | 38464–16384 | — |
| guide_size_for | BOOLEAN | true | — |
| max_size | FLOAT | 102464–16384 | — |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 201–10000 | — |
| cfg | FLOAT | 8.000–100 | — |
| sampler_name | COMBO | 34 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +28 | |
| scheduler | COMBO | 9 options: normal, karras, exponential, sgm_uniform, simple, ddim_uniform, +3 | |
| denoise | FLOAT | 0.500.0001–1 | — |
| feather | INT | 50–100 | — |
| noise_mask | BOOLEAN | true | — |
| force_inpaint | BOOLEAN | true | — |
| drop_size | INT | 101–16384 | — |
| wildcard | STRING | — | |
| cycle | INT | 11–10 | — |
| bbox_segm_pipeopt | PIPE_LINE | — | |
| sam_pipeopt | PIPE_LINE | — | |
| optional_imageopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pipe | PIPE_LINE | — |