H3 Hierarchical Evidence Reduction
Cuts the evidence, keeps the truth
- media
- evidence_graph
- evidence_report
- feasible_timeline
- reduction
Long reference sets and long clips both push in the same direction: more evidence than a prompt can carry. Something has to choose what survives. This node is that chooser, and its defining property is that it's the boring kind of chooser - it selects under stated budgets and fails rather than improvising.
What it does
It reduces admitted evidence under explicit deterministic budgets. The word doing the work is deterministic: the module "selects caller-owned typed evidence under explicit finite budgets" and, per its own docstring, "never generates summaries, infers missing facts, chooses a provider, or mutates the accepted evidence graph or feasible audiovisual timeline."
So it's not a summariser and there's no model in it. You give it the set of things known about your assets - typed evidence records - plus a target to reduce toward, and it picks what to keep, what level of granularity to keep it at, and reports its budget usage. Levels are explicit: asset, shot, segment, modality_summary, cross_modal_relation. Modality is explicit too: visual, audio, text, multimodal. Nothing is compressed into prose, which is where a summariser would start inventing.
The budgets are real and finite, not advisory: up to 512 items, 256 source ids, 4096 characters of text, a 128-character rationale, and a hard cap of 262,144 bytes on the serialised output. If it can't fit what the budget requires without unsafe loss, the result status says so - complete, partial, blocked, or conflicting - and "fails closed on unsafe loss" is the module's stated behaviour.
Inputs and outputs
Four required inputs, all typed, with no widgets to set:
- media - the admitted media envelope (
H3_MEDIA_PRODUCER_RESULT), the authority for what assets exist. - evidence_graph and evidence_report - from H3 Evidence Fusion Producer.
- feasible_timeline - from H3 Feasible AV Timeline.
One output: reduction (H3_HIERARCHICAL_EVIDENCE_REDUCTION). That goes to H3 Constrained Semantic Planning, and onward into the acceptance chain. Keeping the report attached to its graph matters here as everywhere in this pack - consumers assert the pair belongs together.
Notice there's no widget for "how aggressive should the reduction be." The target and budgets are part of the request structure rather than this node's surface. If you want a different reduction, you change the target upstream, not a slider here.
Install
The pack isn't in the Comfy Registry yet:
cd ComfyUI/custom_nodes
git clone https://github.com/rookiestar28/ComfyUI-MiniMaxH3-Studio.git
# restart ComfyUI
No Python dependencies are declared, nothing is downloaded during install, and the sidebar's browser extension comes prebuilt. Python 3.10+. You need no model weights for this node - it's arithmetic over typed records, and it runs instantly.
Why you'd reach for it
Two situations.
The first is the reference-heavy workflow. If you're feeding a video reference and an image reference and a soundtrack into a single clip, the raw evidence about all three is far more than any prompt should contain, and the interesting question is which observations actually bear on the shot you're making. A budgeted, deterministic selection tells you that, and tells you what it dropped.
The second is the deterministic route. This node is a mandatory link if your workflow is meant to end at H3 Local Reconstruction Acceptance - that gate checks the chain for a current reduction, and a missing stage means no acceptance. If you've ever wondered where the pack's "we didn't improvise anything" claim is enforced, it's this kind of stage plus the acceptance node downstream.
The contrast with the LLM-in-the-graph pattern is the point. When you ask a language model to summarise a pile of evidence into a prompt, you get fluent text and no idea what it discarded or made up (llm-in-comfyui.md). Here you get a selection with counts, levels, a rationale and a status code. Less readable, considerably more checkable.
Gotchas
If the reduction comes back blocked or conflicting, the fix is upstream. Blocked usually means the evidence graph or timeline it was handed isn't in a state it can reduce - often because a producer's report doesn't match the value it came with, or because the graph's own status isn't settled. Conflicting means the evidence contains claims that disagree, and the node is choosing to surface that rather than pick a winner.
And don't expect this node to make your prompt better. It never touches prompt text. It decides which facts are available to the stages that do.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| media | H3_MEDIA_PRODUCER_RESULT | — | |
| evidence_graph | H3_UNIFIED_EVIDENCE_GRAPH | — | |
| evidence_report | H3_DOWNSTREAM_PRODUCER_REPORT | — | |
| feasible_timeline | H3_FEASIBLE_AV_TIMELINE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| reduction | H3_HIERARCHICAL_EVIDENCE_REDUCTION | — |