ComfyUI Node

Fantastic H3 Inspect RefMod

See what the model is actually being handed

By Adudeguyman·Created about a month ago·Updated about 18 hours ago· 151
Fantastic H3 Inspect RefMod
  • mods
  • vae
  • audio_vae
  • details
  • frames
  • audio
file
viewframes
strength1.00
audio_seconds30.0
index0

Why you need it at all

A RefMod is not a picture. It's a latent - a compressed mathematical stand-in for your character, place or voice - and your filesystem can't show you one. That's fine until something goes wrong: the character drifts, the voice comes out empty, a clip reference that looked great in the source produces mush. Without a way to reverse the encoding, you're debugging blind.

This node decodes a RefMod back into pictures and sound so you can look at what the model actually receives. It's the same machinery behind the library's Show what's stored button - clicking that queues this node, which is why it takes a moment and waits for whatever's already running.

How it works

Give it a file name and it loads the RefMod, applies the strength you asked for, and runs the latent back through the H3 VAE. Frames come out as IMAGE data - one frame per stored frame in frames view, or played as a clip in video view - and a voice comes out as AUDIO. It also writes preview files into ComfyUI's output folder as it goes, so you can just queue it and look at the results.

The strength slider is the quietly useful part. Setting it below 1 applies the same mix-toward-a-blurred-copy that a low weight applies at sampling time. Bump it to 0.5, look at the frames, and you've seen what "weight 0.5 in the stack" actually means for this particular character - before you spend a render finding out. That's a nicer way to tune weights than guessing.

The inputs and outputs

file takes the RefMod's path under models/refmods, like characters/hero_visual. Leave it empty and the node reads from the mods bundle instead, with index picking which entry (0 is the first). That's the graph-friendly route: drop it after a RefMod Stack and step through the entries.

view is frames or video. Use frames for a stack of photos - each stored frame is decoded on its own, which is what you want to check whether a bad photo got in. Use video when the RefMod came from a clip: the frames get decoded together and shown as a clip, which is the only way to tell whether the motion survived, and how much of it there is.

audio_seconds caps how much of a voice gets decoded. The optional vae handles looks, audio_vae handles voices, and each is only needed for the kind of reference you're inspecting.

The outputs are details - a text report with the file, kind, latent shape, token count, mode, source shape, description and concept type - plus frames (IMAGE) and audio (AUDIO), so you can pipe the decoded media into anything downstream: a preview node, a save node, a comparison grid.

Install

Search Fantastic H3 Prompt Builder in ComfyUI Manager, or:

cd ComfyUI/custom_nodes
git clone https://github.com/Adudeguyman/ComfyUI-Fantastic-MiniMaxH3-PromptBuilder

Restart ComfyUI. You need 0.30.0 or newer, the H3 video VAE for looks and the H3 audio VAE for voices, and PyAV (declared as the pack's av dependency) for video and audio decoding. Inspect works without the upstream ComfyUI-MiniMaxH3Mod pack installed, but it reads its files fine if you have it.

Where people get burned

Missing VAE is the common one, and the message tells you which: connect the H3 video VAE to see a look, or the H3 audio VAE to hear a voice. It also checks the type, because handing it a different model's VAE would otherwise produce gibberish rather than an error.

Frames vs video isn't cosmetic. A stacked photo RefMod shown in video view plays as a clip of unrelated stills; a motion RefMod shown frame-by-frame looks like a pile of similar photos and tells you nothing about the movement. Match the view to how the RefMod was made.

A silent voice is a real finding, not a bug in this node. If the audio comes back empty or far too short, open the library's edit mode and drop the recording in again, and check that Voice seconds wasn't set to something tiny when it was made.

It runs every time, and it writes files. This is an output node with no caching, so it re-decodes on every queue and drops previews in the output folder. That's usually what you want when sanity-checking, and mildly annoying if you leave it wired into a production graph. Inspect, then disconnect.

Categoryconditioning/video_models

Inputs (8)

NameTypeDefaultDescription
fileSTRINGRefMod file name under models/refmods, e.g. characters/hero_visual. Leave empty to use 'mods'.
viewCOMBOframesframes: each stored frame decoded on its own (photo stacks). video: decoded together as a clip.
strengthFLOAT1.000–1Preview at this strength: below 1 shows the softening a lower weight applies.
audio_secondsFLOAT30.00.5–600
modsoptH3_REF_MODS
indexoptINT00–10000Which entry of 'mods' to inspect.
vaeoptVAEMiniMax H3 video VAE, for a look.
audio_vaeoptVAEMiniMax H3 audio VAE, for a voice.

Outputs (3)

NameTypeDescription
detailsSTRING
framesIMAGE
audioAUDIO