Nodes/ComfyUI/ModelSamplingMiniMaxH3
ComfyUI Node Runs on cloud

ModelSamplingMiniMaxH3

MiniMax H3's Two Shift Dials — Video and Audio, Tuned Together

By Comfy-Org·Created 4 years ago·Updated about 5 hours ago· 128,055
ModelSamplingMiniMaxH3
  • model
  • MODEL
shift_video12.00
shift_audio3.00

MiniMax H3 is one of the first open models where the video isn't the whole story. It generates video and a stereo soundtrack - dialogue, sound effects, music - in a single forward pass, and this node is the pair of dials that control how those two streams denoise. You'll mostly touch it when the video comes out soft or the audio sounds off, which is to say: most people never touch it, and that's fine.

This is the node the UI shows as ModelSamplingMiniMaxH3. Search for "sigma shift" or "minimax shift" in the node picker and you'll find it - it's the flow-shift equivalent of ModelSamplingFlux, but built for H3's packed audio-video latents.

Why a shift at all

H3 is a flow-matching model: instead of predicting noise, it predicts a straight-line velocity from noise to data. Flow-matching models expose a shift knob that remaps the timestep schedule, controlling how much of your sampling effort lands on composition (early, noisy steps) versus detail (later, cleaner steps). It's roughly the flow-matching replacement for picking a scheduler, and it's model-specific - the values that suit a Flux checkpoint won't suit H3. That's the whole conceptual foundation: shift is a schedule reshape, not a CFG-style strength.

The mechanism - two streams, one grid

H3 packs the video and audio latents into a single tensor the DiT denoises together. The node clones your model and swaps in an audio-video sampling object (ModelSamplingAV): the video shift drives the sampler's sigma schedule directly, and both shift values are handed to the DiT, which inverts the video schedule back onto the shared base grid and derives the audio schedule from it.

Here's the part people miss: the audio latent is carried on the video schedule scaled by the ratio of the two shifts (shift_video / shift_audio). The two inputs are coupled, not independent. Nudge shift_video and you're also changing how the audio stream sits on the timeline.

The inputs that matter

  • model - your H3 diffusion model, straight from the loader.
  • shift_video (default 12.0, range 0.01–100) - the flow shift for the video stream.
  • shift_audio (default 3.0, range 0.01–100) - the flow shift for the audio stream.

Output is a single MODEL - a patched clone - which you wire into the sampler as usual. Like every model/patch node, the original is untouched.

Where people get burned

  • Don't copy Flux-era shift values. Flux and its relatives live around shift 1–4; H3's trained defaults are double digits (12 video, 3 audio). If you "fix" it down to 2, you're not balancing anything, you're fighting the training schedule.
  • The pair is coupled. Bump shift_video to sharpen video and you've also changed the audio scaling via the ratio. If audio quality drifts, move both dials, not one.
  • Some schedulers ignore you. A few schedulers (the bong_tangent family among them) apply their own sigma shift and override the one set in the workflow. If your shift change appears to do nothing, suspect the scheduler before the node.

How you get it

Ships with ComfyUI core - no install. It landed in August 2026 alongside native MiniMax H3 support (ComfyUI 0.30.0+). The model needs H3's own files from the Comfy-Org/MiniMax-H3 repo on HuggingFace: the diffusion model in models/diffusion_models/, a Qwen3-VL text encoder in models/text_encoders/, and two VAEs - video and audio - in models/vae/. Grab one of the bundled MiniMax H3 templates (T2V, I2V, or R2V) if you want to see the whole graph wired up. The defaults are the trained values; set them once, understand the ratio, and leave them alone until you have a reason not to.

Categorymodel/patch/minimax

Inputs (3)

NameTypeDefaultDescription
modelMODEL
shift_videoFLOAT12.000.01–100
shift_audioFLOAT3.000.01–100

Outputs (1)

NameTypeDescription
MODELMODEL