Nodes/BV Node Pack/πŸŒ€ BV Detailer Loop Start
ComfyUI Node

πŸŒ€ BV Detailer Loop Start

Where every BV regional detailer run begins

By BlackVortexAIΒ·Created 9 months agoΒ·Updated 3 days agoΒ· 7
πŸŒ€ BV Detailer Loop Start
  • detailer_plan
  • initial_image
  • flow
  • loop_state

If you're coming from Impact Pack's FaceDetailer, the BV Detailer Loop is the "do it for every region I drew, in order, with each region's own prompt" version. And BV Detailer Loop Start is the front door: you feed it a plan and the image you just generated, and it hands both to the loop. Nothing detects or samples here - this node is the loop's carrier, and the loop is the whole point of the pack's regional detailer feature.

The workflow shape this belongs to is simple: you author regions in BV Regional Prompt (the detailer or both usage types), BV Regional Detailer Plan turns those into an ordered job list, and this node starts walking that list. It's the first of exactly six nodes you place yourself; the rest of the machinery the loop needs is created for you at queue time.

How it works

Start packs your plan and initial image into a single BV_DETAILER_LOOP_STATE - a small struct that carries the immutable plan, a job_index (starting at 0), and the current image. Then it expands a hidden BV Detailer While Start (internal) node into the graph so ComfyUI executes the loop body. Every iteration after the first is fed by the processed image coming back from your detailer, which is how later regions start from a canvas that already had the earlier ones fixed.

The neat bit: only the Start, Job Resolver, Detect-to-SEGS, End, Plan, and Registry nodes are yours. The (internal) While/Advance/Result nodes are implementation details ComfyUI creates during recursive graph expansion. Don't hunt for them in the node menu - you won't find them, and you don't want them.

Inputs and outputs

Two inputs, and you'll set neither by hand:

  • detailer_plan (BV_DETAILER_PLAN) - straight from BV Regional Detailer Plan. This is the ordered job list.
  • initial_image (IMAGE) - the render you want to detail. Usually the output of your KSampler, decoded once.

Two outputs:

  • flow (FLOW_CONTROL) - a plain control wire. It goes to BV Detailer Loop End and tells the loop where the body closes.
  • loop_state (BV_DETAILER_LOOP_STATE) - the carrier. It goes to BV Detailer Loop Job Resolver, which unwraps the current job.

The tested wiring looks like this:

BV Regional Prompt ----------------> BV Regional Detailer Plan
BV Detector Registry --------------> BV Regional Detailer Plan
BV Regional Detailer Plan ---------> BV Detailer Loop Start
initial image (from KSampler) -----> BV Detailer Loop Start

BV Detailer Loop Start.flow        --> BV Detailer Loop End
BV Detailer Loop Start.loop_state  --> BV Detailer Loop Job Resolver

Installing it

BV Detailer Loop Start ships in BV Node Pack, so install the pack once and every node in this family appears together. Easiest route is ComfyUI Manager - search BV Node Pack and install. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/BlackVortexAI/bv_nodepack.git

Restart ComfyUI, then hard-refresh the browser with Ctrl+F5. That second step matters: the pack ships frontend extensions, and Python nodes plus stale JS is how you end up staring at a missing node. Update later with git pull inside the folder.

One real dependency: if any of your jobs use a detector, you need ComfyUI-Impact-Pack installed for the detector loading and the SEGS detailer path. Jobs without a detector work fine without it.

Common issues

  • "BV Detailer Loop requires at least one detailer job." Your plan has no eligible regions. In the Regional Editor, make sure at least one region's Usage is Detailer only or Generation + Detailer, and that it's enabled.
  • It refuses images with a batch. The loop is strictly single-image. Feed it B,H,W,C with batch 1, or split batches upstream - the Impact detailers it feeds can't take batches either.
  • The (internal) nodes show up in your graph. That's normal and expected during execution; it's recursive graph expansion doing its job. Leave them alone.

The takeaway: wire plan and image in, wire flow and loop_state out, and the loop handles the rest. The interesting decisions all happen one node downstream in the Job Resolver.

CategoryπŸŒ€ BV Node Pack/regional/detailer

Inputs (2)

NameTypeDefaultDescription
detailer_planBV_DETAILER_PLANβ€”
initial_imageIMAGEβ€”

Outputs (2)

NameTypeDescription
flowFLOW_CONTROLβ€”
loop_stateBV_DETAILER_LOOP_STATEβ€”