SCG Next-Round Prompt Catcher
Feed the SCG builder a prompt for its next round, automatically
If SCG Magic JSON BBoxer is the headless version of the Ideogram builder, SCG Next-Round Prompt Catcher is the glue that makes iterating actually automatic. It's a terminal node with a single job: catch a STRING produced anywhere in your workflow and hand it to the builder's editable on-deck prompt box, ready for the next round.
Here's the loop it enables. You generate an image inside the SCG Ideogram4 Prompt Agent builder's Workflow output tab. Meanwhile, your graph has something that reads that image - a VLM, a captioner, a critique LLM - and produces a revised prompt string for the next pass. This node catches that string. In the builder you hit Run it!, which clears the inputs (keeping any locked fields), loads the on-deck text, rebuilds the scene through the full agent chain, and fires the next generation. Human-in-the-loop, except the human's job is now just to hit one button and decide whether to accept the result.
The "next-round" framing is the point. Ideogram 4 is a JSON-prompting model, so the raw text this node catches isn't the JSON itself - it's the seed that gets pushed back through the builder's agents (fields, then bbox layout) on the next run.
How it works
It's almost embarrassingly simple under the hood. The node takes a single text STRING input (marked forceInput, so it shows up as a socket rather than a widget) and returns nothing - it's an output node. Its entire mechanism is that it reports the value back in its ui output as scg_ondeck, and the builder's parent extension (web/okims_json_builder.js) listens for that on the ComfyUI websocket's executed event, then pushes the value into the builder's on-deck prompt box. Non-string inputs get coerced - a number becomes a string - so you can wire almost anything text-ish into it.
That means the node doesn't need to know about the builder at all. It just announces "here's a string for whoever's listening," and the builder happens to be the listener.
The inputs
text(STRING) - required. Wire it to whatever produces your next prompt: a VLM caption node, an LLM output, a saved text file, even another prompt node's output.
That's the entire schema. Zero outputs, zero widgets to fiddle with. It's a sink, which takes some getting used to if you're new to terminal nodes - nothing comes out of it, and that's correct.
Installing it
It's part of the same pack as the builder it feeds:
cd ComfyUI/custom_nodes
git clone https://github.com/SanDiegoDude/scg_json_prompt_agent.git
Restart ComfyUI and it appears under SCG/Ideogram. No dependencies beyond the pack itself, no model downloads, no API keys - it makes no network calls at all. It's pure plumbing.
Troubleshooting
- The on-deck box never updates. The node has to be part of the graph that actually runs, and the run has to execute it. An unexecuted node announces nothing.
- Nothing comes out of it. Correct - there are no outputs. If you expected a value on a wire, you're thinking of a different node; this one communicates sideways, through the builder.
- The text lands but it's not what you wanted. The on-deck box is editable, which is the whole design: you get a chance to tweak it before Run it! fires. Treat it as a draft, not a verdict.
It's the quietest node in the pack, but it's the one that turns the builder from a manual drawing tool into something you can close the loop around. Without it, you're copy-pasting prompts between rounds; with it, the graph itself hands you the next idea.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | — |
Outputs (0)
No outputs