Nodes/comfyui-ap-tools/AP Execution Timer
ComfyUI Node

AP Execution Timer

See exactly how slow your workflow just got

By Snoopick·Created 5 months ago·Updated 4 months ago· 0
AP Execution Timer

      Ever spent an afternoon "optimizing" a workflow and only finding out it got slower? AP Execution Timer is the cure for that. It's a display-only node that times each queue run from start to finish, shows a live counter with millisecond precision, and keeps the last three runs in a little history strip. Drop it on the canvas, run, and you get an instant before/after read on whether that node swap or batch size change actually helped. For anyone tuning step counts, hires-fix passes, or new checkpoint weights, it turns "feels faster" into a number.

      The name undersells the mechanism a little. The Python half of this node is almost a joke - it just returns ComfyUI's server uptime through an /ap-tools/execution-timer/uptime endpoint. The real timing happens entirely in your browser. The frontend hooks ComfyUI's own execution events (execution_start, execution_success, execution_end, execution_error, execution_interrupted), starts a stopwatch on start, freezes it when the queue finishes, and writes the result into localStorage. That's why the history survives a page refresh - and it's why the counter only ticks while a run is actually in flight, not while you're noodling around with wires. If the tab goes inactive and an event gets missed, it falls back to the timestamp the Python side sent. It's a genuinely tidy bit of plumbing, and it means no model files, no API keys, no nothing - it can't affect your images one way or another.

      The node takes no inputs and no outputs. It's marked as an output node so it always runs, but it just displays. You read it, that's the whole job.

      Inputs and outputs

      None - this is a display node. Add it to the graph, size it up (minimum 440×160, monospace counter), and leave it alone.

      Common gotchas

      • It times the whole queue, not the workflow. The execution events are global to your ComfyUI tab. Run workflows in two tabs at once and the timer reflects whichever run started last. Keep it in one active workflow and it's exactly what you want.
      • History is per-browser. It lives in localStorage, so clearing site data - or switching browsers - wipes your last-three-runs list.
      • The Python uptime number is not your run time. If you poke at the API you'll see server uptime, which is useful as a "how long has my box been up" check but is not the per-run duration the widget shows.

      Install

      Install it the normal way for this pack: in ComfyUI Manager search "ap-tools" (or "AP Tools") and install, then restart ComfyUI. Manually it's:

      cd ComfyUI/custom_nodes
      git clone https://github.com/Snoopick/comfyui-ap-tools
      

      Restart ComfyUI and the node appears under the ap-tools category. No Python dependencies beyond what ComfyUI already ships, no models to download - it's pure JavaScript plus one tiny aiohttp route.

      Is it essential? No - ComfyUI's queue already shows a progress bar and per-node timing, and tools like rgthree and Impact Pack give you fancier workflow plumbing. But if you live in one graph and want a persistent, at-a-glance run timer that remembers your last few runs, this is the simplest thing that does exactly that.

      Categoryap-tools

      Inputs (0)

      No inputs

      Outputs (0)

      No outputs