VLM System Query Add Presets
The VLM preset that drops your text into prewritten captioning instructions
- system_query_additional
You're building a workflow where a vision-language model (Qwen3-VL, a MiniMax H3 video chain, an Ideogram-style captioner) turns your images into a prompt. The VLM needs instructions - not just "describe this," but a whole paragraph about how to handle multiple pictures, which slot is the composition source, what syntax to emit. Typing that by hand is miserable and easy to get wrong. This node is the shortcut: you pick a preset and it wraps whatever you type in text inside that preset's prewritten guidance.
The "Add" in the name is the whole trick. The node keeps a dictionary of VLM query instructions, each stored as a prefix and a suffix. Feed it a preset and a string, and it returns prefix + your_text + suffix as a single system_query_additional string. You're not choosing a finished paragraph so much as choosing the envelope your own words get dropped into. That's the distinction from its sibling, UC_VLMSysQueryRawPresets, which just outputs the bare preset with no text input at all.
The presets are worth reading before you pick one, because they're tuned to specific model families and their picture syntax:
character_transfer_gemmaandcharacter_transfer_qwen- two-image character swaps. Gemma presets talk in[image 1]/[image 2], Qwen presets talk in<Picture 1>/<Picture 2>. Pick the one that matches the picture tokens your model actually uses, or the instruction won't land.text2image,image2image,video_basic- the general-purpose captioning/editing/enhancement trio.h3_t2va,h3_fl2va,h3_ref2va- MiniMax H3 text/video chains, where the VLM is building a standalone video prompt from image evidence.ideogram_4- includes the bbox/element language Ideogram's prompt format wants.
Inputs and outputs
Only two inputs, both things you'll actually set:
- preset (combo) - pick the instruction envelope.
- text (multiline) - the request you want wrapped. This is where your actual ask goes, e.g. "change the lighting to golden hour but keep the character identical."
The single output, system_query_additional, is a plain STRING. Wire it into the system-query or additional-query slot of whatever VLM node you're driving - in this pack that's typically one of the text-generation or MiniMax H3 nodes - or concatenate it with your main system instruction before the encode.
Installing it
This node ships inside ComfyUI-UtilsCollection, the same big utility pack as the other UC_VLMSys* nodes. ComfyUI Manager is the easy path: open Manager → Install Custom Nodes, search ComfyUI-UtilsCollection, install, restart. Or clone it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI-UtilsCollection
Then restart ComfyUI. The pack's real dependencies are just opencv-python and typing-extensions - nothing heavy, and nothing to download for these text nodes. The MiniMax H3 projection models the README mentions are only for the image-to-video encoder patcher nodes, not for anything here.
Where people get confused
The biggest surprise is that the presets are instructions, not model names - the Qwen vs Gemma variants don't pick a model, they pick the picture-slot vocabulary the instruction uses. Get that backwards and your character_transfer_gemma text won't do anything on a Qwen pipeline because the model never sees [image 1]. Also note the legacy alias: this node's older ID, VLMSysQueryAddPresets, still works and just renames to "(Legacy)" - if ComfyUI offers to swap it for this one, let it.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | character_transfer_gemma | 15 options: character_transfer_gemma, character_transfer_qwen, h3_fl2va, h3_fl2va_experimental, h3_mixed_ref2va, h3_ref2va, +9 |
| text | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| system_query_additional | STRING | — |