Nodes/NeoChooser/Neo Execution Timer ⚡
ComfyUI Node

Neo Execution Timer ⚡

A glowing stopwatch that lives on the graph

By 13february·Created 5 months ago·Updated 5 months ago· 1
Neo Execution Timer ⚡

      NeoTimer is a pure display node: a big neon MM:SS counter that ticks while your generation runs, with a small it/s readout underneath during sampling. It's not a tool - it's a glanceable clock that lives on the canvas instead of buried in the terminal. And it has one genuinely neat trick: it auto-pauses whenever a NeoChooser in the same workflow blocks for a pick, so from across the room you can tell whether ComfyUI is churning or politely waiting on your decision.

      How it works

      The Python side is essentially a no-op - execute() just returns {}. The node is marked OUTPUT_NODE, so ComfyUI treats it as a terminal: it always runs, like Save Image, and never gets pruned out of the graph. All the brains live in the client JavaScript, which runs a singleton timer that starts on execution_start, listens for the neo_chooser_show event to pause, and stops on completion, error, or interrupt. The final elapsed time is stashed into the node's properties (elapsed_time_str), so reload the workflow and the last run's time is still there.

      Two things worth knowing before you decorate a big graph with a row of these:

      • Every NeoTimer shows the same clock. The timer is a single global instance; each node you add is a mirror of it, not a per-branch stopwatch.
      • The speed line only shows the currently executing node's sampling rate - it/s when it's fast, s/it when it's slow - fed from ComfyUI's progress events. It's a mood ring, not a profiler.

      Inputs and outputs

      There are none. No inputs, no outputs - the schema is empty on both sides. You just add the node to the canvas and it does its thing. That's the whole point: nothing to wire, nothing to misconfigure. It sits wherever you can see it.

      So be honest about what it's for. It won't benchmark individual nodes or give you per-step timings - for real profiling you want the console or a proper tracing tool. What it does well is give you a wall-clock readout for your session and a clear visual "paused, go pick" signal that matches the pack's chooser. If that sounds cosmetic, it is - but it's the good kind, the kind that costs nothing and reads at a glance.

      Installing it

      Same pack as NeoChooser, so one install gets you both. ComfyUI Manager (search "NeoChooser"), or by hand:

      cd ComfyUI/custom_nodes
      git clone https://github.com/13february/NeoChooser
      

      Then restart ComfyUI. It appears under NeoNodes → NeoTimer. Dependencies are just numpy and Pillow - already present in any ComfyUI install - and there are no model downloads. Note the README's install URL (13february/ComfyUI-NeoChooser) is outdated; the real repo is 13february/NeoChooser.

      Common issues

      • Stuck at 00:00 or missing entirely? The extension probably didn't load - check the browser console for errors. The custom canvas widget is also the kind of thing ComfyUI's Nodes 2.0 frontend rewrite has been known to misrender; if that's the culprit, opt out of Nodes 2.0 and reload.
      • The clock is global and resets each run. Don't expect it to survive across runs or track a long-running job's total across pauses - it counts a single execution and stops when the queue finishes.
      • The display font loads from Google Fonts, so on a fully offline box it falls back to a default sans-serif. Works fine, just less pretty.
      • Since it's an output node it always executes, which can look "active" - that's just ComfyUI treating it as a terminal, not the node doing work.

      Pair it with NeoChooser and you get the full idea: the chooser holds the queue, the timer blinks into a paused state, you make your pick, and the clock resumes with the decision out of the timing. That sync is genuinely the reason to reach for this over a $2 desk timer.

      CategoryNeoNodes

      Inputs (0)

      No inputs

      Outputs (0)

      No outputs