HTTP Form Data Concat
When one form isn't big enough, merge two
- form_data1
- form_data2
- form_data3
- form_data4
- form_data5
- combined_form_data
The pack's HTTP Form Data container caps out at ten items per node. Ten is a lot for most forms, but when you're building a workflow with a big, composable multipart payload - say, a shared "metadata fields" form plus a per-run "this image and its caption" form - you'll hit the wall. HTTP Form Data Concat is the escape hatch: it merges up to five form_data objects into one and hands back a single combined object.
How it works
One required input, form_data1 - the first (and, if you only need one more chunk, only) form. Four optional inputs, form_data2 through form_data5, all HTTP_FORM_DATA type. It merges the text fields into one data dict and the file fields into one files dict, preserving their split so the final object still works in HTTPPost's form-data mode.
One input actually does most of the work: overwrite_duplicates, default true. When two forms define the same field name, true means "last one wins." With it off, the node renames the collision to fieldname_1, fieldname_2, and so on so nothing is silently lost - useful when you're merging forms that happen to share a key like description but you want both values sent.
One output: combined_form_data (HTTP_FORM_DATA), ready to feed HTTPPost.
Why you'd bother
Composability. Build a reusable "auth tokens + common metadata" form once, concat it with a per-run form that carries the actual payload, and you've got a modular multipart setup instead of one giant node with twenty wires. It's also the workaround for HTTPFormData's ten-item limit, and it's the cleanest way to combine text-only forms (built with HTTP Form Data Item) with file forms (built with HTTP Form File/Image Item) that you assembled separately.
Install
ComfyUI Manager → search "ComfyUI-HTTP" → Install, restart. Manual:
cd ComfyUI/custom_nodes/
git clone https://github.com/wawahuy/ComfyUI-HTTP.git
cd ComfyUI-HTTP
pip install -r requirements.txt
No models, no extra dependencies beyond what the rest of the pack already pulls in.
Where people get burned
Merging doesn't deep-merge - a text field and a file field with the same name land in different buckets (data vs files), so a collision across types won't be caught by overwrite_duplicates. And remember the concat output is still subject to the same "missing file becomes a text error string" behavior that HTTPFormData has: if a file item's path is stale, the merged form will quietly carry the error as a value. Check paths before you merge, not after the API rejects the upload.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| form_data1 | HTTP_FORM_DATA | — | |
| form_data2opt | HTTP_FORM_DATA | — | |
| form_data3opt | HTTP_FORM_DATA | — | |
| form_data4opt | HTTP_FORM_DATA | — | |
| form_data5opt | HTTP_FORM_DATA | — | |
| overwrite_duplicatesopt | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| combined_form_data | HTTP_FORM_DATA | — |