🔥Fire Timer
A run-clock you'll actually want to keep on the canvas
When a workflow is mid-run you're mostly staring at nothing - or at a progress bar you have to squint at. RectumFireTimer is a runtime clock drawn right on the canvas: a live mm:ss:cs counter while a run executes, freezing at the final elapsed time when it stops, and resetting only when the next run starts. It's the kind of node you don't think you need until you've used it once.
The clever part is what it does with the elapsed time. The expanded drawer keeps the last three runs stored inside the workflow itself: the final render time, the render date, and the GPU name plus VRAM of the machine that produced it. "20 seconds" is a lot more useful when you also know whether that was a 4090 or a 3060. Come back to a workflow a month later, or share it, and the numbers travel with the file instead of living in your memory.
How it works
There is no backend magic here at all. The Python side is a no-op output node with no inputs and no outputs - its only job is to exist in the graph so the frontend knows where to draw. All the timing happens in the browser: the JS listens to ComfyUI's execution events (execution_start, executing, and the error/interrupt cases), measures wall-clock time between them, and renders the timer on the node's own canvas. It freezes on the final value rather than zeroing out at stop, so the result stays visible until you start another run. The running/stopped states get distinct visual themes, and yes, the blinking colons are part of the charm.
Because it's a passive display, you just drop it on the canvas and forget about it. Nothing wires into it, nothing comes out.
What it's good for (and what it isn't)
Reach for it when you want immediate visual confirmation that a run is actually progressing, and a persistent record of how long things took. It's the honest version of a debug widget that actually looks like it belongs in the UI.
One honest limitation: it measures whole-run wall time, not per-node time. If you need to know which node ate your render, that's ComfyUI's own profiling territory, not this node's job.
Install
Ships in RectumFire with zero dependencies - no models, no pip packages. ComfyUI Manager (search "ComfyUI-RectumFire") or:
cd ComfyUI/custom_nodes
git clone https://github.com/vladgohn/ComfyUI-RectumFire.git
Restart ComfyUI, and because the timer is drawn entirely by browser JS, do a hard refresh (Ctrl+Shift+R) after installing or updating - otherwise the frontend is still running without the timer code. If it doesn't show up at all, check the console for import errors and confirm the repo is in custom_nodes/. That's the whole setup. Drop it on the canvas, run, and start knowing how long things actually take.
Inputs (0)
No inputs
Outputs (0)
No outputs