VLM System Instruction Presets
VLM captioning system prompts, one dropdown away
- system_instruction
Writing a good captioning instruction is a paragraph nobody wants to write from scratch, and the pack's answer is a shelf of ready-made ones. UC_VLMSysInstrPresets hands you a dropdown of long, carefully-worded system instructions for vision-language models - the kind that tell a Qwen3-VL exactly how to describe a subject, lock subject counts, and keep perspective grounded. Pick one, get a STRING, feed it to a textgen node.
What it is
A preset selector, pure and simple. It exposes a preset dropdown populated from the pack's system_instructions_vlm library and outputs the chosen instruction as a single system_instruction STRING. No logic, no state, no generation - just a curated text library with a clean interface.
What the presets actually are
The library is built around captioning-optimization prompts. The headline entries are neutral_system_instruction, action_system_instruction, and photo_system_instruction - long system prompts written to make a VLM produce training-grade captions: identify subjects and their count, preserve perspective, quote visible text verbatim, keep the description literal and renderable, never invent relationships. There are also toon_system_instruction (for the anime/illustration side), ideogram_4_json_instruction variants (structured JSON output for Ideogram-style prompting), and video_* entries for timeline-structured video captions. Newer Qwen-flavored variants (*_qwen) round out the list.
The honest framing, if you read these prompts closely: they're written in an aggressive "uncensored evaluation environment" voice designed to push a stock VLM past its usual refusals and stylistic hedging. Whether that framing is necessary is debatable - but the descriptive rules embedded in them (subject count lock, perspective grounding, no purple prose) are genuinely useful if you're building a captioning dataset. You're choosing a tone and a rulebook.
How to use it
Wire system_instruction into the system_prompt input of UC_TextGenerate or the system_message input of UC_TextGenerateQwen35SystemPrompt, add your image and a user query, and generate. That's the whole intended pipeline: preset → textgen node → caption or prompt string → wherever it needs to go.
The input and output
- preset - the dropdown.
- Output: system_instruction (STRING).
Installing it
Part of ComfyUI-UtilsCollection:
cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI-UtilsCollection
Restart ComfyUI (or use Manager, search "ComfyUI-UtilsCollection"). No extra dependencies, no models, and it needs a current ComfyUI build since the pack uses the modern Core node API.
Common issues
The biggest one is scope: these instructions assume you're captioning images with a VLM, and if you wire one into a diffusion text encode instead of a textgen node, you'll get a garbage prompt. Match the preset to the job - photo_* for photographic datasets, toon_* for illustration, video_* for timeline work. And because the presets are long, don't be surprised that they dominate your system-prompt budget: if you're also adding your own instructions, the UC_VLMSysInstrAdvPresets variant is the one that lets you inject system_query/user_query into the preset rather than appending blindly.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | action_system_instruction | 29 options: action_system_instruction, action_system_instruction_crude, action_system_instruction_qwen, cinematic_dumb_intelligent, ideogram_4_json_instruction, ideogram_4_json_instruction_color, +23 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| system_instruction | STRING | — |