Key/Value Node
The tiny dict builder that makes every HTTP node in this pack work
- KEY_VALUE
- KEY_VALUE
The Key/Value Node is the boring little node that makes the whole pack usable. Every request node in ComfyUI-HttpRequestNodes takes a KEY_VALUE input for its headers, form fields, or query parameters - and this is how you build one. You type a key, a value, and out comes a dictionary. That's it. But it's the difference between "hardcode one header" and "build headers at runtime from other nodes," which is where these HTTP workflows start to get interesting.
It's pure plumbing in the best sense - the same "one wire carries a bundle" idea the plumbing layer of ComfyUI is built on, just for HTTP headers instead of model pipes. Every place in this pack that says KEY_VALUE - headers on the Get Request Node, form_fields on the Media Form Post Node, query_list on Get, placeholders on String Replace Node - expects exactly what this node produces.
How it works
Two required inputs, key and value (both plain strings), and one optional KEY_VALUE input that's the neat part: if you wire another Key/Value node into it, the output is a merge - the incoming dict first, then your new pair on top. Chain a handful together and you've built a headers object with a half-dozen entries without a single node that knows about all of them. Also worth knowing: if either key or value is empty, that pair is skipped, so a blank node is a no-op rather than a bug.
The output is one KEY_VALUE socket. Wire it anywhere the pack asks for headers, form fields, or query params.
When you'd actually use it
The classic setup is a row of them feeding one request node: Authorization from a text node you can swap, Content-Type fixed, maybe a tenant ID from elsewhere in the graph. Because they merge, you can even split the work - one node owns the auth header, another owns everything else, both feeding the same Rest Api Node. For anything more complex than a handful of static pairs, though, you'll outgrow it quickly - there's no per-node list here, so a 20-header request means 20 of these on the canvas.
Install
ComfyUI Manager → search ComfyUI-HttpRequestNodes → Install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/ahkimkoo/ComfyUI-HttpRequestNodes
pip install soundfile imageio imageio-ffmpeg
Category: RequestNode/KeyValue. It shares its category with the Retry Settings Node, which is the same merge pattern applied to retry options instead of headers - if you've used one, you've basically used the other. No models, no dependencies beyond what ComfyUI already has.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| key | STRING | — | |
| value | STRING | — | |
| KEY_VALUEopt | KEY_VALUE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| KEY_VALUE | KEY_VALUE | — |