RH Text to Image
A cloud txt2img node with a hardcoded agenda
- images
The Model nodes in this pack are the "I don't want to fight dependencies, just make me an image" path. RH Text to Image is the purest version: type a prompt, give it an API key and a workflow ID, and it runs a text-to-image workflow on RunningHub's cloud, waits, downloads, and hands you back a native IMAGE tensor. No local model download, no VRAM math, no sampler research. This is the node you reach for when you want an image from a RunningHub workflow without assembling the whole Settings → NodeInfo → Execute dance.
The fields that matter
Required:
prompt- your text prompt (multiline).api_key- your RunningHub key, pasted right on the node. Unlike the Execute path, there's no RH SettingsSTRUCThere; the Model nodes take credentials directly.base_url-.cnby default,.aifor international. The eternal gotcha.workflow_id- the RunningHub text-to-image workflow you built or cloned. The node doesn't know which workflow - it just submits to whatever ID you give it.
Optional:
negative_prompt- sent along if you fill it in.seed(default -1) - set a seed for reproducible runs; -1 means the platform picks. Note it accepts up to a full 64-bit value.timeout(300s default) - how long to wait for the cloud job.
Output: a single images IMAGE tensor - batched, so if the workflow returns multiple images you get them stacked in the batch dimension, ready to feed a Save Image, an upscaler, or anything else expecting IMAGE.
The trap: hardcoded node IDs
Here's the thing nobody tells you. Look at the source and this node builds its parameter overrides with fixed node IDs baked into the code: prompt goes to nodeId "6", negative prompt to "7", seed to "3". The node assumes your workflow's text encoder is node 6, its negative is node 7, and the seed node is 3.
That works if you're using one of the stock RunningHub text-to-image templates. It silently does nothing if your workflow has different node IDs - the prompt override lands on the wrong node or nowhere, and you get an image that ignores your prompt, with no error to explain why. The fix is either to use a workflow whose layout matches those IDs, or to stop using this node and go with RH Node Info + RH Execute Workflow, where you choose the node IDs yourself. This is the strongest argument for the manual path.
What to expect
Cloud pricing, cloud latency, shared GPU pool. The community consensus on RunningHub is "cheap, quick to try, occasionally slow when the pool is loaded" - a "20 second" job can drift past a minute. Your prompt and any inputs leave the machine for RunningHub's servers, and the platform applies its own content filtering, so don't send anything a hosted service would refuse. Failed or empty runs come back as a black 64×64 placeholder tensor - the pack's standard failure face - with the reason only visible in the node's log output.
Install
cd ComfyUI/custom_nodes/
git clone https://github.com/liangzheng1128/ComfyUI-RunningHub
cd ComfyUI-RunningHub
pip install -r requirements.txt
or ComfyUI Manager → search "RunningHub", restart. Light deps only - requests, websocket-client, Pillow, numpy.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Text prompt | |
| api_key | STRING | — | |
| base_url | STRING | https://www.runninghub.cn | — |
| workflow_id | STRING | RunningHub workflow ID for text-to-image | |
| negative_promptopt | STRING | — | |
| seedopt | INT | -1-1–18446744073709550000 | — |
| timeoutopt | INT | 3001–9999999 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |