- Added BV Subgraph Heading with optional divider + dynamic sizing/clipping - Added BV Spacer (height/scale) and BV Divider nodes - Added JS rendering/patching for Subgraph compatibility and stable widget mapping - Updated README with new UI nodes and usage details - Updated project description in pyproject.toml to mention Subgraph UI nodes - Minor UI improvements (dynamic redraw/resize on widget changes)
BV Node Pack (ComfyUI)
A small collection of quality-of-life nodes for ComfyUI.
⚠️ Note: This pack includes UI logic (JavaScript) for dynamic node updates (also works in Subgraphs/Subflows).
Installation
Clone into your ComfyUI custom_nodes folder:
cd ComfyUI/custom_nodes
git clone https://github.com/BlackVortexAI/bv_nodepack.git
Restart ComfyUI and (if needed) hard refresh the browser: Ctrl+F5
Uninstall
- Delete the folder in
custom_nodes - Restart ComfyUI
- Hard refresh the browser (Ctrl+F5)
Update
cd ComfyUI/custom_nodes/bv_node_pack
git pull
Restart ComfyUI (recommended).
Nodes / Features
BV Pipe Config
Defines the slot layout (names) for a BV Pipe.
What it does
- Define slot names (1 per line, max 100)
- Outputs a single
BV_PIPEobject ("the pipe") used downstream
How to use
- Add BV Pipe Config
- Enter slot names (one per line)
- Connect its
pipeoutput to BV Pipe
BV Pipe
A config-driven carrier node that forwards one pipe connection while exposing named slots.
What it does
- Shows only the slots defined by the connected BV Pipe Config
- Lets you override individual slots, while everything else passes through
Override example
Subgraph example
BV Subgraph Heading
A UI node that renders a bold header text inside the node. Designed to work well inside Subgraphs/Subflows: when exposed, the header is also rendered on the Subgraph node in the main graph.
Inputs
value(STRING) — the header textfont_size(INT) — font size used for renderingshow_divider(BOOLEAN) — optional divider line below the heading
What it does
- Displays a clean header label for visual separation
- Dynamically adjusts its node height to avoid text overlap/clipping
- Optional divider line for stronger section separation
How to use
- Add BV Subgraph Heading
- Set the title via
value - (Optional) increase
font_size - (Optional) enable
show_divider
Subgraph usage
- Place it inside a Subgraph/Subflow and expose the widget input to show the same heading on the Subgraph node.
BV Spacer
A UI-only spacer node to add vertical whitespace in your graph or inside Subgraphs/Subflows.
Inputs
height(INT) — spacer height in pixelsscale(FLOAT, optional) — multiplier for the height (useful for quick global spacing adjustments)
What it does
- Reserves vertical space without rendering text
- Updates its node height dynamically (also in Subgraphs/Subflows)
How to use
- Add BV Spacer
- Adjust
heightto the desired spacing - (Optional) use
scalefor fine-tuning
BV Divider
A UI-only divider node that draws a horizontal line to visually separate sections.
Inputs
thickness(INT) — line thicknesspadding(INT) — left/right paddingalpha(FLOAT) — line opacity
What it does
- Draws a horizontal separator line
- Dynamically updates when inputs change (also in Subgraphs/Subflows)
How to use
- Add BV Divider
- Adjust
thickness,padding, andalphato match your layout
Quick Start (Pipe)
- Add BV Pipe Config and enter names, e.g.:
model
clip
vae
seed
prompt
-
Connect:
BV Pipe Config (pipe)→BV Pipe (pipe) -
Optional: connect something to a slot input to override only that slot.
Notes
- Pipes update dynamically (including Subgraphs/Subflows).
- Slot socket IDs stay stable internally (
v_001…v_100,out_001…out_100) while labels come from your config. - UI nodes (Heading / Spacer / Divider) use JavaScript rendering and support being exposed through Subgraphs/Subflows.













