Nodes/ComfyUI-Owlv_Nodes/Add Custom Kontext Preset 🦉| OwlV
ComfyUI Node

Add Custom Kontext Preset 🦉| OwlV

Save a Kontext preset without touching a JSON file

By OwlvChirotha·Created 11 months ago·Updated 10 months ago· 1
Add Custom Kontext Preset 🦉| OwlV
    • success
    • log
    preset_name
    system_prompt

    Add Custom Kontext Preset 🦉| OwlV is a tiny bookkeeping node from the Owlv pack: it writes your own preset into the same store that the pack's KontextTextEncode node reads, so your custom prompt recipes show up in that node's dropdown. Nothing generates here - it's the "save" button made visible in the graph.

    What it does

    KontextTextEncode works off a list of presets, each one an LLM system prompt that defines a style of prompt-writing (Relight, Change Clothes, Scene Telesport…). Those presets live in a JSON file. This node lets you add to that file with two text fields instead of hand-editing JSON:

    • preset_name - a unique name, shown in the KontextTextEncode preset dropdown. The tooltip literally says "unique name, used for display in the dropdown."
    • system_prompt - the multiline system prompt for the LLM. This is the whole personality of your preset: what you want the LLM to do, what to output, what not to do.

    Hit run and it validates, writes, and tells you what happened. The two outputs are success (BOOLEAN) and log (STRING), and the log is worth reading because it tells you why a save failed: an empty name or prompt, a name that already exists, or a name that clashes with one of the built-in presets. Those checks are the whole safety net.

    Where the presets actually go

    The store is user_kontext_presets.json, written inside the pack's own folder (ComfyUI/custom_nodes/ComfyUI-Owlv_Nodes/). A couple of consequences:

    • Presets you add here are immediately visible to KontextTextEncode's dropdown (they share the file).
    • Because the file lives inside the git repo's directory, a git pull update of the pack can overwrite it, and deleting the folder to reinstall wipes your presets. Back the file up if you build up a collection you care about.

    Do you even need this node?

    Kind of. KontextTextEncode itself has an inline Add Custom Preset button in its UI that does the exact same thing through the pack's /owlv/kontext_presets/add API endpoint, with a nicer dialog that shows you the existing presets first. This standalone node exists for two cases: you're managing presets without having KontextTextEncode in the workflow yet, or you're wiring preset creation into an automated pipeline where a button won't cut it. It also returns success/log outputs you can route somewhere, which the button doesn't.

    One implementation detail worth knowing: the node's IS_CHANGED always returns NaN, so it never gets cached - every run executes and writes. That's fine for a utility node, just don't put it in a loop expecting it to no-op.

    Install

    Same as the rest of the pack - ComfyUI Manager (search "ComfyUI-Owlv_Nodes" or "OwlV") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/OwlvChirotha/ComfyUI-Owlv_Nodes.git
    

    Restart ComfyUI, find it under conditioning. No extra Python dependencies, no model files. It's a small pack from a one-person author, so if something's off, the repo's Issues page is the support channel.

    Categoryconditioning/owlv

    Inputs (2)

    NameTypeDefaultDescription
    preset_nameSTRING唯一名称,用于在下拉列表中显示
    system_promptSTRING

    Outputs (2)

    NameTypeDescription
    successBOOLEAN
    logSTRING