Nodes/ComfyUI_RH_API/πŸ“₯ RH Download Results
ComfyUI Node

πŸ“₯ RH Download Results

Come back for your results later β€” RH Download Results

By xuchenxu168Β·Created 9 months agoΒ·Updated 9 months agoΒ· 7
πŸ“₯ RH Download Results
  • config
  • images
  • video_frames
  • text
  • audio
  • video
  • latent
β—„task_idβ€”β–Ί
β—„timeout600β–Ί
β—„save_to_localtrueβ–Ί
β—„output_prefixRH_DLβ–Ί

RH Download Results is the pack's "pick up where you left off" node. While RH Execute creates a task, waits for it, and downloads in one blocking move, this node only downloads - you give it a task ID (or several) and it fetches whatever RunningHub has produced, without creating anything new. Same result outputs, none of the orchestration.

Why bother? Three reasons. First, crash recovery: if your ComfyUI died mid-wait on a long cloud job, the task is still running on RunningHub - grab its ID from the console, rebuild your graph with a Download node, and collect. Second, batch runs: RH Batch Execute returns a comma-separated list of task IDs, and this node takes comma-separated IDs directly, pulls them all in parallel, and stitches the results into one output batch. Third, decoupling: queue a task, close ComfyUI, come back tomorrow and download. The cloud holds the result; your local session doesn't have to.

What you set

  • config - from RH Config. Required.
  • task_id - the ID from an RH Execute or RH Batch Execute run. Comma-separated IDs mean a parallel batch download (up to 10 workers).
  • timeout - how long to keep waiting for tasks that are still queued/running. Default 600s, range 60–3600.
  • save_to_local / output_prefix - same as Execute: dump results into your ComfyUI output dir with a prefix (RH_DL by default).

The six outputs mirror Execute exactly: images, video_frames, text, audio, video, latent. Wire images into a Preview Image and you'll see your cloud results.

How it works

It reuses the exact same machinery as Execute - poll /task/openapi/outputs every few seconds, then download files in parallel and convert them by type. For multiple task IDs it spins up a thread per task. The one behavioral difference worth knowing: when a single task fails, the node doesn't blow up the whole run. It returns a "Failed: <task_id>" placeholder image plus an ERROR: ... string in the text output. That's forgiving for a batch - but it means a "successful" run can silently contain failures, so glance at the text output if a batch looks wrong.

Gotchas

The timeout still applies to waiting, not download size - a task still queued after the timeout raises a "Task timeout" error. And access is tied to your API key: if the task belongs to a different account/key, or the task was purged, the poll will come back empty. Also note this node never creates a task, so wiring it up with a fresh (empty) task ID just polls uselessly until timeout - paste a real ID.

Install is pack-wide: 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, restart. No model files involved, ever - this pack only moves data between you and RunningHub's API.

CategoryKen-Chen/RH-API

Inputs (5)

NameTypeDefaultDescription
configRH_CONFIGRunningHub configuration from RH_Config node
task_idSTRINGTask ID from RH_Execute node
timeoutINT60060–3600Maximum time to wait for task completion (seconds)
save_to_localoptBOOLEANtrueSave images and videos to ComfyUI output directory
output_prefixoptSTRINGRH_DLPrefix for saved files

Outputs (6)

NameTypeDescription
imagesIMAGEβ€”
video_framesIMAGEβ€”
textSTRINGβ€”
audioAUDIOβ€”
videoVIDEOβ€”
latentLATENTβ€”