π€ RH Upload File
Upload any file type to RunningHub
- config
- RH_PARAM
RH Upload File is the pack's generic uploader: when you have a file that isn't an image tensor, a video object, or a latent - a .txt prompt list, a .json config, a LUT, a random asset - this is the node that gets it onto RunningHub. The pack's specialized uploaders are nicer for their own types, but this one never says no.
It's a brute-force four-field node, and there's a real lesson in how it's built. All four inputs are required:
config- from RH Config.node_id- the target node inside the RunningHub workflow. Unlike the image/video/audio uploaders, there's no "just upload without attaching" mode here; this node is all about producing a parameter.field_name- a dropdown oftext,image,audio,video,latent,mask, orfile. This labels what kind of input the remote node expects, so the workflow knows how to treat the uploaded file.file_path- the local path to the file. It must exist on disk; a missing file raisesFileNotFoundErrorbefore anything is sent.
How it works
It reads the file into a buffer, guesses the MIME type via Python's mimetypes (falling back to application/octet-stream for unknown extensions), and uploads to /task/openapi/upload with fileType: file. Then it wraps the returned server filename in a parameter entry - {nodeId, fieldName, fieldValue} - and returns that as a single-element param list.
That's the shape to know: the output is one parameter entry, meant to be wired into the params input of RH Execute or chained alongside other uploaders. It's not an image or a filename you'd look at - it's a "this file should land on this node's input" instruction.
The catch
Because it produces a parameter entry, node_id and field_name have to match the cloud workflow exactly, or the file uploads fine and the workflow ignores it - a silent waste of an upload. Double-check the remote node's actual input name before you commit. Also keep the file reasonable: there's no built-in size cap here, so huge files just hammer the retry/backoff logic until they fail or eventually land.
Install
Pack-wide, same as the rest: ComfyUI Manager (search ComfyUI_RH_API) or git clone https://github.com/xuchenxu168/ComfyUI_RH_API.git into custom_nodes + pip install -r requirements.txt, then restart ComfyUI. No models to fetch - everything this pack sends is data, not weights.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| config | RH_CONFIG | β | |
| node_id | STRING | β | |
| field_name | COMBO | 7 options: text, image, audio, video, latent, mask, +1 | |
| file_path | STRING | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| RH_PARAM | RH_PARAM | β |