Add Custom Kontext Preset 🦉| OwlV
Save a Kontext preset without touching a JSON file
- success
- log
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 pullupdate 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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| preset_name | STRING | 唯一名称,用于在下拉列表中显示 | |
| system_prompt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| success | BOOLEAN | — |
| log | STRING | — |