Nodes/comfyui_bmab/BMAB Person Detailer
ComfyUI Node

BMAB Person Detailer

A detail pass for whole bodies, not just faces

By portu-sim·Created 2 years ago·Updated 8 months ago· 124
BMAB Person Detailer
  • bind
  • image
  • lora
  • BMAB bind
  • image
steps20
cfg_scale8.0
sampler_name
scheduler
denoise0.40
upscale_ratio4.00
dilation_mask3
large_person_area_limit0.10
limit1

Most detailer nodes fix one thing - a face, a hand. This one detects entire people and redraws them, which is the right tool when your problem isn't a specific body part but a whole figure that's too small in frame to hold up: distant subjects in a group shot, someone standing far back in a landscape composition, that kind of thing. Same underlying idea as a face detailer - detect, crop, resample at real resolution, paste back - just aimed at a bigger, coarser region.

How it fits the pipeline

Like the rest of BMAB's detailer family, this node takes a bind (the packaged model/clip/vae/prompt/seed bundle that comes out of a BMAB Integrator node) and returns an updated bind plus the reworked image. There's no annotation output here, unlike the hand detailers - you don't get a visual of what got detected, so if a pass seems to do nothing, your first move is checking whether anyone in frame actually cleared the detection threshold rather than hunting for a debug image that doesn't exist.

The inputs worth understanding

steps, cfg_scale, sampler_name, and scheduler behave the same as everywhere else in BMAB - the sampler and scheduler dropdowns default to "Use same sampler" / "Use same scheduler," so unless you override them, this pass inherits whatever's set upstream. The parameters unique to this node are the interesting ones:

  • upscale_ratio (1-8, default 4) - how much the cropped person gets scaled up before the redraw pass. This is the actual detail-recovery mechanism: a person occupying a tiny slice of your frame gets blown up 4x, sampled, then scaled back down and composited in.
  • large_person_area_limit (default 0.1) - a sanity cutoff. If a detected person already fills more than this fraction of the frame, they're skipped rather than "detailed," because someone already taking up 30% of the image doesn't need a resolution boost and redrawing them risks changing who they look like.
  • limit (0-20, default 1) - the max number of people to detail per run. Leave it at 1 if you just want the subject fixed; raise it for group shots where several people are undersized.
  • denoise (default 0.4) and dilation_mask - the usual redraw strength and mask-growth controls.

There's also an optional lora input for applying a LoRA to just this pass, and optional image if you want to feed a different image than what's carried in the bind.

Installing it

ComfyUI Manager: search comfyui_bmab, install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/portu-sim/comfyui_bmab.git
cd comfyui_bmab
pip install -r requirements.txt

The README also asks for two companion packs to be installed the same way - comfyui_controlnet_aux (Fannovel16) and ComfyUI_IPAdapter_plus (cubiq) - "a total of three custom nodes," in its own words. This node doesn't call either directly, but BMAB as a whole expects them present.

Where this trips people up

The large_person_area_limit default of 0.1 is easy to misread as a minimum rather than a maximum - it actually excludes people who are already big enough, so if you're trying to detail your one clearly-visible main subject and nothing's happening, check that they aren't simply too large in frame for the limit as set. The other common miss is limit: with several people in a scene and limit left at 1, BMAB is only detailing whichever one detection ranks first, and there's no ordering control exposed here the way BMAB Face Detailer offers (its order parameter picks left/right/center/score). If you need a specific person prioritized in a crowd, you're better off with a manually masked pass or a higher limit and accepting all detected subjects get touched.

CategoryBMAB/detailer

Inputs (12)

NameTypeDefaultDescription
bindBMAB bind
stepsINT200–10000
cfg_scaleFLOAT8.00–100
sampler_nameCOMBO45 options: Use same sampler, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39
schedulerCOMBO10 options: Use same scheduler, simple, sgm_uniform, karras, exponential, ddim_uniform, +4
denoiseFLOAT0.400–1
upscale_ratioFLOAT4.001–8
dilation_maskINT33–20
large_person_area_limitFLOAT0.100.01–1
limitINT10–20
imageoptIMAGE
loraoptBMAB lora

Outputs (2)

NameTypeDescription
BMAB bindBMAB bind
imageIMAGE