Nodes/ComfyUI_Simple_Qwen3-VL-gguf/🌐 LLM Prompt Preset
ComfyUI Node

🌐 LLM Prompt Preset

The preset editor that keeps your Qwen prompts out of a JSON file

By KLL535Β·Created 9 months agoΒ·Updated a day agoΒ· 85
🌐 LLM Prompt Preset
    • system_prompt
    • user_prompt_template
    β—„system_presetNoneβ–Ί
    β—„πŸ“ System Prompttrueβ–Ί
    β—„system_promptβ–Ί
    β—„πŸ“ User Prompt Templatetrueβ–Ί
    β—„user_prompt_templateβ–Ί

    If you run a Qwen3-VL GGUF locally inside ComfyUI - as a prompt enhancer, an image captioner, a video summarizer - you accumulate a pile of system prompts and user-prompt templates. And until the nightly update of this pack, "managing" that pile meant hand-editing system_prompts_user.json with a text editor and hoping you didn't break the JSON. This node is the fix: it's a preset browser with save/rename/delete buttons living right on the canvas, the front-end for the pack's whole prompt-preset system.

    It's the little sibling of the 🌐 LLM Config node. Config handles the model parameters (paths, context, sampling); this one handles the words. Select a preset, the node fills in the system prompt and a user-prompt template, and you wire both strings into the main Simple Qwen-VL node. No file editing, no JSON, no restart to test.

    How it works

    Under the hood there's no inference happening at all - this node never touches the model. It reads the same _system_prompts and _user_prompt_template sections the main node reads, from the pack's config files. The dropdown lists 70+ shipped presets - Tags, Simple/Detailed/Ultra Detailed Description, Cinematic Description, Video Summary, Short Story, JSON structure, Style Identification, and more. Pick one and a bit of JavaScript fetches it from the backend and drops the text into the widgets. Save, Rename and Delete buttons are drawn right on the node, and they write to ComfyUI/user/SimpleQwenVL_configs/system_prompts_user.json through a small HTTP endpoint. Deleting one of the pack's built-in presets doesn't remove it from the base file; it writes a BANNED marker so it disappears from your lists but survives the next update.

    One quirk worth knowing: the system_preset dropdown can't be wired to anything. The pack deliberately blocks connecting to that slot - it's a UI control, not a data input. The outputs are the strings.

    The inputs that matter

    You really only touch three of them:

    • system_preset - the dropdown. This is where you pick which prompt collection to load.
    • system_prompt - the main system prompt text, loaded from the preset and editable in place. Multiline.
    • user_prompt_template - a template for the user prompt that can hold {variables}, with {user_prompt} as the placeholder for the text you'll actually send.

    Both text fields sit in collapsible groups (the πŸ“ System Prompt and πŸ“ User Prompt Template booleans just show/hide them), so the node stays compact.

    What the outputs wire into

    Two STRING outputs, both headed for the main Simple Qwen-VL node:

    • system_prompt β†’ its system_prompt_override input. Supplying that overrides the main node's own system_preset dropdown, so you can drive the prompt from here instead.
    • user_prompt_template β†’ its user_prompt input. The template placeholders ({user_prompt}, {width}, {height}, {image_num}, {frame_num}, …) are resolved by the main node - with the right model preset, a template like Describe {user_prompt} in the style of a film still gets the actual text substituted in before the LLM sees it.

    Installing it

    Same path as the whole pack, which ships more nodes than this one. Either use ComfyUI Manager and search ComfyUI_Simple_Qwen3-VL-gguf, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/KLL535/ComfyUI_Simple_Qwen3-VL-gguf
    

    Restart ComfyUI, refresh the frontend (F5). The real dependency hurdle is the pack's runtime, not this node: standard llama-cpp-python doesn't support Qwen3, so the README walks you through installing the JamePeng fork (0.3.17+ for Qwen3-VL, 0.3.30+ for Qwen3.5, 0.3.35+ for Gemma4) - ideally built from source with CUDA. Prebuilt wheels work but may lack the CPU acceleration the author recommends.

    Common gotchas

    • Wrong file edited. The node reads from three places, in priority order: the user/ config dir (the one the buttons write to), a legacy system_prompts_user.json in the node folder, and system_prompts.json (dev-maintained, overwritten on update). Edit the first if you must edit anything - and the UI saves you even from that.
    • Presets look stale. The dropdown choices are read when the node is created; after you save a new preset you may need to refresh or recreate the node to see it in other nodes' lists.
    • Templates doing nothing. Placeholder replacement is off by default for backward compatibility. If {user_prompt} comes through literally, feed variables into the main node or set "enable_variables": true in its config.

    This is a quality-of-life node, and it's a genuinely good one - the exact kind of "stop editing config by hand" convenience that makes a serious local-LLM workflow feel like a tool instead of a hobby.

    Category🌐 SimpleQwenVL

    Inputs (5)

    NameTypeDefaultDescription
    system_presetCOMBONoneSelect a prompt preset to load
    πŸ“ System PromptBOOLEANtrueShow/hide System Prompt group
    system_promptSTRINGMain system prompt. Will be combined with system_prompt_opt if provided.
    πŸ“ User Prompt TemplateBOOLEANtrueShow/hide User Prompt Template group
    user_prompt_templateSTRINGTemplate for user prompt. Can use {variables}. Will be combined with user_prompt_opt.

    Outputs (2)

    NameTypeDescription
    system_promptSTRINGβ€”
    user_prompt_templateSTRINGβ€”