Nodes/ComfyUI-JakeUpgrade/Random Prompter Geek JK๐Ÿ‰
ComfyUI Node

Random Prompter Geek JK๐Ÿ‰

Prompt templating for people who want to control the structure, not the words

By jakechaiยทCreated 2 years agoยทUpdated 3 months agoยท 147
Random Prompter Geek JK๐Ÿ‰
    • prompt
    • sys_prompt
    โ—„seed0โ–บ
    โ—„auto_filltrueโ–บ
    โ—„custom_subjectโ–บ
    โ—„sceneselectโ–บ
    โ—„motionselectโ–บ
    โ—„facial_actionselectโ–บ
    โ—„expressionselectโ–บ
    โ—„audioselectโ–บ
    โ—„lightingselectโ–บ
    โ—„cameraselectโ–บ
    โ—„styleselectโ–บ
    โ—„descriptionselectโ–บ
    โ—„custom_promptโ–บ
    โ—„remove_prompt_emphasistrueโ–บ

    The regular Random Prompter assembles a prompt for you. Random Prompter Geek JK hands you the skeleton and lets you write the assembly rules yourself. You write a template like [scene], [lighting], [camera] - bracketed category tags - and the node replaces each tag with random content from that category's data files at runtime. Same database as its sibling, completely different relationship to it.

    The core idea: tags in, text out

    Everything hinges on custom_prompt, where you type your template using [category_name] tags. Recognized tags map to the pack's prompt-data folders: [scene], [motion], [facial_action], [expression], [audio], [lighting], [camera], [style], [description]. Write A [expression] character, [scene], [lighting] and you get a prompt whose slots stay fixed while the content changes every run.

    You can also set each category's dropdown to a specific subcategory (e.g. lighting โ†’ "mood") to narrow what that tag draws from, or leave it at select for the full category. The auto_fill toggle (default on) pre-fills your template as you change the dropdowns, which is handy for seeing what tags exist.

    The extra output nobody talks about

    Where this node earns its Geek name is the second output. The regular Random Prompter outputs just prompt; this one also outputs sys_prompt - a system prompt. That's deliberate: Jake's auto-prompt workflows pair this node with an LLM/VLM (QWen3-VL is the recommended one). The random database generates a seed prompt with the semantic accuracy that LLMs are bad at improvising, and the LLM then expands it - the workflow uses both outputs, the raw prompt for direct generation and the sys_prompt to drive the LLM pass. It's the "best of both" architecture the pack's v2.3.6 changelog describes: database-random for accuracy, LLM for possibility.

    What beginners actually set

    • custom_subject - your anchor subject, combined with the tag output.
    • custom_prompt - the template. Start with a couple of tags, run it, look at what you get, add more.
    • seed - 0 for a fresh random pick each run.

    And remove_prompt_emphasis (default on) strips weight syntax like (word:1.5) from the subject so it doesn't clash with your tags.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/jakechai/ComfyUI-JakeUpgrade
    pip install -r requirements.txt
    

    One thing to know: both Random Prompter variants load from the same node slot, with the pack's config.ini RANDOM_PROMPTER_ABC flag picking the architecture. The Geek node is always there in its module's exports, but if the behavior doesn't match this description, check that flag - it swaps in the ABC-strategy implementation of both nodes. And if a tag isn't found, the node prints a warning to the console and leaves the tag literal in the prompt, which is your debugging hint: [scene] staying in the output means the mapping for that category isn't set up.

    Category๐Ÿ‰ JK/๐Ÿ Prompt

    Inputs (14)

    NameTypeDefaultDescription
    seedINT00โ€“18446744073709550000Random seed for prompt generation. Use 0 for random seed each time.
    auto_fillBOOLEANtrueAutomatically fill custom_prompt when category selections change.
    custom_subjectSTRINGMain subject description. This will be combined with category tags in custom_prompt.
    sceneCOMBOselectScene category selection. Choose a category to add its tag to custom_prompt.
    motionCOMBOselectMotion category selection. Choose a category to add its tag to custom_prompt.
    facial_actionCOMBOselectFacial action category selection. Choose a category to add its tag to custom_prompt.
    expressionCOMBOselectExpression category selection (use with caution in video prompts). Includes expression strength options.
    audioCOMBOselectAudio category selection. Choose a category to add its tag to custom_prompt.
    lightingCOMBOselectLighting category selection. Choose a category to add its tag to custom_prompt.
    cameraCOMBOselectCamera category selection. Choose a category to add its tag to custom_prompt.
    styleCOMBOselectStyle category selection. Includes artist and vision subcategories.
    descriptionCOMBOselectDescription category selection. Choose a category to add its tag to custom_prompt.
    custom_promptSTRINGBuild your prompt using category tags like [category_name]. These will be replaced with random content from the corresponding files at runtime.
    remove_prompt_emphasisBOOLEANtrueRemove emphasis symbols and weight markers from custom_subject (e.g., (word:1.5) -> word, [A:B:0.5] -> A-B)

    Outputs (2)

    NameTypeDescription
    promptSTRINGโ€”
    sys_promptSTRINGโ€”