Nodes/msch-a2v/MschA2V Beat KSampler
ComfyUI Node

MschA2V Beat KSampler

The node where MiniMax H3 actually makes your music video

By mariobilly·Created a day ago·Updated a day ago· 0
MschA2V Beat KSampler
  • model
  • shot_plan
  • latents
steps4
shift_video12.00
shift_audio3.00
sampler_namedual_clock_euler
schedulernative_flow
cfg1.0
denoise1.00
seed0

If you've ever stared at a KSampler and wished it understood "the cut should land on beat 5 of bar 3," this is the closest thing that exists. MschA2V Beat KSampler is where the beat-synced plan you built in the sequencer finally becomes video: it takes the per-shot conditioning and starting latents that MschA2V Shot Planner prepared and samples each one through your MiniMax H3 model. It is not a generic sampler you can drop into an SDXL workflow - it only speaks H3's packed audio-video latent, inside the msch-a2v chain.

What actually happens when you run it

MiniMax H3 doesn't generate video and then glue audio on top - it denoises a single packed latent with both a video branch and an audio branch at once. The Beat KSampler loops over every shot in your shot_plan and, for each one:

  • pulls that shot's starting latent and positive/negative conditioning out of the plan (built by the Shot Planner, so this node only ever needs model plus sampler knobs),
  • runs a "dual clock" sample, where video and audio are denoised on two independent sigma schedules inside one packed vector,
  • resolves the seed, then hands the result onward with all the timing context preserved.

That dual-clock part is why you get two weird-looking inputs you've never seen on a stock KSampler: shift_video (default 12) and shift_audio (default 3). They reparameterize each branch's noise schedule - video gets a much steeper shift than audio, which is how the picture does the heavy denoising while the audio track stays coherent. The honest framing: H3's own sampler pack exposes exactly these knobs, and the defaults are the ones the turbo setup was tuned around. Leave them alone until you've got a reason to move them.

The inputs that actually matter

  • model and shot_plan - the plan comes from MschA2V Shot Planner and carries per-shot prompts, timings, seeds and the audio-locked starting latents.
  • steps - defaults to 4, a strong hint this pack expects the 4-step turbo LoRA on the H3 model. On a non-turbo checkpoint, crank this up.
  • cfg (default 1.0) - that's a flow-matching model telling you it doesn't want guidance fighting the schedule.
  • seed - a block's own seed override, set in the sequencer's inspector, always wins; otherwise each shot gets seed + its index.
  • denoise (default 1.0) - leave it on a first pass. Partial denoise is the pixel-upscale node's job.

sampler_name and scheduler default to dual_clock_euler and native_flow. One genuinely useful gotcha: those dropdowns are populated by querying your installed H3 pack, and if that pack isn't found they collapse to that single fallback pair - see "Where people get burned" below.

Outputs and where it sits in the chain

One output: latents (type MSCHA2V_LATENTS) - sampled per-shot results plus the timing plan that tells the next node how long each shot is, where fades go, and how the audio should line up. Wire it straight into MschA2V Shot Assembler to get frames, or into MschA2V Beat Pixel Upscale KSampler first if you prototyped at low resolution and want a bigger render.

Installing it

The pack install is the same for every MschA2V node, and it's worth saying plainly: this pack isn't self-contained. It needs the separate comfyui-minimax-h3-audio-T8 pack plus a compatible H3 model, text encoder and video/audio VAEs - none of the model files are bundled. Its own Python requirements are light (numpy, librosa, soundfile); the heavy lifting is all downstream.

cd ComfyUI/custom_nodes
git clone https://github.com/mariobilly/msch-a2v.git
cd msch-a2v
# same Python as ComfyUI - the portable build's python_embeded/python.exe on Windows
python -m pip install -r requirements.txt

Restart ComfyUI and refresh the browser tab. ComfyUI Manager can find it, but the author notes the registry listing was still pending verification - git clone is the path that reliably works today. One more thing: this repo has been superseded by the unified MSCH Nodes pack. Prefer that for new installs, and follow its migration guide so you don't end up with duplicate node registrations.

Where people get burned

The most common failure here isn't the sampler - it's the missing H3 pack. The node locates comfyui-minimax-h3-audio-T8 by scanning your custom_nodes folders (it also honors an MSCHA2V_H3_PACK_DIR environment variable). Can't find it and you get an H3PackNotFound-style error; if that happens at schema-build time the sampler dropdown silently shrinks to one fallback option. Fix the prerequisite first and restart.

Also remember H3 is a 33B omni model and the community consensus is that it's genuinely heavy locally - INT4/INT8 quantized weights via the T8 pack are the realistic path for most cards, and a multi-shot music video is a long render, not a coffee-break one. Match your steps to whatever LoRA your checkpoint expects, and don't judge quality from a single cut.

CategoryMschA2V

Inputs (10)

NameTypeDefaultDescription
modelMODEL
shot_planMSCHA2V_SHOT_PLAN
stepsINT41–1000
shift_videoFLOAT12.000.01–100
shift_audioFLOAT3.000.01–100
sampler_nameCOMBOdual_clock_euler1 options: dual_clock_euler
schedulerCOMBOnative_flow1 options: native_flow
cfgFLOAT1.00–30
denoiseFLOAT1.000–1
seedINT00–4294967295

Outputs (1)

NameTypeDescription
latentsMSCHA2V_LATENTS