π BV Regional Prompt Extract
Get a region's actual prompt text out, without the JSON archaeology
- selection
- positive_ast
- positive_text
- positive_source
- negative_ast
- negative_text
- negative_source
Here's a workflow question you'll hit five minutes after your first regional image: "I know I typed the left character's prompt in the editor - how do I get that exact text into a display node, a text editor, or an LLM rewrite pass?" The document holds it, but you don't want to go spelunking through regional_json. BV Regional Prompt Extract is the node that pulls a selected slice's prompt out as structured AST, plain text, and raw source - six outputs, one input.
It's the slightly leaner sibling of BV Regional Deconstructor: same idea, focused purely on the prompt representations, no selected_id/selected_name outputs and no selection passthrough. If you want the selection object too, use Deconstructor; if you just want the prompt text, this is the one with fewer ports to stare at.
How it works
One input: selection, the BV_REGIONAL_SELECTION you get from BV Regional Select. You pick the slice there - global, background, or one named region - then feed the selection in here. Outputs are the same six every regional prompt exposes:
positive_ast/negative_ast(BV_AST) - the parsed, structured prompt tree.positive_text/negative_text(STRING) - plain text, what you'd show a human or feed a text processor.positive_source/negative_source(STRING) - the untouched source text, the single source of truth the pack treats as canonical.
The three-representations design is deliberate. AST is for category-aware processing (the pack's Prompt AST system), text is for display and downstream text nodes, and source is for round-tripping or auditing what was actually typed. They're derived from the same source, so if they ever disagree, source wins.
Where it fits
The cleanest pattern: BV Regional Select β Prompt Extract β display/rewrite/export. It's also the node that makes per-region prompt engineering visible - instead of guessing from the rendered image what a region "tried to say," you read the text it actually used. If you're running a prompt-polish pass with an LLM or comparing region prompts across documents, this is the extraction point.
Install
Search BV Node Pack in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/BlackVortexAI/bv_nodepack.git
Restart, hard-refresh with Ctrl + F5. No dependencies.
The honest take
It's a tiny utility that exists to make prompt text a first-class value instead of a buried document field. Not glamorous, but it's exactly the kind of node that stops you from hand-copying prompts between the editor and a text node. If you're weighing it against Deconstructor: need the selection object or region IDs too, get Deconstructor; purely want prompt representations, this is the clean one.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| selection | BV_REGIONAL_SELECTION | β |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| positive_ast | BV_AST | β |
| positive_text | STRING | β |
| positive_source | STRING | β |
| negative_ast | BV_AST | β |
| negative_text | STRING | β |
| negative_source | STRING | β |