Nodes/BV Node Pack/πŸŒ€ BV Regional Prompt
ComfyUI Node

πŸŒ€ BV Regional Prompt

BV Regional Prompt

By BlackVortexAIΒ·Created 9 months agoΒ·Updated 3 days agoΒ· 7
πŸŒ€ BV Regional Prompt
  • resource_provider
  • resource_provider_1
  • resource_provider_2
  • resource_provider_3
  • resource_provider_4
  • resource_provider_5
  • resource_provider_6
  • resource_provider_7
  • resource_provider_8
  • resource_provider_9
  • resource_provider_10
  • resource_provider_11
  • resource_provider_12
  • resource_provider_13
  • resource_provider_14
  • resource_provider_15
  • resource_provider_16
  • resource_provider_17
  • resource_provider_18
  • resource_provider_19
  • resource_provider_20
  • detailer_resource_provider_1
  • detailer_resource_provider_2
  • detailer_resource_provider_3
  • detailer_resource_provider_4
  • detailer_resource_provider_5
  • detailer_resource_provider_6
  • detailer_resource_provider_7
  • detailer_resource_provider_8
  • detailer_resource_provider_9
  • detailer_resource_provider_10
  • detailer_resource_provider_11
  • detailer_resource_provider_12
  • detailer_resource_provider_13
  • detailer_resource_provider_14
  • detailer_resource_provider_15
  • detailer_resource_provider_16
  • detailer_resource_provider_17
  • detailer_resource_provider_18
  • detailer_resource_provider_19
  • detailer_resource_provider_20
  • lut_resource_provider_1
  • lut_resource_provider_2
  • lut_resource_provider_3
  • lut_resource_provider_4
  • lut_resource_provider_5
  • lut_resource_provider_6
  • lut_resource_provider_7
  • lut_resource_provider_8
  • lut_resource_provider_9
  • lut_resource_provider_10
  • lut_resource_provider_11
  • lut_resource_provider_12
  • lut_resource_provider_13
  • lut_resource_provider_14
  • lut_resource_provider_15
  • lut_resource_provider_16
  • lut_resource_provider_17
  • lut_resource_provider_18
  • lut_resource_provider_19
  • lut_resource_provider_20
  • lut_resource_provider_21
  • lut_resource_provider_22
  • lut_resource_provider_23
  • lut_resource_provider_24
  • lut_resource_provider_25
  • lut_resource_provider_26
  • lut_resource_provider_27
  • lut_resource_provider_28
  • lut_resource_provider_29
  • lut_resource_provider_30
  • lut_resource_provider_31
  • lut_resource_provider_32
  • lut_resource_provider_33
  • lut_resource_provider_34
  • lut_resource_provider_35
  • lut_resource_provider_36
  • lut_resource_provider_37
  • lut_resource_provider_38
  • lut_resource_provider_39
  • lut_resource_provider_40
  • canvas_image
  • regional
  • lora_bindings
β—„regional_json{"schema":"bv.regional","version":2,"document_id":"1bc110a6-c8ed-451e-9d40-bdc01d681211","title":"Regional Prompt","canvas":{"width":1024,"height":1024},"prompts":{"global":{"positive_source":"","negative_source":""},"background":{"positive_source":"","negative_source":""}},"negative_mode":"auto","overlap":{"mode":"joint"},"regions":[]}β–Ί
β—„lora_bindings_json{"schema":"bv.regional.lora_bindings","version":1,"document_id":"","global_stack_id":null,"regions":{}}β–Ί
β—„lora_v3_config_json{"version":3,"entries":[],"steps":[]}β–Ί
β—„detailer_v3_config_json{"version":1,"jobs":[]}β–Ί
β—„lut_v3_config_json{"version":1,"jobs":[]}β–Ί

If you've ever built a two-character image in ComfyUI the hard way - drawing masks by hand, wiring five conditioning nodes, and praying the subjects don't swap outfits - this is the node that ends that. BV Regional Prompt is the heart of the BV Node Pack's regional system: it's where you author the whole layout, and everything else in the regional family reads from what it outputs. Nothing else in the pack does anything until this node exists.

What it actually is

It's a container and an editor in one. The node's single input, regional_json, holds a serialized BV_REGIONAL document - the pack's model-neutral description of your canvas, your global and background prompts, and every region you've drawn with its geometry, strength, and overlap behavior. You don't hand-edit that JSON, though. Open the node's editor from the node itself or the BV toolbar action and you get a full artboard: draw rectangles, ellipses, polygons, or paint brush regions with additive and subtractive layers, set per-region prompts and strengths, reorder layers, and see a resolved binary-mask preview. It's the part of this pack that makes the "deep workflow tools" pitch real.

The key design decision is that the document is model-neutral. You author once, then pick a compiler node for whatever model you're actually running - Anima, SDXL, Z-Image Turbo, FLUX.2 Klein 9B, or a plain masked-conditioning path. The document doesn't care. That separation of authoring from execution is what lets the same layout be re-targeted without redrawing anything.

How it works

Inside the document you get a few moving parts worth understanding before you start dragging:

  • Global prompt - applies everywhere, the backbone of the image.
  • Background prompt - conditioned onto the pixels no region covers. On the attention backends, this is what stops the empty space from degrading into mush.
  • Regions - each has its own positive/negative prompt, geometry, and strength. Regions can overlap; the document currently executes overlap as joint, meaning overlapping pixels attend to every region that touches them. That helps characters interact; it doesn't force them to.
  • Region strength - dials how much influence a region's prompt has, separate from any attention-strength control on the compiler.

One honest warning before you get excited: the README is blunt that regional conditioning is spatial guidance, not a hard layout guarantee. A model can extend a subject past its region, shift an interaction, or blend attributes. The pack's own docs hammer this because people blame the node for what is really prompt+geometry physics. Draw clean geometry, keep region prompts focused, and treat the result as guided rather than promised.

Wiring it up

The node has one required input, regional_json, and one output, regional, which feeds any of the BV compilers: Native Conditioning, SDXL Attention, Z-Image Attention, FLUX.2 Klein 9B Attention, Krea 2 Attention, Anima Conditioning, Anima Adapter, or Color Control Image. Those output patched_model / positive / negative into a standard KSampler.

Install and the one gotcha

Search BV Node Pack in ComfyUI Manager, 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 hard refresh matters more than usual here: the pack ships a frontend extension (the editor), and if Python and JavaScript fall out of sync you'll see the node but the editor won't open. The pack has no pip requirements beyond ComfyUI core - no model downloads for this node itself, though the Anima LLLite node pulls external weights separately.

Troubleshooting

The editor not opening is almost always the stale-JS problem above; fix it with the hard refresh. If your regions render but the composition ignores them, check the compiler node's settings rather than the document - and remember attention-strength zero doesn't bypass a backend, it just hides regional slots. For a true A/B against an unpatched run, bypass the compiler entirely.

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

Inputs (87)

NameTypeDefaultDescription
regional_jsonSTRING{"schema":"bv.regional","version":2,"document_id":"1bc110a6-c8ed-451e-9d40-bdc01d681211","title":"Regional Prompt","canvas":{"width":1024,"height":1024},"prompts":{"global":{"positive_source":"","negative_source":""},"background":{"positive_source":"","negative_source":""}},"negative_mode":"auto","overlap":{"mode":"joint"},"regions":[]}β€”
lora_bindings_jsonoptSTRING{"schema":"bv.regional.lora_bindings","version":1,"document_id":"","global_stack_id":null,"regions":{}}β€”
lora_v3_config_jsonoptSTRING{"version":3,"entries":[],"steps":[]}β€”
detailer_v3_config_jsonoptSTRING{"version":1,"jobs":[]}β€”
lut_v3_config_jsonoptSTRING{"version":1,"jobs":[]}β€”
resource_provideroptBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_1optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_2optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_3optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_4optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_5optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_6optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_7optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_8optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_9optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_10optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_11optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_12optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_13optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_14optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_15optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_16optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_17optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_18optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_19optBV_RUNTIME_RESOURCE_PROVIDERβ€”
resource_provider_20optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_1optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_2optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_3optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_4optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_5optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_6optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_7optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_8optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_9optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_10optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_11optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_12optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_13optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_14optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_15optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_16optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_17optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_18optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_19optBV_RUNTIME_RESOURCE_PROVIDERβ€”
detailer_resource_provider_20optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_1optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_2optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_3optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_4optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_5optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_6optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_7optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_8optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_9optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_10optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_11optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_12optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_13optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_14optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_15optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_16optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_17optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_18optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_19optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_20optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_21optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_22optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_23optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_24optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_25optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_26optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_27optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_28optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_29optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_30optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_31optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_32optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_33optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_34optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_35optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_36optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_37optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_38optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_39optBV_RUNTIME_RESOURCE_PROVIDERβ€”
lut_resource_provider_40optBV_RUNTIME_RESOURCE_PROVIDERβ€”
canvas_imageoptIMAGEβ€”

Outputs (2)

NameTypeDescription
regionalBV_REGIONALβ€”
lora_bindingsBV_REGIONAL_LORA_BINDINGSβ€”