Cool Down
Pause a run when your GPU gets too hot
- flow
- dependency
- flow
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;0means 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.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| safe_temperature | INT | 700–18446744073709550000 | — |
| max_temperature | INT | 750–18446744073709550000 | — |
| seconds | INT | 10–18446744073709550000 | — |
| max_seconds | INT | 3000–18446744073709550000 | — |
| flowopt | * | — | |
| dependencyopt | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| flow | * | — |