Nodes/OpenRouter Studio/OpenRouter Studio · Resume Video
ComfyUI Node

OpenRouter Studio · Resume Video

Reclaim a video job after ComfyUI dies

By tahabahrami·Created about a month ago·Updated about a month ago· 0
OpenRouter Studio · Resume Video
    • video
    • poster
    • local job id
    • provider job id
    • metadata JSON
    • actual cost USD
    job_id
    poll_interval_seconds5.0
    poll_timeout_seconds3600
    prefer_local_completed_filetrue

    You queued a video, ComfyUI froze or you hit interrupt, and now there's a half-finished job still running - and billing - on someone else's server. Resume Video is the node you grab instead of re-queuing and paying twice. It re-attaches to an existing OpenRouter video task, polls it to completion, and downloads the finished clip. It never submits a new generation request. That's the entire point, and it's the pack's best idea.

    Why this exists: the Video node is interruption-safe by design. The moment OpenRouter accepts a task, its provider job ID is written to a private SQLite ledger in your ComfyUI user directory. So "resume" isn't guesswork - the job is on disk, and this node just needs its identifier. Both IDs work in the job_id field: the local Studio job ID (a UUID) or the raw OpenRouter provider job ID (the job-... string). Paste either one, and it looks up the ledger, resumes polling, and fetches the video when the provider is done.

    How it works

    Give it job_id, set poll_interval_seconds (default 5) and poll_timeout_seconds (default 3600), and let it run. prefer_local_completed_file (default on) reuses a completed local artifact when it still exists instead of re-downloading from OpenRouter - handy when you're re-running a workflow and the file is already on disk. When the task completes you get a native ComfyUI VIDEO value plus a poster IMAGE, same as the generating node would hand you.

    Inputs and outputs

    Inputs: job_id, poll_interval_seconds, poll_timeout_seconds, prefer_local_completed_file. That's the whole set - no model, no prompt, no seed. Outputs: video (VIDEO), poster (IMAGE), local job id, provider job id, metadata JSON, and actual cost USD.

    When you actually need it

    • Your Video node's polling was interrupted and the error said the remote job may continue - resume with the provider ID.
    • ComfyUI was closed mid-job; on restart you want the result without re-generating.
    • You started a video in Studio Mode (or an earlier workflow) and want the finished file pulled back into a graph now.

    The README's rule of thumb: resume by job ID. Do not queue a second generation unless you have checked that the first provider task failed definitively. That discipline is exactly what this node exists to enforce.

    Install

    Same shared install as the rest of the pack - ComfyUI 0.28.0+, ComfyUI Manager → search OpenRouter Studio → Install → restart → paste your OpenRouter key on the first-run screen. No model downloads; dependencies are light.

    Troubleshooting

    • "Enter a local or OpenRouter video job ID": the field was left blank. Find the ID in the Job & Asset Center history, or copy the job-... string from OpenRouter activity.
    • Invalid ID: if the ID isn't in the local ledger and isn't a recognizable provider ID, the node can't locate the task. A mistyped provider ID resolves to nothing useful - check OpenRouter's activity page to confirm the real one.
    • The job failed upstream: resume will report that status honestly. It can't restart a dead task - that would be a new submission, which is the one thing this node refuses to do.
    • It won't speed anything up: it polls at your interval and waits out the timeout. Long video renders take as long as they take.

    This is the least glamorous node in the pack and one of the most useful. It's the safety net that lets you treat a metered, no-cancel video API as something you can afford to leave running - because when it breaks, you don't pay twice.

    CategoryOpenRouter Studio/Video

    Inputs (4)

    NameTypeDefaultDescription
    job_idSTRINGAccepts a local Studio job ID or the OpenRouter provider job ID.
    poll_interval_secondsFLOAT5.01–60
    poll_timeout_secondsINT360060–86400
    prefer_local_completed_fileBOOLEANtrueReuse a completed local artifact when it still exists; otherwise fetch from OpenRouter.

    Outputs (6)

    NameTypeDescription
    videoVIDEO
    posterIMAGE
    local job idSTRING
    provider job idSTRING
    metadata JSONSTRING
    actual cost USDFLOAT