Nodes/ComfyUI-UniversalToolkit/Kontext VLM System Presets (UTK)
ComfyUI Node

Kontext VLM System Presets (UTK)

33 ready-made system prompts for Kontext-style image editing, no API key required

By whmc76·Created about a year ago·Updated 2 months ago· 72
Kontext VLM System Presets (UTK)
    • Prompt
    preset
    user_prompt

    Instruction-based editing models - Flux Kontext, Qwen-Image-Edit, the whole "describe what changed, get a new image" family - are extremely good, and they're also extremely sensitive to how you phrase the instruction. Write "change the background" and you get chaos; write a proper transformation directive and you get a coherent edit. Kontext VLM System Presets (UTK) is a library of 33 pre-written, battle-tested system prompts for exactly that job. Pick a preset like "Relighting" or "Product Lifestyle Scene," feed it your edit request, and it hands you the polished instruction string to send to your editing model.

    It's from ComfyUI-UniversalToolkit, and the name deserves a beat of explanation: these presets target the Kontext format - the system-prompt convention Black Forest Labs introduced with FLUX.1 Kontext, an in-context editor that takes a reference image plus an instruction and preserves the subject through the edit. The pack's presets are system-prompt templates written in that idiom, so they plug into any Kontext-style workflow. No API, no model, no key - this node only produces text.

    How it works

    The node holds a hardcoded JSON library of presets, organized by category: Core (the "Universal Editor" default), Composite (deep fusion, seamless integration), Scene (teleportation, season change, fantasy world, furniture removal, interior design), Photo (camera movement, relighting, camera zoom, tilt-shift, reflection, pose/viewpoint), Ecommerce (six product-photography presets), Character (hair, bodybuilding, age, fashion), Artistic (colorization, cartoon, pixel art, sketch, oil painting), and Utility (material, add text, remove text).

    Each preset is a long system prompt that instructs a VLM to act as a prompt engineer and emit exactly one precise editing instruction. The user_prompt input is optional, and when you fill it in it gets substituted into the $user_prompt$ placeholder baked into most presets - so "Scene-Season Change" + "make it autumn in a mountain town" produces a complete, specific directive. The preset dropdown is a flat list of 33+ entries named like Scene-Season Change (季节变换), so the Chinese labels are part of the name.

    Inputs and outputs

    • preset - the dropdown. That's it, plus:
    • user_prompt (STRING, optional, multiline) - your specific request, spliced into the template.

    Single output: Prompt (STRING). Wire it into whatever text slot your Kontext-compatible editing node takes - usually a "prompt" or "instruction" input on the sampler/editor.

    Install and gotchas

    Install via ComfyUI Manager (search "ComfyUI-UniversalToolkit") or:

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

    Restart ComfyUI. This node needs nothing beyond Python's standard json module - it's the most dependency-free node in the pack.

    The gotcha is expectation-setting. The node generates the instruction, not the image - if you're not running a Kontext-style editor downstream, the output is just a nice paragraph. And the presets are tuned for the Kontext/Flux ecosystem; if you use them with a different editing model, the phrasing will still help but won't be as tightly matched. One more: because the whole library is baked into the node's code, you can't add your own presets from the UI - if you want a custom one, you're editing Python, not the dropdown.

    Categoryutils

    Inputs (2)

    NameTypeDefaultDescription
    presetCOMBO34 options: Core-Universal Editor (万能编辑), Composite-Context Deep Fusion (情境深度融合), Composite-Seamless Integration (无痕融合), Scene-Scene Teleportation (场景传送), Scene-Season Change (季节变换), Scene-Fantasy World (幻想领域), +28
    user_promptoptSTRING

    Outputs (1)

    NameTypeDescription
    PromptSTRING