Nodes/ComfyUI-HttpRequestNodes/Form Post Request Node
ComfyUI Node

Form Post Request Node

Upload an image as multipart form data, the original trick this pack built on

By ahkimkoo·Created 3 months ago·Updated 3 months ago· 1
Form Post Request Node
  • image
  • form_fields
  • headers
  • text
  • json
  • any
target_urlhttp://127.0.0.1:7788/api/echo
image_field_nameimage

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 is http://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, default image. 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 default Content-Type, letting requests set 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.

CategoryRequestNode/Post Request

Inputs (5)

NameTypeDefaultDescription
target_urlSTRINGhttp://127.0.0.1:7788/api/echo
imageIMAGE
image_field_nameSTRINGimage
form_fieldsoptKEY_VALUE
headersoptKEY_VALUE

Outputs (3)

NameTypeDescription
textSTRING
jsonJSON
anyANY