Form Post Request Node
Upload an image as multipart form data, the original trick this pack built on
- image
- form_fields
- headers
- text
- json
- any
The Form Post Request Node is the pack's original uploader: it takes an IMAGE from your graph and POSTs it as a multipart/form-data file, just like a browser submitting an <input type="file">. It's the node this whole family grew out of - the upstream ComfyUI-RequestNodes did exactly this and no more, and ahkimkoo's fork (ComfyUI-HttpRequestNodes) kept it while adding the audio/video machinery around it.
If that sounds narrow next to the Media Form Post Node - which can upload images and audio and video - you're right. Form Post is the simpler, older sibling: image-only, no status code output, and it uses the default requests timeout rather than the 300-second cap the newer nodes set. Reach for it when you've got an endpoint that just wants a single image field and you want the least machinery in the way. Otherwise the Media Form Post Node is the one that grows with you.
What you set
target_url- required. The default ishttp://127.0.0.1:7788/api/echo, a local echo endpoint - handy for confirming the upload shape before you point it at a real API.image- required. If you feed it a batch, every frame goes up as its own file:image_0.png,image_1.png, and so on, all under the same field name.image_field_name- the multipart field name, defaultimage. Change it if the server expects something else.form_fields(KEY_VALUE) - extra fields riding along with the file, e.g.{"caption": "..."}, wired from a Key/Value Node.headers(KEY_VALUE) - extra headers. Unlike the newer request nodes this one doesn't force a defaultContent-Type, lettingrequestsset the multipart boundary itself - so don't manually set a Content-Type here or the boundary header breaks.
The outputs
Three: text (response body), json (parsed, or an error dict if the response isn't JSON), and any (raw response bytes). No status code and no response headers - one more sign of its age in this pack. If the request fails, the error message fills all three.
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/Post Request. There's a shipped example workflow (form_post_request_node.json) with the echo endpoint wired up so you can see the upload live before pointing it somewhere real. No models, no keys, nothing extra to download.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| target_url | STRING | http://127.0.0.1:7788/api/echo | — |
| image | IMAGE | — | |
| image_field_name | STRING | image | — |
| form_fieldsopt | KEY_VALUE | — | |
| headersopt | KEY_VALUE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |
| json | JSON | — |
| any | ANY | — |