Nodes/comfyui_qwen_runninghub/RunningHub Text to Image
ComfyUI Node

RunningHub Text to Image

Run a Qwen-sized text-to-image model without the 20GB download

By marduk191·Created 9 months ago·Updated 9 months ago· 2
RunningHub Text to Image
    • IMAGE
    promptA beautiful landscape
    webapp_id
    api_key
    negative_prompt
    timeout600

    The cheapest way to generate with a Qwen-class image model is to not run it at all. That's RunningHub Text to Image in a sentence: you type a prompt, RunningHub's cloud does the denoising on their GPUs, and the node hands back a finished IMAGE tensor. No 40GB download, no CUDA out of memory, no VRAM anxiety. It's the flagship of the marduk191/comfyui_qwen_runninghub pack, a conversion of the freeqwenimage webapp into five ComfyUI nodes, and the one people actually search for.

    One honest caveat up front, straight from the author's README: "This is untested as I have no access to runninghub. It might work, It might not." The API calls are textbook-correct and RunningHub is a real platform, but the pack shipped without an end-to-end test. Budget five minutes to verify it with a throwaway prompt before you depend on it.

    How it works

    No image goes up this time - the node just submits a job to RunningHub's /task/openapi/ai-app/run endpoint carrying your prompt (and optionally a negative_prompt) as node parameters, then polls /task/openapi/status every three seconds until the task completes, downloads the first result, and converts it to an IMAGE tensor. Default wait is 600 seconds, and the node blocks your queue for the duration. If you're comparing it to local generation, expect it to feel slower but free your card up completely.

    The inputs that matter

    • prompt - the usual. Multiline, default "A beautiful landscape". Say what you want like you mean it.
    • negative_prompt - optional, the only node in this pack that has one. Good for "blurry, low quality, extra fingers" if the backend model respects it.
    • webapp_id / api_key - your RunningHub credentials (below).
    • timeout - seconds to wait, default 600, max 1800.

    The big surprise for people coming from local workflows: there's no seed, no resolution, no aspect ratio, and no model selector. RunningHub's webapp decides all of it. That means the same prompt won't reproduce exactly from run to run, and you can't force 2048px out of it. If you need deterministic or sized output, this isn't the node - it's for when you want the cloud model's quality without the local weight of it.

    Install

    Lightweight - no models land on your disk at all. From your ComfyUI root:

    cd ComfyUI/custom_nodes
    git clone https://github.com/marduk191/comfyui_qwen_runninghub
    cd comfyui_qwen_runninghub
    pip install -r requirements.txt
    

    Restart ComfyUI and look under the "RunningHub" category. Manager can usually find it by the pack title, though it's not in the official Comfy Registry (the registry PR is still open), so if Manager misses it, the clone above is the guaranteed route. Dependencies are requests, Pillow, numpy and torch - nothing exotic.

    Credentials

    Get a WEBAPP_ID and API_KEY from your RunningHub dashboard, and set them as environment variables before starting ComfyUI, or type them straight into the node:

    export RUNNINGHUB_WEBAPP_ID="your_webapp_id"
    export RUNNINGHUB_API_KEY="your_api_key"
    

    The env vars become the widget defaults when ComfyUI starts, so both paths work - just don't change the env mid-session and expect the node to notice.

    Troubleshooting

    "RunningHub credentials are required" means a blank webapp_id or api_key - the most common mistake by far. Timeouts are the second most common: RunningHub queues jobs like everyone else, so on a busy day 600 seconds isn't always enough; bump timeout to 900–1200 and re-queue. Task failed errors print the API's own message to the console - read it, and check invalid credentials, empty credits, or a backend app that's been taken offline. Given the author's untested caveat, a total failure usually means RunningHub's API contract moved and this hardcoded conversion hasn't caught up. A quick sanity test costs you one prompt and tells you which world you're in.

    Where it fits

    Wire the IMAGE output straight into a SaveImage or PreviewImage and you're done - or chain it into an upscaler, an ImageToVideo node, or a second pass of your own. It's a solid answer to the "paid cloud services are easy but local is a setup marathon" problem the community keeps circling: you get the browser-click simplicity, but as a node in your graph.

    CategoryRunningHub

    Inputs (5)

    NameTypeDefaultDescription
    promptSTRINGA beautiful landscape
    webapp_idSTRING
    api_keySTRING
    negative_promptoptSTRING
    timeoutoptINT60060–1800

    Outputs (1)

    NameTypeDescription
    IMAGEIMAGE