HTTP Form Text Item
A text form field, when you also care about its content type
- form_item
The pack ships two nodes that look nearly identical: HTTP Form Data Item and HTTP Form Text Item. Both produce a single text field for a multipart form. The difference is one optional input: this one lets you set the field's content_type. That's the entire point, and for most people that means "the version I'll use slightly less often."
How it works
Two required inputs, same as its plain sibling:
name- the form field name (defaults totext_field).value- the field's content (defaults totext_value).
Plus the one thing that justifies its existence:
content_type- defaults totext/plain. Set it toapplication/jsonfor a field carrying JSON text,text/htmlfor markup, whatever the API expects for that field.
One output: form_item (HTTP_FORM_ITEM), feeding an HTTP Form Data slot. In the multipart body, this field goes into the data part with your chosen content type attached.
When the extra knob actually matters
Most multipart text fields are plain strings, and text/plain is fine - that's why HTTP Form Data Item exists as the no-frills default. You reach for this node when an API is strict about field content types: some endpoints want a JSON payload delivered as a form field with Content-Type: application/json, and sending it as text/plain gets you a 400. It's a small thing, but it's the difference between a form that works on one API and silently fails on another.
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.
Where people get burned
The classic trap is overthinking it: the server's validation depends on the field name matching its schema, not on the content type you attach, so a content type of application/json won't fix a wrong field name. Set the name correctly first, then reach for this node only if the API explicitly complains about the field's content type. And as with every item node, an unplugged form_item output does nothing - it has to sit inside HTTP Form Data to reach the request.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| name | STRING | text_field | — |
| value | STRING | text_value | — |
| content_typeopt | STRING | text/plain | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| form_item | HTTP_FORM_ITEM | — |