Nodes/Quality of Life Nodes for ComfyUI/ComfyDeploy API Download Files (Soze)
ComfyUI Node

ComfyDeploy API Download Files (Soze)

Wait for a run and pull down its output

By SozeInc·Created 2 years ago·Updated 5 days ago· 10
ComfyDeploy API Download Files (Soze)
    • filepaths
    • images
    • videos
    run_id
    output_save_folder
    api_urlhttps://api.comfydeploy.com/api/run
    wait_max_seconds600

    The collection step. Once you've queued a job on ComfyDeploy - either straight from ComfyDeploy API Node or recovered later via ComfyDeploy API Retrieve Cached Run IDs - this node takes that run_id, waits for the job to actually finish, and pulls the results down onto your disk (and into your graph, for images).

    How it works

    It polls ComfyDeploy for the given run's status, waiting up to wait_max_seconds for it to complete. Once the run finishes, it downloads whatever output files that run produced into output_save_folder, and returns them three ways: as plain file paths, as loaded IMAGE tensors you can keep working with in the same graph, and as video file references. If the run doesn't finish inside your wait window, this node times out rather than hanging forever - useful, since a remote job on someone else's infrastructure can queue behind other work and take longer than you'd expect.

    The inputs and outputs that matter

    • run_id - the job to check on and collect. Comes from ComfyDeploy API Node (same graph run) or ComfyDeploy API Retrieve Cached Run IDs (a job queued earlier).
    • output_save_folder - where downloaded files land locally.
    • api_url (default https://api.comfydeploy.com/api/run) - the run-status endpoint, distinct from the queue endpoint ComfyDeploy API Node uses. Leave it alone unless you're pointed at a non-default ComfyDeploy instance.
    • wait_max_seconds (default 600, 1–3600) - how long to wait for the run to finish before giving up. Ten minutes is the default; you can stretch it up to a full hour for a genuinely slow deployment, or shrink it if you'd rather fail fast and retry.
    • Outputs: filepaths (where things got saved), images (loaded IMAGE tensors, ready to feed straight into more nodes), videos (paths/URLs for any video output).

    How to install it

    Via ComfyUI Manager: search "Quality of Life Nodes for ComfyUI", install, restart. Manually:

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

    Needs CD_API_KEY set in your environment - same as every other ComfyDeploy node in the pack.

    Common issues & troubleshooting

    It times out on a job that eventually did finish. Bump wait_max_seconds - a busy ComfyDeploy deployment (someone else's traffic, a cold start, a heavy workflow) can genuinely take longer than 10 minutes. The cap here is an hour; if your job routinely needs more than that, you'll need to poll manually across multiple graph runs instead.

    images comes back empty even though the run clearly produced images. Check that the deployed workflow actually marks those images as outputs on ComfyDeploy's side - this node can only download what ComfyDeploy's API reports as the run's outputs, not arbitrary intermediate files from the remote execution.

    Auth errors. CD_API_KEY again - same account that queued the run needs to be the one polling it.

    You're calling this right after ComfyDeploy API Node in the same graph run and it feels slow. That's expected - this node is doing real waiting, potentially most of wait_max_seconds, because the remote job genuinely hasn't finished yet. If you're queueing a big batch, the pattern this pack is built for is to queue everything first (cache the run IDs), then come back and download in a separate pass - not queue-and-immediately-wait one at a time.

    CategorySoze Nodes

    Inputs (4)

    NameTypeDefaultDescription
    run_idSTRING
    output_save_folderSTRING
    api_urlSTRINGhttps://api.comfydeploy.com/api/run
    wait_max_secondsINT6001–3600

    Outputs (3)

    NameTypeDescription
    filepathsSTRING
    imagesIMAGE
    videosSTRING