H3 Chunked v5 · Window EAV Actual Calls (T8 EXP)
Counting the EAV calls your window actually made
- window_result
- prepared
- runtime
- cumulative_av_latent
- report_json
Effects in ComfyUI have a credibility problem. You chain a patch node, the sampler runs, the output looks slightly different, and you conclude the patch fired. Sometimes it did. Sometimes the next node in the chain overrode it, sometimes it delegated straight back to dense attention, and sometimes it silently did nothing because the model owner wasn't one it recognised.
H3 Chunked v5 · Window EAV Actual Calls is the pack's answer, scoped to one joint AV PASS2 window: it tells you what the EAV layer actually executed. It's an output node, so nothing downstream depends on it - you run it and read report_json.
Wiring it
Three required inputs, no optional ones:
window_result- the typed result from the One Joint AV PASS2 Window node whose chain position you're auditing.prepared- the same global preparation that window consumed. If you fed the audit a different preparation, it will notice.runtime- theT8_STAGE_EAV_RUNTIMEreturned by H3 Chunked v5 · External Window EAV for that window.
Outputs are cumulative_av_latent (the clip as completed at that point, matching the window node's own cumulative output) and report_json. The report is the deliverable.
Sharing prepared and runtime isn't ceremony. The runtime object is bound to one source, one lift, one plan and one window_index; the audit uses that to make sure you're not reading counters from a different window or a stale execution. In a two-window clip that's two apply nodes and two audits - this family never audits a loop on your behalf.
What the report does and doesn't tell you
It answers: did EAV actually execute on this window, and how many times. That's it. The node description is unusually direct about the limits - "a connection alone does not certify effect coverage or image/audio quality." Non-zero calls mean the routing happened. They don't mean the gain was meaningful, that every layer you cared about was covered, or that the picture improved.
The pack treats non-unit gains as measurements rather than wins, and a maximum gain sitting at ~1.0 is a perfectly honest result that means the effect did essentially nothing to your clip. The hard gain ceiling lives in the EAV config, not here.
Also: Relay+EAV combined calls are attributed elsewhere. If you wired both an EAV apply and a Relay projection onto the same model, this standalone audit does not certify that composition - the pack keeps the two claims separate on purpose rather than double-counting calls and calling it evidence.
Install
Manager → search MiniMax H3 Audio T8, or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8
Fully quit and restart ComfyUI, then refresh the page. This needs a recent ComfyUI with native H3 support; the pack's nodes appear after a proper restart, not a queue refresh. Registry and GitHub releases are independent, so clone from GitHub when Manager's version is behind. No extra pip packages for the base and EXP nodes - requirements.txt is empty so installation can never replace ComfyUI's Torch/CUDA stack. Model weights are a separate download: main model, Qwen text encoder, video and audio VAEs.
Where it goes wrong
Empty or identity-mismatched counters. If the EAV apply node was rewired, or the plan/source changed after the runtime was built, the audit refuses instead of reporting zeros. Fix the wiring upstream.
You expected a visual change from report_only. The default EAV mode measures without applying. That's the mode you'll find in the example graphs; apply_exp is opt-in.
Jumping straight to apply_exp. Change one variable at a time - freeze the seed, keep the recipe, and compare against a report-only run of the same window. The pack's own docs take exactly that line, and it's how you'll know whether the effect is doing anything on your material.
Missing nodes after an update. Look for a stale second copy of the pack in custom_nodes shadowing the real install. Rename the old directory with a .disabled suffix - a leading underscore does not disable a pack - restart, and check python_module in /object_info.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| window_result | T8_CHUNKED_V5_WINDOW_RESULT | — | |
| prepared | T8_CHUNKED_V5_PREPARED | — | |
| runtime | T8_STAGE_EAV_RUNTIME | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| cumulative_av_latent | LATENT | — |
| report_json | STRING | — |