PC: Extra argument helper for NODE
The node that shoves wires into your text prompt
- a
- b
- c
- d
- e
- f
- g
- h
- i
- j
- k
- l
- m
- n
- STRING
Let's be honest about this one up front: PCNODELinkHelper is the most niche node in one of the most niche packs in ComfyUI. It exists to serve exactly one feature - the NODE() function that lets Prompt Control schedule any text-encoding node from inside a prompt, not just CLIP text encoders. If you've never heard of that feature, this node is nothing to you. If you're trying to drive a video or audio model with a scheduled prompt, it's the bridge that makes the whole thing work.
What it's for
Prompt Control (asagi4's pack) lets you write A1111-style prompts like [cat:dog:0.1] and get real scheduling out of them - no noodle soup of SetConditioningTimestepRange nodes. Normally that works through PCTextEncode. But the NODE() function generalizes it: you write NODE(SomeEncoderNode, prompt, arg values...) in your prompt, and the scheduler generates a graph using that node instead. That's how the pack's MiniMax H3 example workflow schedules an image-to-video model from plain text.
Here's the catch: NODE()'s extra arguments are raw JSON literals, and to pass a real value from your graph you need a ComfyUI link reference like ["137", 0] (node ID 137, output 0). Typing those by hand is fragile. This helper renders them for you.
How it works
The node is dead simple under the hood. It takes a text input (multiline STRING, the only required one) plus fourteen wildcard inputs named a through n, and does a search-and-replace: every $a–$n placeholder in your text gets swapped for the JSON dump of whatever you wired into that letter's input. Those inputs are flagged rawLink, so instead of receiving actual data ComfyUI hands the node the raw link reference, which dumps out as exactly the ["137", 0] format the NODE() arg spec wants. The single STRING output is the rendered text.
The intended pattern, straight from the pack docs and its H3 example:
SEG(node)
NODE(UC_AdvancedMiniMaxH3ImageToVideo, prompt,
vae $a;
width $b;
height $c;
length $d)
Wire the real VAE into input a, the width value into b, and so on. The helper outputs the prompt with $a replaced by a real link, you concatenate that string onto the end of your main prompt, and PCLazyTextEncode (PC: Schedule Prompt) picks up the NODE(...) call when it builds its graph. The SEG() wrapper just lets you reference the whole block with $node so it slots into the rest of your prompt cleanly.
Only the text input and however many of a–n you actually need matter - they're all optional wildcard sockets that accept anything. Leave a placeholder unwired and it becomes the literal string __EMPTY__, which is a silent failure mode worth knowing about: the graph will build, and the node you're driving will just get garbage.
Installing
It ships with the whole prompt-control pack - there's no standalone install.
cd ComfyUI/custom_nodes
git clone https://github.com/asagi4/comfyui-prompt-control
then restart ComfyUI. Or search ComfyUI Prompt Control in ComfyUI Manager. Note the v3 schema needs at least ComfyUI v0.8.0; the pack's README is blunt that if things break, update ComfyUI first. No model files, no exotic Python deps - the pack is pure graph-generation code.
Where people get burned
- Names lie. The arguments to
NODE()must match ComfyUI's API-format input names, which often differ from the frontend names you see on the node (reference_images.reference_image_1, not "reference image 1"). Export your workflow in API format and check. The H3 workflow comments make exactly this point. - The output does nothing by itself. It's a string that must be concatenated into your prompt's text input. Staring at the node wondering why nothing happens is a rite of passage.
- It's marked experimental, and the feature only matters for non-CLIP encoders (Flux users: cutoff is already broken there, per the README, so don't expect magic).
If you only generate still images with CLIP-based models, you will almost certainly never need this node. File it away; if you ever want scheduled control of a video model, it's the missing link.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | — | |
| aopt | * | — | |
| bopt | * | — | |
| copt | * | — | |
| dopt | * | — | |
| eopt | * | — | |
| fopt | * | — | |
| gopt | * | — | |
| hopt | * | — | |
| iopt | * | — | |
| jopt | * | — | |
| kopt | * | — | |
| lopt | * | — | |
| mopt | * | — | |
| nopt | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |