Grok Prompt Fusion Pro
The 'Grok' Node That Doesn't Call Grok (It's Better For It)
- positive_prompt
- negative_prompt
- annotation
Here's the plot twist: despite the name, Grok Prompt Fusion Pro never calls Grok. No API, no key, no network. It's a fully local prompt-assembly node that takes a base prompt, applies a strategy and preset, scales the weights, optionally blends in a second prompt, and returns positive, negative, and an optional annotation. The "Grok" in the name is aspiration, not mechanism.
That's actually good news. It means the node is free, instant, deterministic, and uncensored by construction - there's no filter to argue with because there's no model in the loop. It's from the babydjacNODES pack, and it's the rare API-named node that works offline.
How it works
Everything is string surgery in Python:
- Strategy - prepends Pony-style quality tags:
beginner→score_7_up,balanced→score_8_up, score_7_up,expert→score_9, score_8_up,photorealism_max→score_9, photorealistic, raw photo, 8k. - Preset - appends a style fragment:
Softcore,Hardcore Realism,Cinematic,Studio Lighting, orNone. - tag_weight - a regex rescales every
(tag:1.2)-style weight in the prompt by your factor. Whole-prompt weighting, in one dial. - Second-prompt blending - if you give a
second_prompt, the node wraps them:({base}:{1-blend}), ({second}:{blend}). - auto_cycle - appends each style from
cycle_stylesand joins the variants with|separators, for downstream fan-out. - Truncation - if the positive exceeds ~75 comma-separated tags, it sorts by weight descending and keeps the top 75. A crude "token budget" that Pony workflows appreciate.
The negative_prompt is built from your base_negative (or a solid default) plus lowres, artifacts, jpeg artifacts, low quality.
The inputs that matter
- base_prompt - required. Your starting prompt.
- strategy and preset - the two dropdowns that do most of the work.
- tag_weight - 0.1–2.0; the "make it punchier" dial.
- second_prompt + blend_weight - for combining two ideas with a controllable ratio.
- annotator - when on, the third output
annotationexplains every transformation as a comment block (handy for debugging what the node did).
Outputs: positive_prompt, negative_prompt, annotation.
Install
ComfyUI Manager → babydjacNODES, or git clone https://github.com/babydjac/babydjacNODES into ComfyUI/custom_nodes, restart, hard-refresh. No extra pip deps. (Yes - despite the "Grok" branding, none needed.)
Gotchas
- The quality tags assume Pony-style score vocabulary. If your checkpoint isn't Pony/Illustrious-lineage,
score_9-style tags are dead weight. TurnpresettoNoneand pick a strategy carefully. - Truncation is by comma-count, not real tokens. "Approximate tokens by commas" is the code's own wording - it's a rough budget, so very long tags can still blow your encoder's limit.
auto_cyclejoins variants with|- that's a signal for downstream nodes to split on; if you wire it straight into a text encoder you'll get a literal pipe. Know your splitter.- The preset strings are opinionated. "Hardcore Realism" adds
nsfw explicit, score_9- fine if that's your lane, and it's why checkingpresetis the first thing you do.
Free, local, instant, and it never refuses. For iterating on prompt structure and weight experiments, this is the pack's most underrated node - once you get past the misleading name.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| base_prompt | STRING | — | |
| strategy | COMBO | balanced | 4 options: beginner, balanced, expert, photorealism_max |
| tag_weight | FLOAT | 1.00.1–2 | — |
| preset | COMBO | None | 5 options: None, Softcore, Hardcore Realism, Cinematic, Studio Lighting |
| annotator | BOOLEAN | false | — |
| second_prompt | STRING | — | |
| blend_weight | FLOAT | 0.50–1 | — |
| auto_cycle | BOOLEAN | false | — |
| cycle_styles | STRING | — | |
| base_negativeopt | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive_prompt | STRING | — |
| negative_prompt | STRING | — |
| annotation | STRING | — |