Nodes/ComfyUI-WebUI-Prompt-Bridge/WebUI Bridge Apply ADetailer
ComfyUI Node

WebUI Bridge Apply ADetailer

WebUI Bridge Apply ADetailer

By dianfangsihuo·Created 3 months ago·Updated 6 days ago· 39
WebUI Bridge Apply ADetailer
  • image
  • model
  • clip
  • vae
  • positive
  • negative
  • bbox_detector
  • segm_detector
  • sam_model
  • detailer_hook
  • image
  • mask
  • status
module_config
guide_size512
max_size1024
seed0
steps20
cfg8.0
sampler_nameeuler
schedulernormal
bbox_dilation10
bbox_crop_factor3.0
drop_size10
noise_masktrue
force_inpainttrue
wildcard

Small faces are a structural problem, not a model defect. A face that takes up 80 pixels of a 1024px render gets 80 pixels' worth of latent budget, so it comes out a smear no matter how good your checkpoint is. The fix - detect the face, crop it, re-render that crop at full resolution, paste it back - is what ADetailer did for WebUI and what FaceDetailer does in ComfyUI. WebUI Bridge Apply ADetailer is this pack's one-node entry point to that loop, and it saves you the wiring.

It's the node that actually runs the detail pass. The Bridge's main node collects ADetailer settings in its module_config output; this node reads them, builds the full FaceDetailer call, and hands you the fixed image. If you've ever assembled FaceDetailer by hand - detector, SEGS, paste, plus a dozen sampler knobs - you know what this is collapsing into one box.

How it works

Under the hood it calls Impact Pack's FaceDetailer - the same detect-crop-refine-paste machinery, not a reimplementation. That's the first gotcha: this node is a wrapper, so you need Impact Pack installed or it errors immediately.

It pulls model, confidence, denoise, mask_blur, cycles and the detail prompt/negative-prompt from the adetailer section of module_config. If you don't wire a bbox_detector yourself, it auto-loads the YOLO detector through Impact Subpack's UltralyticsDetectorProvider, using whatever model name is in the config - face_yolov8m.pt, hand_yolov8s.pt, person_yolov8n-seg.pt, and so on. That auto-load path is why it needs the Subpack too.

Inputs and outputs that matter

The inputs you actually touch, beyond module_config:

  • image - the render you want fixed.
  • model, clip, vae, positive, negative - the full sampling chain, same as any detailer.
  • guide_size / max_size - target resolution for the crop. 512/1024 defaults are fine for faces.
  • seed, steps, cfg, sampler_name, scheduler - the sampler for the detail pass itself.
  • bbox_dilation - how much padding around each detected box. Too tight and you clip the jawline.
  • wildcard - a place to override the prompt per run; leave empty to use the config's.

Optional bbox_detector, segm_detector, sam_model and detailer_hook let you substitute your own detection stack if the auto-load isn't what you want. Outputs are image (the refined result), mask (the region it touched) and status - a string explaining which detector and settings were used. When the module is disabled, it just passes the image through.

How to install

It ships with the pack: ComfyUI-Manager → ComfyUI WebUI Prompt Bridge, or clone into custom_nodes. But the real install step is the dependency. The pack can pull Impact Pack and Impact Subpack for you via its settings, or you install them yourself:

cd ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack.git
git clone https://github.com/ltdrdata/ComfyUI-Impact-Subpack.git

Restart ComfyUI after both. The YOLO weights (face_yolov8m.pt etc.) get handled by the pack's detector auto-load, and Ultralytics models download on first use.

Common issues

Missing Impact Pack or Subpack is the #1 failure - you'll get an error naming FaceDetailer or UltralyticsDetectorProvider. If the auto-loaded detector never seems to trigger, check module_config actually contains an adetailer section with a real model name (the main node's module_adetailer_model dropdown). And one design choice worth knowing: setting the confidence threshold too high makes it skip faces entirely; the 0.3 default is a good middle ground. The Ultralytics dependency is AGPL-licensed and has a demonstrated supply-chain incident behind it, so if you're shipping commercial work you may prefer to wire in a MediaPipe-based or ONNX detector manually instead of using the auto-load path.

Categoryconditioning/webui/modules

Inputs (24)

NameTypeDefaultDescription
imageIMAGE
modelMODEL
clipCLIP
vaeVAE
positiveCONDITIONING
negativeCONDITIONING
module_configSTRING
guide_sizeFLOAT51264–16384
max_sizeFLOAT102464–16384
seedINT00–18446744073709550000
stepsINT201–10000
cfgFLOAT8.00–100
sampler_nameCOMBOeuler44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBOnormal9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
bbox_dilationINT10-512–512
bbox_crop_factorFLOAT3.01–100
drop_sizeINT101–16384
noise_maskBOOLEANtrue
force_inpaintBOOLEANtrue
wildcardSTRING
bbox_detectoroptBBOX_DETECTOR
segm_detectoroptSEGM_DETECTOR
sam_modeloptSAM_MODEL
detailer_hookoptDETAILER_HOOK

Outputs (3)

NameTypeDescription
imageIMAGE
maskMASK
statusSTRING