Nodes/ComfyUI-MAINodes/H3 Flight Recorder Start (alpha)
ComfyUI Node

H3 Flight Recorder Start (alpha)

The front half of the flight recorder that calibrates your cost estimates

By matlowai·Created 17 days ago·Updated about 16 hours ago· 112
H3 Flight Recorder Start (alpha)
  • anything
  • anything
keydefault
log_path

Pure instrumentation, and the simplest node in this batch to understand. Drop H3 Record Start in front of an expensive node, H3 Record Stop after it, and together they append one local JSON line per render - work units, resolution, model tag, seconds per step, torch peak bytes - to a flight-recorder file that the timeline surface's price meter calibrates from. That's what makes H3 Plan Estimate's seconds output real instead of a guess: it's your box, your stack, your recorded numbers.

How it works

H3RecordStart is the front half. It resets the torch peak counters, and it passes its input through untouched - the anything input and output are the same wire, so the node sits inline without disturbing the graph. Its one real input is key (default default), which names the recording so Record Stop on the other side matches it. There's also an optional log_path: if you point it at ComfyUI's log file, it notes its size now, so the streamed flag on the recorded line can only be read from lines this run actually wrote - a small honesty measure against stale log reads.

Inputs:

  • anything - any-type passthrough.
  • key - the recording's name.
  • log_path - optional; ComfyUI's log file.

Output: anything, unchanged.

The pair together is a classic plumbing pattern - a pass-through pair bracketing a region of the graph, exactly the shape this KB's plumbing notes describe for measurement wrappers. The node itself touches nothing downstream; it only records.

Why you'd bother

Because every cost estimate in this pack that claims to know your box comes from these files. The flight recorder defaults to /root/.cache/mainodes/flight_recorder.jsonl (that's the path H3RecordStop writes, and what H3 Plan Estimate reads). A few renders recorded, and the timeline's price meter stops giving you "-1" and starts giving you minutes you can trust. If you run the timeline surface or the plan-minting workflow at all, this is the calibration you're supposed to set up first.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/matlowai/ComfyUI-MAINodes

or ComfyUI Manager → ComfyUI-MAINodes, restart. Category latent/minimax/timeline.

Common gotchas

The pair only records if both halves are in the graph and share a key - a Start with no Stop writes nothing. It's local-file only, nothing phones home, but that also means a fresh machine (or a different recorder_path) has an empty recorder until you run a couple of renders. That's not a bug; it's the calibration being yours.

Categorylatent/minimax/timeline

Inputs (3)

NameTypeDefaultDescription
anything*
keySTRINGdefault
log_pathoptSTRINGComfyUI's log file, if you have one. Its size is noted NOW so the streamed flag can only be read from lines this run wrote

Outputs (1)

NameTypeDescription
anything*