ComfyUI Node

BV Text

A text box that only phones the LLM when you click the button

By BlackVortexAI·Created 9 months ago·Updated a day ago· 7
BV Text
    • text
    text

    The name oversells it in the usual way: BV Text is a multiline text widget with a STRING output - like a Primitive String - plus a row of buttons underneath that will translate or rewrite whatever is in the field.

    Here's what matters: queueing a workflow calls nothing. No request, no key check, no latency. The node returns whatever string is in the field, unchanged. A model only runs when you click, and it edits the field in place. This is a writing tool bolted onto a graph, not a generation dependency.

    Why you'd want one

    LLM-assisted prompting isn't fringe any more - prompt enhancer went 12 → 66 → 188 → 253 from 2023 to the first half of 2026 in the KB's Reddit measurement - and the reason is architectural: on 2026 models an LLM reads your prompt as an instruction, so a second LLM helping write it translates between two things speaking the same language. Krea 2's and Anima's prompt guides are worth following and tedious to internalise, which is the job to delegate. The familiar hazards come along for the ride: chat scaffolding leaking into your prompt, and a helper that invents detail you never asked for.

    How it works

    Clicking posts your text to a route inside the pack. First the backend masks your prompt's machinery - LoRA calls, reference markup, ## comment lines, __BVREFn__ markers - into throwaway __BVKEEP0__-style tokens, and tells the model to keep each one exactly once, in order.

    Then it verifies the answer. The reply must be a bare JSON object with a single text key and must finish cleanly, and once the markers are swapped back the markup structure has to match the original exactly. If the model reshuffled your LoRA tags or dropped a weight, you get an error and your prompt is untouched.

    Two limits worth knowing: one request in flight at a time (a second click gets "Writing assistance is busy, try again shortly"), and one wall-clock budget per request - timeout_seconds, 5 to 600, default 60. A provider that stalls or trickles data gets cut off rather than hanging your editor.

    Inputs, output, and the two settings that matter

    The schema is as small as it looks: one required input, text (multiline STRING), and one output, text (STRING). Everything else lives in the frontend panel, not the node definition.

    • Provider and Model, behind ⚙ Settings. The shipped catalog has OpenAI, OpenAI Compatible, Venice and Abacus.AI, plus keyless local slots for Ollama (127.0.0.1:11434), LM Studio, llama.cpp, vLLM and LocalAI. Picking a provider fills in its default model; type over it. Anything you'd rather not send to a cloud API is local-path territory anyway.
    • Prompt profile: General, Krea 2, Anima or Custom. This picks the style guide, independent of the provider, and selecting one replaces the editable system prompt below it. The Krea 2 preset is a conservative adaptation of Krea's official guidance: natural language, keep existing detail, invent nothing.

    Send the output wherever a string goes - a CLIP Text Encode's text input, a negative box, a log writer. Convert text to an input and you can drive it from upstream, but disconnect that wire before using the buttons.

    Install

    Manager → search BV Node Pack (Registry publisher blackvortex), or:

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

    Restart ComfyUI and hard-refresh the browser - the writing panel is a bundled frontend widget, so a stale cache leaves you a plain text box with no buttons. There's no requirements.txt either: the backend is stdlib plus aiohttp and torch, which ComfyUI already ships. Nothing to pip install, no models to download.

    One Registry quirk: the Registry lists 1.4.3 and 1.4.2 as active after manual review (1.3.0–1.4.1 and 1.0.1–1.2.3 are banned) while the repo is on 1.4.4 - and BV Text only exists from 1.4.4, so a Manager install may hand you the pack without this node.

    Where people get burned

    On a --listen server the buttons are dead. Saving a key and the assistance request itself are management-gated: loopback-bound ComfyUI, local client. Run loopback, or opt in by writing {"schema": "bv.admin.settings", "version": 1, "allow_remote_management": true} to admin_settings.json in the pack's private user/__bv_nodepack/ folder.

    "Response changed protected prompt markup" means the model shuffled LoRA calls or reference syntax - switch to translate-only, or trim the markup. A literal __BVKEEP in your text is rejected outright.

    A greyed-out button means provider or model is unset, and the provider needs credentials saved first via Configure provider credentials. Keys live in the pack's private user/__bv_nodepack/ folder, never the HTTP-served one, and each is bound to a single endpoint - rotate a key saved before 1.4.2.

    Don't put secrets in the system prompt. Writing settings ride along in the node's workflow properties, and the node's text lands in PNG metadata with the rest of the graph. Undo also only remembers the last replacement, and it refuses to clobber newer manual edits, so it can look like it did nothing.

    Category🌀 BV Node Pack/utils

    Inputs (1)

    NameTypeDefaultDescription
    textSTRING

    Outputs (1)

    NameTypeDescription
    textSTRING