Nodes/ComfyUI-MAINodes/H3 Precision Probe (A6: 4-bit vs 8-bit activation map, alpha)
ComfyUI Node

H3 Precision Probe (A6: 4-bit vs 8-bit activation map, alpha)

Which activations could survive 4-bit? This node measures before you commit

By matlowai·Created 17 days ago·Updated about 18 hours ago· 112
H3 Precision Probe (A6: 4-bit vs 8-bit activation map, alpha)
  • model
  • MODEL
tagprecprobe
every8
out_diroutput/h3_precprobe

This is a research instrument, not a workflow node - it's the "A6 phase 0" of the pack's VRAM Lab push to figure out which activation projections on H3 can drop from int8 to 4-bit without visibly breaking renders. If you're just trying to render a clip, skip it. If you're trying to squeeze the last bytes out of a small card by quantizing activations, it's the measurement step you're supposed to run before you commit to a format.

How it works

The source's docstring is the best summary: it records, per (forward, block, projection, segment), the real input activation of every block linear, plus the extra output error that NVFP4 / NVFP4+Hadamard / FP8 activation quantization would add over the shipped int8 path, and the per-block residual change. In plain terms: it samples the actual activations as they flow through a run, and computes what a lower-precision quantizer would have done to them - so you can see which projections are near the edge and which have headroom.

It needs H3 Streamed Blocks downstream, because that's what isolates the projections for it to look at. The cost is stated plainly: about 1.2x at every=8. Output is a JSONL under out_dir, meant to be drawn with the pack's benchmarks/scripts/prec_map.py - a precision map.

Inputs:

  • model - the model to instrument; passes through.
  • tag (default precprobe) - run label; files land in out_dir/<tag>_<time>/.
  • every (8) - sample one chunk in N per (block, projection). Higher = cheaper and coarser; this is your cost/coverage dial.
  • out_dir (default output/h3_precprobe) - relative to the ComfyUI working directory.

The only output is the patched model - everything it produces lands on disk, not on a wire.

How it fits the VRAM Lab story

The pack's streamed-block work already quantizes activations per row and accumulates in int32 for int8 (bit-equal to stock, per the README). This probe is the next question - can part of that go to 4-bit, and where? It's honest research scaffolding: record, draw the map, decide which projections could take the lower format, then (if you're following the lab's arc) validate with a same-seed sensitivity sweep. The H3FakeQuant sibling in the same file does that second half - simulating NVFP4/FP8 on a chosen projection set at same-seed.

Install

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

or ComfyUI Manager → ComfyUI-MAINodes, restart. Category MAINodes/VRAM Lab. No extra deps, but remember it wants H3 Streamed Blocks upstream to be useful.

Common gotchas

Don't expect a verdict output - there is no "safe/unsafe" wire, just the JSONL and the map script. And watch every: at 1 you're recording nearly every chunk, which at H3 scale is real overhead (the ~1.2x figure assumes the default 8). This node changes nothing about your render's output - it's observation only - so the thing to check after a run is that out_dir actually has the JSONL before you build conclusions on it.

CategoryMAINodes/VRAM Lab

Inputs (4)

NameTypeDefaultDescription
modelMODEL
tagSTRINGprecprobe
everyINT81–256sample one chunk in N per (block, projection)
out_dirSTRINGoutput/h3_precprobe

Outputs (1)

NameTypeDescription
MODELMODEL