Nodes/Inferway H3/Inferway H3 Resume
ComfyUI Node

Inferway H3 Resume

Your Generation Finished After ComfyUI Gave Up. Don't Pay For It Twice.

By inferway·Created 24 days ago·Updated 12 days ago· 1
Inferway H3 Resume
    • video
    • interaction_id
    • status
    ◄interaction_id►
    ◄profiledefault►
    ◄wait_timeout_seconds0►

    Here's the scenario this node exists for. You queue an Inferway H3 video, it's a 10-second clip and the queue is busy, and at 600 seconds your Inferway H3 Generate node throws wait_timeout_int_.... Or the ComfyUI server restarts. Or you hit Stop because you assumed that ended things. It didn't - the task is still alive on Inferway's servers, queued, running, or already finished and delivered while you stare at a red node.

    Re-queue the workflow and you pay for a second generation. Paste the ID into Inferway H3 Resume instead and you collect the one you already bought.

    What it does, precisely

    It polls an existing interaction to completion, downloads the delivered result, verifies it, and wraps it as a native ComfyUI VIDEO. That's it.

    The contract worth internalizing: Resume never creates a task. Zero creates, by design - a GET loop plus a download, with no code path where handing it an ID starts new work or bills you again. The pack's own acceptance run did Generate, then Resume on the same ID, then Cancel on the same ID, and paid creates across all three stayed at exactly one.

    It also works on a task that finished ten minutes ago. That makes it a retrieval tool as much as a recovery tool.

    How it works

    Same polling machinery as Generate, minus everything that spends money. It validates the interaction ID, then GETs that interaction on a backoff schedule - 2 seconds growing to 10 while queued or running, extending to 30 on transient network errors or a 429/5xx, always clamped by your local deadline. Recognized states are queued, running, succeeded, failed and cancelled.

    On success it checks the returned ID matches the one you asked for, pulls the result spec, and downloads with byte-count and SHA-256 verification before caching. Then it hands back the VIDEO. If the task genuinely failed or was cancelled remotely, you get a clear interaction_failed_<id> / interaction_cancelled_<id> error. It won't pretend.

    Inputs and outputs

    Three inputs, all required, and only one ever changes.

    interaction_id is the whole point - an int_ ID followed by 32 hex characters. Validated strictly, so a typo is caught before any network call.

    wait_timeout_seconds is the local deadline, 1 to 3600, default 600. That's your patience, not the service's. Resuming a job that's nearly done, the default is generous; resuming one still queued deep, raise it. If it expires you're back here again - which is fine, because re-running Resume is free.

    profile has exactly one option, default. The pack rejects anything else. Leave it alone.

    Outputs mirror Generate: video (native VIDEO, straight into SaveVideo), interaction_id (echoed back), and status (succeeded on a good run).

    Finding the ID when you didn't save it

    The error from a timed-out Generate prints it - wait_timeout_int_abc123... - and so does the log line the node writes at create time. If it's truly gone, the pack ships a history CLI. Run it from the pack directory with ComfyUI's Python:

    cd /path/to/ComfyUI/custom_nodes/inferway-comfy
    /path/to/ComfyUI/.venv/bin/python -m inferway_comfy history --limit 20
    

    That lists IDs, model, status, creation time and which key was used - no prompts, no signed URLs. --state, --since and --cursor narrow it. It never picks a job for you; you read the list, confirm which task is yours, and paste the ID in.

    Install and key

    Installed once for the whole pack. ComfyUI Manager, search Inferway H3 (inferway-comfy); or manually:

    cd /path/to/ComfyUI/custom_nodes
    git clone https://github.com/inferway/comfyui-inferway inferway-comfy
    /path/to/ComfyUI/.venv/bin/python -m pip install -r inferway-comfy/requirements.txt
    

    Only dependency is httpx. The credential is INFERWAY_API_KEY, exported in the environment of the ComfyUI server process before launch. There's no key field on these nodes on purpose, so your workflows stay shareable. The consequence for Resume: the key has to be the one that created the task. A key from a different Inferway account won't see that interaction, and you'll get an error that looks like the ID is broken when it's really a credentials mismatch - the history CLI tells you which key name owns a task.

    The one habit worth building

    Write the interaction_id somewhere durable - a note node in the workflow, or the ComfyUI log you leave open. Video tasks take minutes, servers restart, browsers close. That ID is the only thing standing between "I already paid for that clip" and "I paid for it again."

    CategoryInferway

    Inputs (3)

    NameTypeDefaultDescription
    interaction_idSTRINGInferway interaction ID to resume
    profileCOMBOdefaultAPI key profile. Add or switch keys: Settings → Inferway, or the Inferway menu.
    wait_timeout_secondsINT00–7200Local wait limit in seconds. 0 waits automatically (up to 7200s); 60-7200 sets an explicit limit. Reaching it never cancels the remote task.

    Outputs (3)

    NameTypeDescription
    videoVIDEOResumed video stream
    interaction_idSTRINGInferway interaction ID
    statusSTRINGSafe status text