Inspect H3 Prompt or Assignments
The boring node that saves you an hour
- STRING
What it is
It's a text display. One input, one output, and a node face that shows you what came in. That's the entire node, and it's the one you'd miss most if it weren't there.
Here's why it matters more than it sounds. H3 Mod Reference to Video hands you two strings that describe what the workflow actually decided: Prompt, the final expanded prompt sent to H3 after your @tags were replaced with reference labels and the reference sections were assembled, and assignments, the mapping of every label to the node, role, character, duration and token cost behind it. Both are important, both are invisible unless you wire them somewhere, and one of them is the only practical way to answer "why is it saying <Picture 3> when I connected two images?"
How it works
text is a required STRING input forced to be a socket - you can't type into it, you have to connect something:
H3 Mod Reference to Video (Prompt) -> Inspect H3 Prompt or Assignments.text
H3 Mod Reference to Video (assignments) -> Inspect H3 Prompt or Assignments.text
It passes the string straight through to its STRING output, so you can chain it in the middle of a lane if you want. It's also an output node, which is the part that matters mechanically: ComfyUI evaluates output nodes even when nothing downstream consumes them, so wiring a string here forces the upstream lane to run. That's the practical difference between this and a note node - it isn't decoration, it's a hook.
Two of them, one per string, is normal practice. Use one for Prompt while you're authoring a scene, and the other for assignments when you're debugging costs or an association you didn't expect.
Install
ComfyUI Manager → search WorkflowX Configurator, or:
cd ComfyUI/custom_nodes
git clone https://github.com/haroonaslam/WorkflowX-Configurator
cd WorkflowX-Configurator && pip install -r requirements.txt
Restart ComfyUI and hard-refresh the browser - the node face is a frontend widget, so a stale browser bundle gives you a node with nothing on it. Its dependencies come with the pack (PyWORLD, numpy, scipy) and it needs nothing else: no model, no VAE, no GPU.
Where it goes wrong
If text is unconnected you'll get an error rather than an empty box - the input is a forced socket on purpose, so the node can't sit there quietly pretending to be a text field.
If the node face is blank after a queue where you're sure something ran, the usual culprit is that ComfyUI skipped the lane entirely. This node has no cache behaviour of its own, so a stale-but-empty display is almost always an upstream node that didn't execute (or a cached H3 node whose inputs didn't change). Queue with the lane's settings touched, or bump a seed upstream, and it'll fill in.
The other non-obvious thing: the assignments string is long. It prints one line per reference plus per-character token subtotals. If you're comparing two runs, the diff is at the bottom - exact reference tokens, category subtotals and the budget line - and the top is the association mapping.
For a node you'll wire once per workflow and never think about again, it earns its place: this suite compiles your prompt through a real compiler, and a compiler you can't see is a compiler you end up fighting.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |