Nodes/Comfyui-DHan-Minimax-H3-Director/DHan-Minimax H3 Preview Override
ComfyUI Node

DHan-Minimax H3 Preview Override

Watching a 33B Video Model Think

By DHan315·Created 2 days ago·Updated a day ago· 0
DHan-Minimax H3 Preview Override
  • model
  • vae
  • model
◄decodelatent2rgb (fast)►
◄preview_targetnode►
◄max_resolution512►
◄preview_frames24►
◄preview_fps24►
◄webp_quality80►
◄every_n_steps1►
◄max_preview_overhead25►
◄suppress_default_previewtrue►
◄accumulate_auto_rendertrue►
◄playbacktrue speed►

Why you'd want it

A MiniMax H3 render at 24fps for 10 seconds is a long, expensive wait, and ComfyUI's stock preview shows you a static-ish latent-to-RGB smudge of the video tensor - fine for images, nearly useless for judging motion. This node replaces that with an animated preview: a looping WebP that updates as sampling proceeds, streamed straight into the node's own panel. It's the difference between "is this render alive?" and actually seeing the camera move before minute eight.

How it works

This is a model patch, not a preview node. It clones the incoming model and registers an OUTER_SAMPLE wrapper on that clone's model options. The wrapper gets called around the sampler's own inner loop, so on every every_n_steps steps it can reach into x0, pull the [B, C, T, h, w] video latent out (including the nested-tensor case H3 uses), pick a spread of frames, convert them to images, encode an animated WebP, and push it over ComfyUI's websocket events to the node.

Conversion is either fast latent-to-RGB factors or a real VAE decode, depending on decode. Unless you're feeding VideoHelperSuite, the pack suppresses ComfyUI's own latent previewer for the duration and restores it afterwards - hooking a global and putting it back in a finally is exactly how this should be done. Preview failures are caught and logged once rather than killing your render, which matters when the thing running underneath costs an hour.

Placement is the whole ballgame. It goes after the Director - so it gets the sigma-shifted patched model - and before the Guider. The wrapper only exists inside the model that the guider's model patcher hands to the sampler; attach it downstream and it silently does nothing.

The inputs

  • model - the Director's model output.
  • decode - latent2rgb (fast), the default, or vae (quality).
  • vae - only needed for vae (quality); connect the H3 video VAE or the node raises a clear error.
  • preview_target - node (the node's own panel), sampler (VHS) (VideoHelperSuite's animated latent-preview player, which needs VHS installed), or both.
  • max_resolution (512), preview_frames (24) and preview_fps (24) - the preview's size and frame budget. Lower them and previews get cheaper.
  • webp_quality (80), every_n_steps (1) - encoding quality, and how often a preview is produced at all.
  • max_preview_overhead (25) - a budget, not a hard cap. If a single preview costs more than a second, the node spaces previews out so preview time stays within roughly that share of the render.
  • suppress_default_preview (on) and accumulate_auto_render (on) - kill the stock previewer; and for long renders via the Long Sampler, keep adding completed windows to the preview instead of restarting it at every chunk.
  • playback - true speed or source fps.

One output: model, into your Guider.

The gotcha nobody reads the log for

true speed spreads the preview frames across the real duration of the shot, so the preview lasts as long as the finished clip. That's honest, but with latent2rgb you only get one image per latent frame, and H3 compresses time about 3.4x - so a 24fps "true speed" preview plays at roughly 7fps and looks like the fps setting got ignored. The node logs that exact explanation when it happens. If you want to judge motion rather than timing, switch playback to source fps: it plays them flat at preview_fps, motion reads normally, and the clip simply ends early.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/DHan315/Comfyui-DHan-Minimax-H3-Director
# restart ComfyUI

One pack install, or ComfyUI Manager searching the pack title. No models ship with it, and there's no requirements.txt - but the pack imports av and torchaudio at load time, so those have to be present or no node in the pack registers. If you updated from a much older build and your saved workflow shows the node with two model sockets, reload the frontend and recreate the node once; the old dual-socket layout is still in the file.

CategoryComfyui-DHan/Minimax H3 Director

Inputs (13)

NameTypeDefaultDescription
modelMODELPatched H3 model output from Comfyui-DHan-Minimax H3 Director.
decodeCOMBOlatent2rgb (fast)2 options: latent2rgb (fast), vae (quality)
preview_targetCOMBOnode3 options: node, sampler (VHS), both
max_resolutionINT51264–2048—
preview_framesINT241–512—
preview_fpsFLOAT241–60—
vaeoptVAEMiniMax H3 video VAE; only needed for vae (quality).
webp_qualityoptINT801–100—
every_n_stepsoptINT11–50—
max_preview_overheadoptINT250–100—
suppress_default_previewoptBOOLEANtrue—
accumulate_auto_renderoptBOOLEANtrue—
playbackoptCOMBOtrue speed2 options: true speed, source fps

Outputs (1)

NameTypeDescription
modelMODEL—