Nodes/JNComfy/Cool Down
ComfyUI Node

Cool Down

Pause a run when your GPU gets too hot

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

A thermal safety valve, built directly into your graph. JN_CoolDown checks your device's temperature at the point it executes and, if it's over your set limit, pauses the run until things cool back down. It's part of JNComfy (jn-jairo/jn_comfyui), and it's one of the pack's most concretely useful nodes if you're running long batches on hardware without great cooling - a home rig without server-grade airflow, a laptop GPU, anything that can genuinely overheat under sustained load.

This node is the manually-placed version of a feature the pack's README also documents as an automatic patch (a global temperature config in jncomfy.yaml that pauses between every node or every sampling step). JN_CoolDown gives you that same check as an explicit node you can drop exactly where you want it, rather than applying it globally.

Why you'd want it

Consumer GPUs without a good cooling setup can throttle or, worse, thermal-shutdown mid-generation if you hammer them with back-to-back batch jobs. The README's own framing is blunt about this: "if your device don't have a good cooling system it can overheat after too many consecutive generations." Rather than babysitting a temperature readout yourself, this node checks it for you and inserts a wait automatically.

How it works

You set a safe_temperature and a max_temperature. Once the device's actual temperature exceeds max_temperature, the node pauses instead of continuing, and keeps checking every seconds until the temperature drops back to safe_temperature (or below). max_seconds caps how long it's willing to wait in total - set it to 0 and it'll wait indefinitely, however long it takes to cool down; set it to a real number and it'll give up waiting after that many seconds (matching the behavior the README describes for the equivalent global patch). Like the rest of this pack's workflow-control family, it takes optional flow/dependency inputs to pin its position in your execution sequence.

The inputs and outputs that matter

  • safe_temperature (INT, default 70) - the temperature it waits to cool down to.
  • max_temperature (INT, default 75) - the threshold that triggers a pause.
  • seconds (INT, default 1) - how long to wait between temperature re-checks while paused.
  • max_seconds (INT, default 300) - the cap on total wait time; 0 means wait indefinitely.
  • flow / dependency (any type, optional) - the usual manual-ordering wires this pack's workflow nodes share.

Output is flow, passed on once the check clears (or the wait cap is hit) - wire it into the next node's flow/dependency input.

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. This is a small, single-author pack - no real community discussion of it anywhere we could find, no entry in our knowledge base - but this particular feature is one of the more clearly documented parts of the README, since it mirrors a global config option the pack also ships.

Common issues & troubleshooting

It doesn't seem to check anything / no pause ever happens. Make sure this node is actually wired into your execution chain via flow/dependency - without that, ComfyUI has no guaranteed reason to run it at a specific point relative to your generation nodes.

Waits forever and the run seems stuck. That's max_seconds = 0, which is intentional unlimited-wait behavior per the README, not a bug - if you want a hard cap instead, set max_seconds to a real number.

Not sure your device even reports temperature correctly. This node reads whatever temperature sensor your system exposes; if you're on hardware or a platform where that reporting is unreliable or unavailable, the safest move is to test with a low max_temperature first and watch what actually happens rather than trusting it blind on a long batch run.

CategoryJN/Other

Inputs (6)

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

Outputs (1)

NameTypeDescription
flow*