bv_nodepack

bv_nodepack
★ 4

工作流配置驱动Pipe系统Subgraph友好UI动态JavaScript渲染
ComfyUI节点包,提供实用与工作流节点,包含可配置的Pipe系统与支持动态JS渲染的Subgraph友好UI节点(Heading、Spacer、Divider)。
💡 用可配置Pipe与Subgraph友好UI节点快速搭建可复用工作流。
🍴 2 Forks💻 TypeScript🔄 2026-01-29
📦
网盘下载
复制链接后前往夸克网盘下载
https://pan.quark.cn/s/af9fbf81e746
BV Pipe Config
BV Pipe Connected
BV Pipe Override
BV Pipe Subgraph
BV Subgraph Heading
BV Subgraph Heading Subgraph
BV Subgraph Heading Edit
BV Spacer
BV Spacer Subgraph
BV Spacer Subgraph
BV Spacer Edit
BV Divider
BV Divider Subgraph
BV Divider Subgraph
BV Prompt Encode
BV Prompt Decode
BV Prompt AST Debug
BV Prompt Category Switch
BV AST Example
BV Divider
BV Divider
BV Divider
BV Divider
BV Divider
BV Divider
BV Divider
📄 README

BV Node Pack (ComfyUI)

A curated collection of quality-of-life, UI, and prompting nodes for ComfyUI, with a strong focus on:

  • clean graph layouts
  • Subgraph/Subflow compatibility
  • metadata-driven pipelines
  • AST-based prompt tooling (no fragile string parsing)
  • ⚠️ Important

    This pack includes JavaScript UI extensions for dynamic node behavior.

    These extensions fully support Subgraphs / Subflows.


    📌 Table of Contents

  • Installation
  • Update & Uninstall
  • Node Overview
  • Pipe Nodes
  • UI / Layout Nodes
  • Prompt / AST Nodes
  • Util Nodes
  • Beta Nodes
  • Prompt AST Syntax & Markup Guide
  • Example application for AST
  • Quick Start (BV Pipe)
  • Notes & Design Principles
  • Changelog

  • Installation

    Clone into your ComfyUI custom_nodes folder:

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

    Restart ComfyUI and hard-refresh the browser:

    Ctrl + F5


    Update & Uninstall

    Update

    cd ComfyUI/custom_nodes/bv_nodepack
    git pull

    Restart ComfyUI (recommended).

    Uninstall

  • Delete the folder in custom_nodes
  • Restart ComfyUI
  • Hard refresh the browser (Ctrl + F5)

  • Node Overview

    Nodes are grouped by functional category.

    Each section below can be read independently.


    Pipe Nodes

    BV Pipe Config

    Defines the slot layout (names) for a BV Pipe.

    Screenshot

    Shows the BV Pipe Config node with a multiline list of slot names.

    What it does

  • Define slot names (1 per line, max 100)
  • Outputs a single BV_PIPE object (the “pipe”)
  • How to use

  • Add BV Pipe Config
  • Enter slot names (one per line)
  • Connect its pipe output to BV Pipe
  • BV Pipe

    A config-driven carrier node that forwards one pipe connection while exposing named slots.

    Screenshots

    Connected state (slots visible)

    Slot override example

    Subgraph usage

    What it does

  • Shows only the slots defined by the connected BV Pipe Config
  • Allows overriding individual slots
  • Passes through all untouched slots

  • UI / Layout Nodes

    BV Subgraph Heading

    A UI node that renders a bold header text inside the node.

    Designed specifically for Subgraphs/Subflows:

    When exposed, the heading is also rendered on the Subgraph node itself.

    Screenshots

    Heading inside normal graph

    Heading inside Subgraph

    Heading rendered on Subgraph node

    Editing the heading text (click on header text to edit)

    Inputs

  • value (STRING) — header text
  • font_size (INT) — font size
  • show_divider (BOOLEAN) — optional divider
  • BV Spacer

    A UI-only spacer node used to add vertical whitespace.

    Screenshots

    Normal graph

    Inside Subgraph

    Subgraph node view

    Editing the spacer height (click on spacer to edit)

    Inputs

  • height (INT) — spacer height in pixels
  • scale (FLOAT, optional) — multiplier
  • BV Divider

    A UI-only divider node that draws a horizontal separator line.

    Screenshots

    Divider in graph

    Divider inside Subgraph

    Divider rendered on Subgraph node

    Inputs

  • thickness (INT)
  • padding (INT)
  • alpha (FLOAT)
  • BV Dynamic Combo

    Purpose

  • Creates a dynamic combo box from a list of strings
  • Input

  • prompt (COMBO, STRING)
  • Output

  • value_str (STRING)
  • value_int (INT)
  • value_float (FLOAT)

  • Prompt / AST Nodes

    These nodes operate on a structured AST (Abstract Syntax Tree), not on raw strings.

    This allows safe filtering, switching, inspection, and refactoring of prompts.

    BV Prompt Encode

    Purpose

  • Parses a tagged prompt into an AST
  • Input

  • prompt (STRING, multiline)
  • Output

  • ast (BV_AST)
  • cleaned_prompt (plain text, no markup, no comments)
  • Screenshot

    Example output

    BV Prompt Decode

    Purpose

  • Extracts plain text from the AST by category
  • Key Features

  • Multi-category filtering
  • any / all matching
  • Inheritance (parent categories)
  • Optional prettify pass
  • If no filter is set, all categories are displayed.
  • Screenshot

    Example output

    BV Prompt AST Debug

    Purpose

  • Visual inspection of the AST
  • Features

  • JSON pretty-print
  • Readonly, scrollable output field
  • Safe for large ASTs
  • Screenshot

    Example output

    BV Prompt Category Switch

    Purpose

  • Enable / disable categories directly on the AST
  • No string parsing
  • Features

  • Enable categories
  • Disable categories (wins over enable)
  • inherit and any/all matching
  • Screenshot

    Example output


    Prompt AST Syntax & Markup Guide

    This section explains the exact prompt syntax that is parsed into the AST.

    Default (no markup)

    A beautiful landscape, sunset lighting

    Block categories

    @@style
    cinematic lighting
    @@subject
    a woman in rain

    Inline categories

    a portrait with @<eye> green eyes @@ and @<hair> black hair @@

    Nested inline categories

    @<subject> a @<face> smiling woman @@ in rain @@

    Comments

    a portrait ## this is a comment

    ⚠️ Common Syntax Pitfalls (Important)

    Category names must not contain spaces.

    Inline categories are only recognized if the category name matches this pattern:

    [a-zA-Z0-9_-]+

    ❌ Invalid

    @<clothing color> white dress @@

    ✅ Valid

    @<clothing_color> white dress @@

    Closing inline categories (@@)

    @@ closes one currently open inline category
    
    Extra @@ without an open category are treated as literal text and will appear in the output

    ❌ Invalid (too many closings)

    @<clothing> long dress,@@@@

    ✅ Valid

    @<clothing> long dress,@@

    Example application for AST


    Latent Nodes

    A Collection of Latent Nodes.

    BV Latent Random Rotate 90

    Purpose

  • Rotates a latent by 90 degrees deterministically based on seed if enabled
  • Input

  • latent (LATENT)
  • seed (INT)
  • enabled (BOOLEAN)
  • Output

  • latent (LATENT)
  • latent_width (INT)
  • latent_hieght (INT)
  • BV Latent Random Aspect Ratio

    Purpose

  • Generates or resizes a latent to a randomly selected aspect ratio based on a seed
  • Selection is deterministic via seed and configurable via enabled aspect-ratio toggles
  • Uses a 1:1 base resolution reference (e.g. 1024×1024) commonly assumed for model training
  • Input

  • latent (LATENT, optional)
  • If connected, the current latent resolution is used as the 1:1 base reference
  • seed (INT)
  • enabled (BOOLEAN)
  • base_resolution_px (INT)
  • Edge length of a square 1:1 reference in pixels (e.g. 1024 = 1024×1024), used when no latent is connected
  • use_1_1 (BOOLEAN) – Resolution 1×1
  • use_3_2 (BOOLEAN) – Resolution 3×2
  • use_2_3 (BOOLEAN) – Resolution 2×3
  • use_4_3 (BOOLEAN) – Resolution 4×3
  • use_3_4 (BOOLEAN) – Resolution 3×4
  • use_16_9 (BOOLEAN) – Resolution 16×9
  • use_9_16 (BOOLEAN) – Resolution 9×16
  • use_21_9 (BOOLEAN) – Resolution 21×9
  • use_9_21 (BOOLEAN) – Resolution 9×21
  • Output

  • latent (LATENT)
  • latent_width (INT)
  • latent_height (INT)
  • picked_ratio (STRING)
  • Util Nodes

    A Collection of Utility Nodes.

    BV Hex Color To Int

    Purpose

  • Converts a HEX color code to an INT value
  • Input

  • prompt (STRING)
  • Output

  • color (INT)
  • Beta Nodes

    BV Control Center ⚠️ BETA

    Centralized runtime control for mute / bypass states of node groups.

    Key Features

  • Group-based control
  • Subgraph-compatible
  • Dynamic UI reconfiguration
  • Screenshot

    Configuration

    Selected group

    Define status

    Columns are automatically expanded

    After saving the configuration, the BV Control Center Node updates itself.

    Here is an example if, for example, Only Preview is active


    Quick Start (BV Pipe)

  • Add BV Pipe Config and enter slot names:
  • model
    clip
    vae
    seed
    prompt

  • Connect:
  • BV Pipe Config (pipe)BV Pipe (pipe)

  • Optionally override individual slots.

  • Notes & Design Principles

  • Slot IDs are stable internally (v_001…v_100)
  • Labels are user-defined and dynamic
  • UI nodes are rendered via JavaScript
  • All UI nodes support Subgraphs / Subflows
  • Prompt nodes operate on AST, not raw strings

  • Changelog

    2026-01-29

  • v0.0.24 — Make subgraph UI widgets more rebuild-safe.
  • 2026-01-11

  • v0.0.23 — Add BV Latent Random Aspect Ratio node.
  • v0.0.22 — Change the category of BV Dynamic Combo. Add 90 Latent Rotate Node.
  • 2026-01-10

  • v0.0.21 — Add dynamic combo box node
  • v0.0.20 — Add a HEX color to INT node
  • 2026-01-02

  • v0.0.19 — Update README: add AST example image with embedded workflow
  • v0.0.18 — Add AST Prompting system
  • v0.0.17 — Changed toggle label system (BV Control Center)
  • v0.0.16 — Renamed inputs to avoid collisions
  • 2026-01-01

  • v0.0.15 — Fix subgraph renaming bug
  • v0.0.14 — Widget fixes for subgraph usage
  • 2025-12-31

  • v0.0.13 — Fix label inversion error
  • v0.0.12 — Fix input error
  • v0.0.11 — Reworked renaming logic
  • 2025-12-30

  • v0.0.10 — Fix widget create event
  • 2025-12-29

  • v0.0.9 — Fix subgraph issues
  • v0.0.8 — Major refactor to TypeScript