Nodes/comfyui-nodes/Prompts (Symbiotica)
ComfyUI Node

Prompts (Symbiotica)

Edit one block of the prompt book without leaving the canvas

By symbiotica-ai·Created 6 months ago·Updated about 12 hours ago· 3
Prompts (Symbiotica)
    • text
    ◄path►
    ◄folder►
    ◄file►
    ◄text►
    ◄files►

    Most prompt systems keep your text in a text node, which lives in a workflow, which gets shared and duplicated until "the lighting prompt" exists in nine different files. Symbiotica Prompt Block is the pack's answer: one block of the prompt book - a shared rule, an image-model block, or an asset type - edited right on the canvas, saved to <project>/prompts/ where every queue reads the same copy.

    Several of these side by side are the book. They look like the string-literal graphs they replace, except the source of truth is a file, not a widget.

    How it works

    A block is a .md file under your project's prompts/ folder. This node is a window onto one of them. Type blocks live at prompts/<Category>.md, shared rules at prompts/_rules/, image-model blocks at prompts/_image/. A block file can hold up to three versions split by <!-- version: name --> markers, with the top of the file staying the default.

    Wire the Prompt Book's project_path output in and chain block to block through project - one wire feeds the whole row instead of every node fanning back to the book. Each block appends to the text passing through it, so the last block in a row carries the entire composed prompt.

    The inputs

    • project_path (required) - the project folder holding the book. Wire the Prompt Book's project output, or the previous block's passthrough.
    • block (required) - which block this node edits, e.g. Chair.md or _rules/02-inputs.md. The panel's picker fills this in.
    • slot - which slot of the category's recipe this edits. Set for you automatically when text_in comes from a Prompt Recipe: wire text_3 in and this becomes 3.
    • category (optional) - wire Asset Focus's category here and this node edits whatever _recipes/<category>.json names in slot. Switch asset type and the block on screen follows, with nothing to pick. When category is wired, block is ignored.
    • text_in (optional) - wire a Prompt Recipe's text_N in to preview and edit that prompt. With no category, it's the legacy chain input: the previous block's text, which this node appends its own block to.

    The outputs

    • project_path - passthrough, so blocks chain on one wire.
    • text - this node's block, ready for the LLM. Chained, it's everything so far: text_in plus this block, blank-line separated.

    Install

    One pack, one install - search Symbiotica in ComfyUI Manager, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/symbiotica-ai/comfyui-nodes.git symbiotica
    pip install -r symbiotica/requirements.txt
    

    Restart after. This node needs no API key and downloads nothing - it reads and writes markdown.

    Gotchas

    The mental model to keep: the block file is the truth, and this node is just a comfortable editor for it. Editing here needs no restart - Category Prompts re-reads the book when a file changes. If you hand-edit the same file in an external editor at the same time, last writer wins, same as anywhere. And a block written with a version marker you never picked will keep serving its top version until you switch slots, which trips people the first time they see an edit "not take."

    CategorySymbiotica

    Inputs (5)

    NameTypeDefaultDescription
    pathSTRINGThe folder holding the prompts. Type it, or wire a string. Its sub-folders fill the `folder` dropdown.
    folderSTRINGWhich sub-folder of the path, relative to it (`_rules`). `/` is the path itself.
    fileSTRINGWhich file in that folder. The dropdown lists what the folder holds.
    textSTRINGThe file's text. Edit here; `save file` writes it back.
    filesoptSTRINGThe ticked files, as JSON. Set by ticking files in the tree.

    Outputs (1)

    NameTypeDescription
    text*single: the open file's text. multi: every ticked file, for Prompt Specs.