Files
kunail0804-ComfyUI-Scene-Co…/docs/nodes.md
T
de5edd7064 fix(nodes): resolve KB path against the package and add raw debug outputs (#78)
Two ComfyUI issues found while testing.

1. Empty output with no error: the Knowledge Base Loader resolved a relative
   `path` against ComfyUI's working directory, not this package, so the default
   `knowledge_base/` loaded 0 entries (an empty KB is valid) and every concept
   became unknown -> empty prompts. Relative paths now resolve against the
   package root, and the loader warns when the Knowledge Base is empty.

2. Add a `raw` string output (a JSON dump of the node's data) to the Scene
   Analyzer, Scene Validator, Resolver, Category Splitter, and Prompt Builder
   nodes, plus a summary `raw` on the Knowledge Base Loader, for inspecting the
   pipeline in the graph. Adds a shared to_raw_json helper.

Tests: package-relative path resolution (independent of cwd), empty-KB warning,
raw output content, and updated node metadata/return-arity expectations.

Co-authored-by: kunail0804 <kunail0804@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-09 18:54:40 +02:00

3.1 KiB

ComfyUI node reference

The exact inputs, outputs, and data types of the shipped Scene Compiler nodes. All nodes appear under the Scene Compiler category. Data flows between nodes as typed objects; the inter-stage types are SCENE, RESOLVED_TAGS, CATEGORY_MAP, KNOWLEDGE_BASE, and COMPILER_CONFIG.

Nodes are thin adapters: all behaviour lives in the compiler package, which never imports ComfyUI.

Every stage node also exposes a raw string output — a JSON dump of that node's data output — for inspecting the pipeline (wire it into a text/preview node). The Knowledge Base Loader's raw summarizes the loaded entries. A relative Knowledge Base path is resolved against the installed package, so the default knowledge_base/ works regardless of ComfyUI's working directory.

Pipeline nodes

Node Inputs Outputs
Scene Analyzer natural_language (STRING), model_name (STRING), temperature (FLOAT), timeout (INT), system_prompt (STRING, optional) scene (SCENE), warnings (STRING), errors (STRING)
Scene Validator scene (SCENE), config (COMPILER_CONFIG, optional) scene (SCENE), warnings (STRING), errors (STRING)
Resolver scene (SCENE), knowledge_base (KNOWLEDGE_BASE), config (COMPILER_CONFIG, optional) resolved_tags (RESOLVED_TAGS), warnings (STRING), errors (STRING)
Category Splitter resolved_tags (RESOLVED_TAGS) category_map (CATEGORY_MAP), warnings (STRING), errors (STRING)
Prompt Builder category_map (CATEGORY_MAP), config (COMPILER_CONFIG, optional) one STRING per category (character, appearance, hair, face, eyes, expression, body, clothing, accessories, pose, action, interaction, objects, environment, camera, lighting, style, quality, miscellaneous) plus reserved negative and scene (STRING)

The Category Splitter produces the intermediate Category Map; the per-category prompt strings are produced by the Prompt Builder.

Support nodes

Node Inputs Outputs
Configuration one input per configuration option (analyzer, resolver, validator, prompt builder, debug) config (COMPILER_CONFIG), errors (STRING)
Knowledge Base Loader path (STRING), reload (INT, optional) knowledge_base (KNOWLEDGE_BASE), warnings (STRING), errors (STRING)
Debug Viewer scene (SCENE, optional), resolved_tags (RESOLVED_TAGS, optional), category_map (CATEGORY_MAP, optional), warnings (STRING, optional), errors (STRING, optional) report (STRING)
  • The Configuration node's config output feeds the optional config input of the Validator, Resolver, and Prompt Builder, so behaviour changes without rewiring.
  • The Knowledge Base Loader reloads only when reload changes (no automatic file watching).
  • The Debug Viewer is read-only; connect any intermediate state to inspect it.

A ready-to-use workflow wiring all of these is in examples/workflows/scene_compiler_pipeline.json.