ComfyUI Extension: Key-Value KV-Tools for ComfyUI
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
Nodes for JSON Key/Value (KV) storage with on-the-fly UI preview, dynamic drop-downs, random selection, and inline edit mode.
Looking for a different extension?
Custom Nodes (5)
README
ComfyUI-KVTools
Utility nodes for key/value (KV) workflows in ComfyUI — with live previews, auto-updates, and a safe Edit mode for inline KV data.
🧩 Nodes
-
KV Load Inline – type/paste KV data (JSON or
key=valuelines). -
Edit mode toggle: edit safely with node output disabled; lock the text when done.
-
KV Load From Registry – pick a JSON file from a registry that’s built automatically from
<ComfyUI>/custom-kv-stores/*.json. -
KV Get – central node: shows a key dropdown and live value preview; choose an output type (
string | int | float | bool).
Extra UI: Refresh keys, Random key, Set default, Load default. -
KV Image Path From Registry (helper) – builds an image path from a selected registry key (e.g.
png,jpg) to use with ComfyUI’s Preview Image.
On-the-fly behavior (no manual Run needed for previews)
- As soon as a store is connected to KV Get, its key dropdown and value preview populate immediately.
- Switching the registry file updates KV Get automatically (no manual “refresh” needed).
- Image preview updates automatically when the selected key changes.
The extension also queues a run in a debounced, robust way for downstream processing. While you’re editing inline data, runs are intentionally suppressed to keep things stable.
📁 Registry & file layout
-
Place your JSON files here:
<ComfyUI>/custom-kv-stores/<filename>.json -
Place optional images here:
<ComfyUI>/custom-kv-stores/images/<filename>/<key>.pngGive your images the same name as the corresponding key in the JSON file. Key and filename may contain numbers, letters, dots and underlines.
Each json file must be simple key-value JSON:
{ "speaker": "Tom", "greeting": "hello" } -
On ComfyUI startup, a registry is generated and served to the UI:
- Written to:
custom_nodes/ComfyUI-KVTools/web/kv_registry.json - Served at:
/extensions/ComfyUI-KVTools/kv_registry.json
- Written to:
-
Frontend endpoints used:
POST /kvtools/refresh_registry– rebuild/refresh registry cachePOST /kvtools/peek– read a single value{file_name, key}GET /kvtools/image?file=...&key=...&ext=...– build image URL for previews
🚀 Installation
With ComfyUI-Manager
- Open Manager → Install via URL.
- Paste the repo URL (e.g.
https://github.com/millerlight/ComfyUI-KVTools). - Click Install, then restart ComfyUI.
Manual
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/millerlight/ComfyUI-KVTools.git
# or unzip the release into this folder
Restart ComfyUI afterwards.
After updating the frontend (
web/js/extension.js), hard-reload your browser (Ctrl/Cmd+Shift+R) to ensure the latest UI is loaded.
🩺 Troubleshooting
-
UI didn’t update after an install/update
- Hard-reload your browser (Ctrl/Cmd+Shift+R).
- Verify assets are served:
/extensions/ComfyUI-KVTools/extension.js/extensions/ComfyUI-KVTools/kv_registry.json
-
Registry file appears but KV Get has no keys
- Ensure your JSON is flat key/value (no arrays/objects unless you intend stringified values).
- Click KVTools: refresh keys once (should rarely be needed with autosync).
- Restart ComfyUI to rebuild the registry.
-
Inline editing shows empty previews
- That’s by design. While Edit mode is ON, downstream output & previews are blank and runs are paused.
- Toggle Edit mode OFF to lock data and resume runs.
-
“Nothing runs automatically” after loading a large graph
- The extension debounces queueing to avoid spamming the server. Make one manual Queue Prompt if needed; subsequent changes are auto-queued.
🧱 Directory structure
ComfyUI/custom_nodes/ComfyUI-KVTools
├── info.json
├── __init__.py
├── kv_nodes.py
├── README.md
├── requirements.txt
└── web
├── js
│ └── extension.js
└── kv_registry.json
📄 License
MIT
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.