Symbiotica Category Prompts
One Architect Prompt Per Sheet, Read From the Project's Prompt Book
- order
- system_prompts
- sheet_system_prompts
Symbiotica Category Prompts is the prompt-authoring node of the order pipeline: it composes one architect system prompt per sheet, chosen by that sheet's asset type and read from the project's prompt book at <project>/prompts/<Type>.md. Wire the Auto Packer's sheet_categories in and system_prompts into your LLM node's system prompt, and one queue press covers every asset type in the order instead of one pass per type. The "architect" is the system prompt that tells the image LLM how to render a sheet for a given type - the rules of that asset's game.
The prompt book is the interesting part. It's not a text box on the node; it's files in the project, composed of blocks. The pack's framing: a category's architect prompt is assembled from the project's shared prompts/_rules/*.md files (in filename order) followed by prompts/<Category>.md, and the category file stays last because the tail of a prompt carries the most weight. That's the pack applying a real observation about how LLMs weight instructions - later instructions dominate - and turning it into a file convention.
How it works
Feed it the per-sheet asset types and a project path, and it resolves each type's prompt file(s), concatenates shared rules + category file, and emits the architect prompts. The outputs mirror the Auto Packer's alignment contract:
system_prompts- the architect prompts this order uses, each once, in first-appearance order. One per asset type, for reading. Two types, two entries, however many sheets they pack into.sheet_system_prompts- architect prompt for sheet i, one per sheet, index-aligned with the packer's sheets. Wire this into the LLM's system prompt.
Same trap as the packer, stated in the tooltip: "NOT its deduped categories - a short list does not error, it silently repeats its last entry." The node also takes an optional order wire; project_path is filled in from the order when one is wired, so you often don't need to set it.
The inputs that matter
sheet_categories- per-sheet asset type, from the Auto Packer'ssheet_categories. This is the one that must be per-sheet.project_path- the client project folder holding the prompt book at<project>/prompts/.order- optional; fills in project_path when wired.
Install
ComfyUI Manager → search Symbiotica → install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/symbiotica-ai/comfyui-nodes.git symbiotica
pip install -r symbiotica/requirements.txt
Restart ComfyUI. No keys or downloads - it reads local markdown files. Zero cost per run.
Common issues
- LLM gets the same prompt for every sheet - you wired the deduped
system_prompts(or the packer'scategories) instead ofsheet_system_prompts. The fix is the wiring, and it's the exact trap the tooltips warn about. - A category produces an empty/generic prompt -
<project>/prompts/<Type>.mdis missing. The node reads what's there; if the file isn't there, there's no architect prompt for that type. - Rules don't apply - the shared
_rules/*.mdfiles live atprompts/_rules/; if they're elsewhere, the shared half is empty. Check the folder name - it's_rules, notrules. - Editing a prompt file doesn't change the render - the pack fingerprints inputs; the LLM node downstream is what actually re-runs. Change an input (or re-queue with a nudge) if ComfyUI's cache is holding the old result.
The honest note: the "tail of the prompt carries the most weight" convention is a real LLM behavior, but it's not a law - prompt order effects are real and model-dependent, and the pack betting the category file must be last is a reasonable default, not a guarantee. Keep the category file concise and it'll work like the pack intends.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| sheet_categories | STRING | Per-sheet asset type: the Auto Packer's sheet_categories output. NOT its deduped `categories` — a short list does not error, it silently repeats its last entry. | |
| project_path | STRING | Client project folder, holding the prompt book at <project>/prompts/. Filled in from the order when one is wired. | |
| orderopt | SYMBIOTICA_ORDER | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| system_prompts | STRING | The architect prompts this order uses, each ONCE, in first-appearance order — one per asset type, for reading. Two types, two entries, however many sheets they pack into. |
| sheet_system_prompts | STRING | Architect prompt for sheet i — one per SHEET, index-aligned with the packer's sheets. Wire THIS into the LLM's system prompt. |