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

MiniMax H3 Image-to-Video Sampler

Real frame anchoring, not prompt roulette

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

If you're coming from the Wan/Hunyuan era you already know the drill: image-to-video beats text-to-video for consistency, because anchoring the first frame to a known image solves most of the "this clip doesn't look like anything I described" problem before it starts. MiniMaxH3ImageToVideoSampler is that move for MiniMax H3 - and it does something the T2V sampler can't: it actually encodes your reference image through the model's VAE and splices it into the latent before sampling, so the first frame is genuinely yours, not a hope.

This is the node to reach for when you have a character, a product shot, or a still you want to bring to life. It's also the one with the extra input, so let's go through the mechanism carefully.

How it works. It takes your start_image, resizes it to the target resolution (bilinear), encodes it through the VAE you supply, and writes it into the first temporal slot of an empty latent - scaled by image_strength. The rest of the latent is noise, and the sampler denoises toward a video that starts from that locked-in frame. The interesting part is the optional end_image input: if you give it one, that gets encoded and spliced into the last temporal slot too, which turns the clip into a first-frame-to-last-frame animation. That's the "interpolation-style" I2V the README talks about, and it's a genuinely useful trick for zooms, transitions, or any shot where you know both endpoints.

image_strength is your main creative dial here (0–1, default 1). At 1, the first frame is fully baked in - the video respects it hard. Dial it down and the anchor loosens: more freedom, more drift from the reference, sometimes more motion. There's no right answer; low values are how you get a still to "move away" from itself.

The inputs that matter:

  • start_image (required) and end_image (optional) - the bookends.
  • vae - you must wire in the VAE that came with your H3 checkpoint. This is a required input, unlike the T2V sampler, because the frame has to be encoded.
  • image_strength (0–1) - anchor tightness.
  • num_frames (9–257, step 8, default 65) - again, 4× temporal compression, so 65 frames ≈ 2.7 s at 24 fps.
  • width/height, steps (30), cfg (6), sampler_name, scheduler, seed, generate_audio - the standard sampler stack.

Outputs. video_latent (LATENT) into a VAE Decode for your frames; joint_audio (AUDIO) into MiniMaxH3VideoExport if your checkpoint has the audio head and you want a soundtrack. Same wiring as the T2V node, which is the nice thing about this pack - all the samplers speak the same two outputs.

Install. Identical to the rest of the pack - ComfyUI Manager (search "Minimax-H3-Video-Music-Nodes") or:

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

then restart. Deps are just torch, torchaudio, numpy, Pillow.

Where people get burned. Three spots. First, use the H3 VAE - the whole point is that the reference frame enters the same latent space the sampler works in, so a mismatched VAE (say, an SDXL one lying around) will smear your image into noise. Second, the license again: H3's Community License excludes the US, EU, UK, and South Korea from running the local weights, and there's no consumer-VRAM floor yet for the ~42.5GB checkpoint - the pack can't fix either. Third, image_strength at 1 with a wildly different end_image can fight the sampler; if the last frame looks like a jump-cut, lower the strength or resize the end frame to match your subject. Oh, and the audio caveat from the T2V node applies here too - decode_joint_audio is a scaffolded integration point, so if your build lacks it you'll get a silent AUDIO output rather than an error. Verify it once, then forget it.

CategoryMiniMax H3/Video

Inputs (16)

NameTypeDefaultDescription
modelMODEL
vaeVAE
positiveCONDITIONING
negativeCONDITIONING
start_imageIMAGE
widthINT84864–2048
heightINT48064–2048
num_framesINT659–257
image_strengthFLOAT1.000–1
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
end_imageoptIMAGE

Outputs (2)

NameTypeDescription
video_latentLATENT
joint_audioAUDIO