Nodes/ComfyUI-MiniMaxH3-Studio/H3 Evidence Fusion Producer
ComfyUI Node

H3 Evidence Fusion Producer

Honest metadata in, honest doubt out

By rookiestar28·Created 2 months ago·Updated a day ago· 79
H3 Evidence Fusion Producer
  • media
  • evidence_graph
  • producer_report

One input, two outputs, and a design rule that's easy to miss: this node is not allowed to claim it saw anything in your media.

What it does

It takes an admitted media envelope from H3 Media Admission Producer and projects it into a unified evidence graph. That graph has an explicit shape - sources with typed spans, observations, and a separate list of uncertainties - and the observation it creates for your asset is created with support status UNCERTAIN, carrying a note in plain language: "Source metadata is caller-declared and no semantic perception profile executed."

That's the whole node, and it's the point. It knows your asset's declared kind, its declared dimensions and duration, and whatever SHA-256 you typed in. What it does not have is anything that looked at the pixels or listened to the audio, and it doesn't paper over that gap by writing a description. In a pipeline where a captioner or a VLM step would normally sit, the honest result here is an observation with its doubt attached.

The module's own one-line contract says it best: this stage "does not promote admitted metadata to semantic perception."

Inputs and outputs

One required input: media (H3_MEDIA_PRODUCER_RESULT), from the admission node. No widgets to set, no profiles, no route selection. If you want this node to know more about your asset, you get that by attaching a perception producer - and the pack's perception producers mostly report unavailable unless a host operator configured them.

Two outputs:

  • evidence_graph (H3_UNIFIED_EVIDENCE_GRAPH) - the graph itself.
  • producer_report (H3_DOWNSTREAM_PRODUCER_REPORT) - provenance for the stage: disposition PARTIAL, reason code ADMITTED_SOURCE_PROJECTED, and a fingerprint claim of the caller-declared, unverified kind.

Keep the pair together. Downstream nodes assert that a report belongs to the graph it was issued for, so a report borrowed from a different run - or from a different asset - produces a contract error rather than a confusing later failure.

Where it sits in a reference workflow

You reach for this when you're building the Full-Reference or deterministic-route side of the pack: admit media, fuse the evidence, cross-reference identities, resolve directives, plan a timeline, reduce the evidence. H3 Full Reference Timeline Producer takes evidence_graph and evidence_report directly, and H3 Hierarchical Evidence Reduction takes them as part of its budgeted selection pass.

If you're doing a straightforward text-to-video or single-image job, you'll never touch it. Nothing here improves a prompt; it's bookkeeping for pipelines that need to be able to justify what they knew.

Why the doubt is the feature

A lot of "AI workflow" tooling works by inventing plausible intermediate steps and hoping nobody looks. The failure is subtle: a fabricated observation doesn't throw, it just gently steers the generation toward something you never described, and by the time you notice you're several generations deep and can't tell which stage did it.

This node is the opposite pressure. The uncertainty is a first-class record - an id, a kind (unsupported), and text explaining that the metadata is caller-declared and no perception profile ran. That record travels with the graph, so a later stage that wants to summarise evidence has to consume the "this is unverified" object along with the observation. It's the same instinct as the LLM-node discipline of never letting a captioner's output quietly become truth (llm-in-comfyui.md).

Install

The pack installs the same way as everything else here, and it 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 (dependencies = []), nothing downloads at install, and the browser extension is prebuilt. Python 3.10+. ComfyUI's frontend will list the node under h3_context/assembly.

Gotchas

The one that gets people: this node consumes one admitted asset. Three references means three admission nodes (each with its own asset_id and reference_order) and three fusion nodes; you don't stack assets into a single envelope. Media admission also has a media_kind widget that has to match what you actually plugged in - declare image and wire an audio socket and the admission step refuses before you ever get here.

And a small sanity note for beginners: nothing about this node is generative. It has no model, no weights, no network call. It runs in milliseconds, which is exactly what you want from a stage whose only job is to be correct.

Categoryh3_context/assembly

Inputs (1)

NameTypeDefaultDescription
mediaH3_MEDIA_PRODUCER_RESULT—

Outputs (2)

NameTypeDescription
evidence_graphH3_UNIFIED_EVIDENCE_GRAPH—
producer_reportH3_DOWNSTREAM_PRODUCER_REPORT—