Nodes/BV Node Pack/πŸŒ€ BV Regional Detailer Mask
ComfyUI Node

πŸŒ€ BV Regional Detailer Mask

Detail a face without running a detector

By BlackVortexAIΒ·Created 8 months agoΒ·Updated a day agoΒ· 6
πŸŒ€ BV Regional Detailer Mask
  • regional
  • image
  • model
  • clip
  • vae
  • image
  • mask
  • basic_pipe
  • positive
  • negative
  • positive_text
  • negative_text
  • positive_weighted_text
  • negative_weighted_text
  • x
  • y
  • width
  • height
  • region_id
  • region_name
β—„regionβ–Ί
β—„global_influence1.00β–Ί
β—„background_influence0.35β–Ί
β—„primary_region_influence1.00β–Ί
β—„context_regions_json[]β–Ί

Detailers fix the one thing regional prompting can't: the small parts of a good generation that still come out mangled. A face that owns 70 pixels of a 1024px frame gets no model budget, no matter how well you conditioned it. The Impact Pack fixes that with detect-crop-rerender-paste, but its default reflex is to run a detector. BV Regional Detailer Mask says: you already know where the person is - you drew a region around them. Skip the detector, hand Impact a mask.

It's the bridge between the BV Node Pack regional document and Impact's MaskDetailer (pipe). It renders one named region to a mask, compiles the Global + Region prompts into fresh positive/negative conditioning, and packs the whole thing into an Impact-compatible BASIC_PIPE. Crucially, it does this without importing Impact or reproducing its internal SEGS structure - it's package-neutral, which keeps the dependency surface honest: BV doesn't vendor Impact, it just speaks its language.

The wiring that matters

The intended happy path is short. Connect your region's regional document, the single image, your MODEL, CLIP, VAE, and a region name, then take the three outputs Impact cares about and plug them straight into MaskDetailer (pipe):

  • image β†’ the detailer's image input
  • mask β†’ the mask input
  • basic_pipe β†’ the pipe input

No ToBasicPipe node required - that's already the (model, clip, vae, positive, negative) tuple. The positive/negative conditioning outputs also come out separately if you want to build a custom pass, and positive_text / negative_text (plus ComfyUI-weighted variants like (blue eyes:0.35)) let you inspect exactly what the detail pass is asking for.

Background prompts are intentionally excluded from the crop - the detail pass is about the subject. The influence controls set how much each scope contributes: global_influence defaults to 1.0, background_influence to 0.35, primary_region_influence to 1.0. Add context regions (other regions whose prompts contribute but don't expand the mask) via context_regions_json.

The gotchas, in order of how much they'll annoy you

Set the region's usage first. In the Regional Editor, each region has a Usage setting - Generation, Detailer only, or Generation + Detailer. A region set to plain Generation makes this node throw an explicit error, not a graceful empty mask. Set it to Detailer only if it's a detail target, or both if it also conditions the main pass.

Impact doesn't do batches. The node rejects any image with more than one frame, loudly. Feed it a single image.

Don't feed FaceDetailer directly. FaceDetailer has no external mask or SEGS input, so this bridge can't drive it. For faces, the README recommends the detector-gating path instead: feed your detector's SEGS and the BV mask into Pixelwise(SEGS & MASK), then Detailer (SEGS). The detector keeps precise face geometry while your BV region decides which person gets processed - the classic fix for a crowd scene. Other paths: MASK to SEGS β†’ Detailer (SEGS) for editable segment workflows, and one bridge per region, concatenated with Impact's label nodes, for multi-region detail passes.

Installing

Two packs, one command each:

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

(or search both in ComfyUI Manager). Restart and hard-refresh with Ctrl + F5 afterward. Impact's base pack has no mandatory extra dependencies for this path; if you want the Ultralytics detector gating, you'll also need Impact's detector subpack - but the whole point of this node is that you can often skip detection entirely.

CategoryπŸŒ€ BV Node Pack/regional/integrations/Impact Pack

Inputs (10)

NameTypeDefaultDescription
regionalBV_REGIONALβ€”
imageIMAGEβ€”
modelMODELβ€”
clipCLIPβ€”
vaeVAEβ€”
regionSTRINGβ€”
global_influenceFLOAT1.000–2β€”
background_influenceFLOAT0.350–2β€”
primary_region_influenceFLOAT1.000–2β€”
context_regions_jsonSTRING[]β€”

Outputs (15)

NameTypeDescription
imageIMAGEβ€”
maskMASKβ€”
basic_pipeBASIC_PIPEβ€”
positiveCONDITIONINGβ€”
negativeCONDITIONINGβ€”
positive_textSTRINGβ€”
negative_textSTRINGβ€”
positive_weighted_textSTRINGβ€”
negative_weighted_textSTRINGβ€”
xINTβ€”
yINTβ€”
widthINTβ€”
heightINTβ€”
region_idSTRINGβ€”
region_nameSTRINGβ€”