Nodes/JNComfy/Cool Down Output
ComfyUI Node

Cool Down Output

Thermal throttling as the last node in a branch

By jn-jairo·Created 2 years ago·Updated 2 years ago· 5
Cool Down Output
  • dependency
    safe_temperature70
    max_temperature75
    seconds1
    max_seconds300

    Same thermal-safety check as JN_CoolDown, but built to sit at the very end of a chain instead of the middle. This is the terminal variant: it does the identical wait-for-cooldown logic, but it's marked as an output node and doesn't hand anything forward, because there's nothing after it to hand anything to. It's part of JNComfy's (jn-jairo/jn_comfyui) workflow-control family.

    Why a separate node for this

    Recall how ComfyUI's executor works: it only runs nodes that lead, directly or transitively, to something marked as an output node, and it prunes everything else as dead code. JN_CoolDown has a flow output specifically so it can sit mid-chain and hand off to whatever's next - but if a cooldown check is the last thing you want to happen in a branch (say, pause and cool down after a batch finishes, with nothing following it), a mid-chain node with an unused output risks that whole branch getting pruned if nothing consumes it. JN_CoolDownOutput solves that by being is_output_node=True itself - an anchor, the same role JN_FlowOutput plays for the plainer flow-chain nodes, except this one also does the actual thermal check rather than being a no-op.

    How it works

    Identical mechanics to JN_CoolDown: set safe_temperature and max_temperature, and once the device crosses max_temperature the node pauses, re-checking every seconds until it drops back to safe_temperature, capped at max_seconds total wait (0 meaning wait indefinitely). The only structural difference from JN_CoolDown is what's on either end - this node takes dependency only (no flow input), and produces no output at all, because it's meant to be the last thing in the chain.

    The inputs and outputs that matter

    • safe_temperature (INT, default 70) - target temperature to cool down to.
    • max_temperature (INT, default 75) - threshold that triggers the pause.
    • seconds (INT, default 1) - interval between re-checks while waiting.
    • max_seconds (INT, default 300) - cap on total wait; 0 means unlimited.
    • dependency (any type, optional) - wire in the flow output from whatever precedes this in your chain.

    No outputs - this is a genuine terminal node.

    How to install it

    Via ComfyUI Manager: search "JNComfy", install, restart. Manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/jn-jairo/jn_comfyui
    

    then restart ComfyUI. Small, single-author pack, no real community discussion anywhere we could find and no entry in our knowledge base - this node's mechanics mirror what the README documents for the pack's global temperature-limit config, which is the clearest primary-source grounding available for it.

    Common issues & troubleshooting

    Not sure whether to use this or JN_CoolDown. Simple rule: if something needs to happen after the cooldown check in your graph, use JN_CoolDown (it has a flow output to continue the chain). If the cooldown check is the last thing in that branch, use JN_CoolDownOutput - it anchors the branch as an output node so ComfyUI doesn't prune it, since a plain mid-chain node with nothing consuming its output would otherwise risk being skipped.

    Waits forever. Same behavior as JN_CoolDown - max_seconds = 0 is unlimited wait by design. Set a real value if you want a hard cap.

    Doesn't appear to run at all. Check that dependency is actually wired from the preceding node's flow output - without that connection, this node has no guaranteed position in the execution order.

    CategoryJN/Other

    Inputs (5)

    NameTypeDefaultDescription
    safe_temperatureINT700–18446744073709550000
    max_temperatureINT750–18446744073709550000
    secondsINT10–18446744073709550000
    max_secondsINT3000–18446744073709550000
    dependencyopt*

    Outputs (0)

    No outputs