MschA2V Shot Planner
Where your prompt schedule becomes actual H3 shots — conditioning, references and timing in one place
- prompt_schedule
- clip
- vae
- audio_vae
- timeline_audio
- ref_image_0
- ref_image_1
- ref_image_2
- ref_video_0
- ref_video_audio_0
- ref_audio_0
- shot_plan
Somewhere between "I want an AI music video" and "there are shots on the timeline," all the awkward translation happens: prompts need to become conditioning, conditioning needs to match the song, and every shot needs a seed that doesn't collide with the last one. MschA2V Shot Planner (display "MschA2V Shot Planner") is that translation step. It takes your beat-snapped prompt schedule, the CLIP/VAE stack, and the timeline audio, and emits a ready-to-sample shot_plan for the H3 sampler downstream. Think of it as the pre-production office of the MSCH A2V pipeline - no pixels generated here, everything it builds is consumed by the actual sampler.
The pipeline around it
MSCH A2V is the music-video side of the MSCH Nodes pack, built on top of MiniMax H3 - the 33B open-weights model that takes text, image, video and audio as one context and generates video with native stereo audio. The chain: a prompt sequencer arranges your per-beat prompts into an MSCHA2V_SCHEDULE, the ShotPlanner turns that schedule plus the audio into per-shot conditioning and starting latents, a beat KSampler actually samples each shot through H3, and an assembler joins them. So the ShotPlanner's job is to make sure shot n is conditioned for the nth slice of the song with the right visual context.
Inputs that matter
The heavy required set is prompt_schedule (from the sequencer), clip (H3's CLIP, loaded with the minimax type), vae (video), audio_vae (H3 encodes audio through its own VAE), and timeline_audio - the song slice this plan covers. width/height set output resolution (multiples of 32) and master_seed derives per-shot seeds deterministically so the whole video is reproducible.
The dropdowns are where the musical intent lives:
audio_mode-lock_source(default) holds the original song fixed while generating;remix_sourcelets H3 alter it;nativegenerates fresh audio. For a music video where the song is the point, lock_source is what you almost always want.task_type-auto(default) infers from your inputs whether you're doing text-to-video-audio, image-to-video-audio, reference-based, and so on. The explicit choices (t2va, i2va, fl2va, l2va, ref2va, hybrid) exist for when you know exactly which task you're running and want to force it.ref_image_0,ref_image_1,ref_image_2, plusref_video_0andref_audio_0- optional references for consistent character/look/voice across shots, withadd_source_as_referencecontrolling whether the source song is fed as an audio reference too.
Output is one shot_plan (MSCHA2V_SHOT_PLAN) wired to the beat KSampler.
Install and prerequisites
ShotPlanner is H3-specific - the docs are explicit that it's "not a generic model adapter." You need the separate comfyui-minimax-h3-audio-T8 integration installed with H3 model/VAE checkpoints loadable, then this pack on top:
cd ComfyUI/custom_nodes
git clone https://github.com/mariobilly/msch-comfyui-nodes.git
cd msch-comfyui-nodes
python -m pip install -r requirements.txt
(ComfyUI Manager: search "MSCH Nodes" / msch-comfyui-nodes, then restart.) And the licence reality from the KB: MiniMax H3's community licence excludes the US, EU, UK and South Korea from the local-weights territory - worth checking before you build a whole pipeline around it.
Gotchas
The two failure modes beginners hit: feeding a clip/vae from the wrong model (H3's audio VAE is a separate VAELoader - mixing it up with the video VAE fails at sampling, not here, which makes it confusing), and forgetting that the shot planner's job ends at the plan. If you're not seeing H3-consistent output across shots, look at your master_seed determinism and your reference inputs rather than re-typing prompts - the plan is only as coherent as the schedule and references you gave it.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt_schedule | MSCHA2V_SCHEDULE | — | |
| clip | CLIP | — | |
| vae | VAE | — | |
| audio_vae | VAE | — | |
| timeline_audio | AUDIO | — | |
| master_seed | INT | 00–4294967295 | — |
| width | INT | 76832–1920 | — |
| height | INT | 76832–1920 | — |
| fps_override | INT | 00–60 | — |
| audio_mode | COMBO | lock_source | 3 options: lock_source, remix_source, native |
| task_type | COMBO | auto | 7 options: auto, t2va, i2va, fl2va, l2va, ref2va, +1 |
| add_source_as_reference | BOOLEAN | true | — |
| ref_image_size | COMBO | match | 2 options: match, max |
| negative_fallbackopt | STRING | — | |
| ref_image_0opt | IMAGE | — | |
| ref_image_1opt | IMAGE | — | |
| ref_image_2opt | IMAGE | — | |
| ref_video_0opt | IMAGE | — | |
| ref_video_audio_0opt | AUDIO | — | |
| ref_audio_0opt | AUDIO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| shot_plan | MSCHA2V_SHOT_PLAN | — |