Nodes/Minimax-H3-Video-Music-Nodes/MiniMax H3 Text-to-Video Sampler
ComfyUI Node

MiniMax H3 Text-to-Video Sampler

The MiniMax H3 sampler, and the fine print

By TensorVizion·Created a day ago·Updated a day ago· 1
MiniMax H3 Text-to-Video Sampler
  • model
  • positive
  • negative
  • video_latent
  • joint_audio
aspect_ratio
width848
height480
num_frames65
motion_strength1.00
steps30
cfg6.0
sampler_name
scheduler
seed0
generate_audiotrue

The whole reason this pack exists: MiniMax H3 - the 33B omni-modal video model with native, jointly-generated audio that went open-weights in August 2026 - without paying for a Hailuo API key. MiniMaxH3TextToVideoSampler is the pure text-to-video entry point. Prompt goes in, video latent comes out, no start image required, nothing calls an API. It's the node you reach for when you have a sentence and want a clip, and it's the cleanest on-ramp to everything else in the pack.

Be clear about what "pure" means here, though. This node is a sampler in the ComfyUI sense, not a model loader: you feed it a MODEL from a standard CheckpointLoader or UNETLoader (the H3 checkpoint), plus positive and negative CONDITIONING from a CLIP Text Encode. The full H3 pipeline is still CheckpointLoader → text encode → this node → VAE Decode → export. This node just does the sampling part, plus the audio part if your checkpoint has one.

How it works. It builds an empty latent shaped like H3 expects - [1, channels, T, H/8, W/8], where channels defaults to 16 and the temporal dimension is (num_frames − 1) / 4 + 1 (the model's 4× temporal compression). Then it runs the standard ComfyUI sampling loop at full denoise. Two things are H3-specific. motion_strength scales the magnitude of the initial noise: the source multiplies the prepared noise by this value, on the theory that H3 reads elevated variance as a cue for more inter-frame motion. And generate_audio, if on, calls the model's decode_joint_audio(...) method to pull a synchronized track.

The inputs you actually touch. Most of the sampler controls are standard ComfyUI fare - steps (default 30), cfg (default 6), sampler_name, scheduler, seed. The ones that matter for H3:

  • aspect_ratio - presets that set both dimensions at once: 16:9 → 848×480, 9:16 → 480×848, 1:1 → 640×640, 4:3 → 768×576, or custom to use the raw width/height inputs.
  • motion_strength (0–2, default 1) - how much inter-frame motion to ask for. Below 1, calmer, more locked-down clips; above 1, wilder but you're cranking noise, so expect the odd artifact.
  • num_frames (9–257, step 8, default 65) - remember the 4× compression: 65 frames is only about 2.7 seconds at 24 fps.

Outputs. video_latent (LATENT) goes to a VAE Decode node to become frames; joint_audio (AUDIO) wires straight into MiniMaxH3VideoExport's audio input if you want a clip with sound.

Install. ComfyUI Manager, search "Minimax-H3-Video-Music-Nodes", or:

cd ComfyUI/custom_nodes
git clone https://github.com/TensorVizion/Minimax-H3-Video-Music-Nodes

Restart ComfyUI. The pack needs torch, torchaudio, numpy, and Pillow (the actual requirements.txt - lightweight, no heavy extras).

Where people get burned. Three things, in rough order of pain. First, the license is genuinely weird: the MiniMax H3 Community License geofences the local weights out of the US, EU, UK, and South Korea - outputs included. If you're in one of those regions you're not licensed to run the weights locally, period; the hosted API is the sanctioned path there. That's a model problem, not this pack's, but it's the first thing to know before you download ~42.5GB of weights. Second, there's still no verified consumer-VRAM floor for H3 - wait for the community quantization wave before assuming your card runs it. Third, decode_joint_audio is one of the pack's explicitly-flagged placeholders: if your "merged into core" H3 build doesn't expose it, you get silent audio, not an error. This is a fresh, single-commit pack by a one-person author (TensorVizion), so treat the audio path as "check it against your build" rather than settled fact.

CategoryMiniMax H3/Video

Inputs (14)

NameTypeDefaultDescription
modelMODEL
positiveCONDITIONING
negativeCONDITIONING
aspect_ratioCOMBO5 options: 16:9, 9:16, 1:1, 4:3, custom
widthINT84864–2048
heightINT48064–2048
num_framesINT659–257
motion_strengthFLOAT1.000–2
stepsINT301–150
cfgFLOAT6.00–30
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
seedINT00–18446744073709550000
generate_audioBOOLEANtrue

Outputs (2)

NameTypeDescription
video_latentLATENT
joint_audioAUDIO