Nested Detailer (full-pipe)
The two-pass face-and-eyes fixer that plays nice with pipes
- full_pipe
- full_pipe
- image
- detailed_faces
If you're building a mudknight-utils workflow around the full-pipe convention, this is the detailing node that slots in without breaking the chain. It's the pipe version of Nested Detailer: one full_pipe in, a pipe with a detailed image out, no need to wire model, VAE, conditioning, and seed individually.
The mechanism is the hierarchical two-pass detail loop that makes Nested Detailer worth reaching for. First a YOLO detector finds faces and runs a sampling pass on them at ~1MP, then a second detection runs inside the freshly detailed face to find eyes and gives them their own pass - all before compositing back to the original. Because FastDetailer-style nodes always scale crops to 1MP, doing the eye pass on the already-scaled face crop keeps the eye detail intact instead of losing it to a downscale in between. The pack author's docs put it plainly: upscale → sample → downscale → upscale → sample → downscale is wasteful, and this node skips the middle.
The inputs that matter
The full_pipe carries your image, model, VAE, conditioning, and seed - so the node's required inputs are just the three detectors (face_model, eyes_pair_model, eye_single_model), the shared threshold, and the two sampling groups. face_steps / face_denoise / face_scale control the face pass; eye_steps / eye_denoise / eye_scale control the eye pass. face_scale and eye_scale default to 1.5 (how much the crop is upscaled before sampling), max_megapixels caps the crop size at 1.5MP by default, and feather / context_padding govern the blend back into the original.
Outputs are full_pipe (image written back in), image (the composite, for direct preview), and detailed_faces (the eye-detailed face crops, handy for confirming the second pass actually found eyes).
One trap: since the image comes from the pipe, the node errors if the pipe has no image in it. Make sure a FullPipeIn or a loader put one there before this node runs.
Installing it
Same requirements as every detailer in this pack: ComfyUI Manager (search comfyui-mudknight-utils) or:
cd ComfyUI/custom_nodes
git clone https://github.com/mudknight/comfyui-mudknight-utils
plus ComfyUI-Impact-Pack and ComfyUI-Impact-Subpack installed, because the YOLO detection runs on Impact's UltralyticsDetectorProvider. Without the Subpack you won't have the detector models, and the node will sit there doing nothing.
Where people get burned
It's two full sampling passes per render, so it's the priciest node in this pack's detailer family - on modest GPUs, budget for it. And the usual detail-pass caveat applies harder here: eye-level improvement is often invisible at normal viewing size, so use this node when eyes are actually broken, not as a default "make it better" button. If you only need faces, the single-pass FastDetailer full-pipe node costs half the GPU time and you won't miss the eyes on most renders.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| full_pipe | FULL_PIPE | — | |
| face_model | COMBO | 1 options: bbox/face_yolov8m.pt | |
| eyes_pair_model | COMBO | 1 options: bbox/face_yolov8m.pt | |
| eye_single_model | COMBO | 1 options: bbox/face_yolov8m.pt | |
| threshold | FLOAT | 0.500–1 | Detection threshold for all models |
| cfg | FLOAT | 1.50–100 | — |
| sampler | COMBO | euler_ancestral_cfg_pp | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| scheduler | COMBO | align_your_steps | 10 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +4 |
| face_steps | INT | 201–10000 | — |
| face_denoise | FLOAT | 0.400–1 | — |
| face_scale | FLOAT | 1.50.1–2 | Amount to upscale cropped region before sampling. Higher values create more detailed images. |
| eye_steps | INT | 201–10000 | — |
| eye_denoise | FLOAT | 0.400–1 | — |
| eye_scale | FLOAT | 1.50.1–2 | Amount to upscale cropped region before sampling. Higher values create more detailed images. |
| upscale_method | COMBO | 5 options: lanczos, bilinear, bicubic, area, nearest-exact | |
| max_megapixels | FLOAT | 1.50.1–10 | Maximum size in megapixels for upscaled images |
| feather | FLOAT | 0.200–1 | Percentage of image to feather when uncropping |
| context_padding | FLOAT | 0.100–1 | Percentage of image to use for context from edge |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| full_pipe | FULL_PIPE | — |
| image | IMAGE | — |
| detailed_faces | IMAGE | — |