Nodes/Inferway H3/Inferway H3 History
ComfyUI Node

Inferway H3 History

Finding the video you already paid for

By inferway·Created about a month ago·Updated 22 days ago· 1
Inferway H3 History
    • history
    • latest_succeeded_id
    ◄profiledefault►
    ◄limit10►
    ◄stateall►

    Here's the situation this node exists for. You queued an Inferway H3 generate, the wait cap expired or you restarted ComfyUI, and the run is sitting there red. The task isn't dead - the remote order is still running and will be billed when the video finishes. All you need is the interaction id. All you have is a console tab you'd rather not open.

    InferwayH3History lists your account's recent tasks right on the canvas. It's the read-only companion to InferwayH3GenerateV2 and InferwayH3Resume in the comfyui-inferway pack. Context worth knowing: the model behind it, MiniMax H3, is a 33B omni-modal video model whose open weights are licence-locked out of the US, EU, UK and Korea, which is exactly why a hosted route like this exists. But nothing here is H3-specific - the node lists whatever your Inferway key has been doing.

    What it does, precisely

    It sends POST /v1/interactions with op=list and nothing else. Never get, never create, never cancel. The author's contract is explicit that op=list doesn't even issue a signed download link, so the node is safe to leave wired in a panel workflow - it cannot spend money and it cannot fetch media.

    Two behaviours worth knowing before you wire it up:

    • It refetches on every queue. The node deliberately overrides its fingerprint so ComfyUI can never serve it from cache. History is live data; a cached page would hide a task that finished after the first run. That's the right call, and it has a consequence downstream (see below).
    • It's an output node. It prints to the canvas, so it runs when you queue the workflow even with nothing connected to its outputs.

    Inputs and outputs

    Three inputs, all with defaults that are fine:

    • profile - which stored API key to read. If you keep several keys, this is how you check the right account.
    • limit - 1 to 50, default 10. How many recent interactions to list.
    • state - all, succeeded, failed, queued, running or cancelled. all sends no server-side state filter.

    The history output is one line per interaction, pipe-separated: UTC timestamp to the minute, state, request mode, duration in seconds, the charged amount with currency, availability (downloadable or expired), the id, and a prompt excerpt. With nothing to show, the single line reads No interactions found. The charge column is the useful one - it's how you confirm that the run you thought timed out was actually billed or not, without opening the console.

    The second output, latest_succeeded_id, is the neat bit: the newest succeeded interaction whose result is still downloadable, empty when there isn't one. It's a STRING shaped for the interaction_id input on InferwayH3Resume, so the two nodes wire together directly - list, then collect, without typing a 32-hex id by hand.

    The trap in the shipped example

    The pack's own history.json example wires History into Resume, and the README flags the consequence plainly: whenever no downloadable success is listed, Resume fails the queue with invalid_interaction_id, and when one is listed, Resume downloads that newest video again on every single queue. That's free - no new order, just transfer time - but it will cheerfully re-fetch the same clip into SaveVideo forever. Unwire Resume when all you want is the list.

    Installing it

    Same pack, same install, no extra anything:

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

    Or search Inferway H3 in ComfyUI Manager (registry package inferway-comfy) and restart. Dependencies are httpx and nothing else, and there are no model files - this is a thin client over the Inferway API, so the only thing that can bite is the key. Set INFERWAY_API_KEY in the environment of the ComfyUI server process and restart, or use the in-app dialog (Inferway → Manage Inferway API key), which stores it owner-only under user/__inferway/credentials.json.

    If it looks empty

    An empty list usually means one of three things: you're on the wrong profile, you're filtering state = succeeded when the run you care about is still queued or running, or the key belongs to a different Inferway account than you thought. There's no failure mode here where the node loses you a task - it can't create, cancel or charge anything. If you'd rather not open the canvas at all, the pack ships a CLI with the same scope:

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

    It prints ids, model, status, creation time and key name - no prompts, no signed links, and it never auto-picks a job for you. You confirm the id, then hand it to Resume.

    CategoryInferway

    Inputs (3)

    NameTypeDefaultDescription
    profileCOMBOdefaultAPI key profile. Add or switch keys: Settings → Inferway, or the Inferway menu.
    limitINT101–50How many recent interactions to list (1-50)
    stateCOMBOallFilter by state; 'all' sends no state filter

    Outputs (2)

    NameTypeDescription
    historySTRINGOne line per interaction: created_at (UTC, to the minute), state, mode, duration, charge, availability, id, prompt excerpt
    latest_succeeded_idSTRINGNewest succeeded interaction with a downloadable result; empty when there is none. Wire into Resume.