T8 Music-to-Video Beat Sheet(音乐视频节拍导演)
Plan a music video shot-by-shot from text, without pretending to hear the song
- provider_config
- beat_sheet
- beat_sheet_json
- h3_direction
- seedance20_direction
Music videos are the hardest kind of prompt work: you need lyrics locked, beats mapped, and camera moves choreographed - and the model doing the planning can't hear the track. T8 Music-to-Video Beat Sheet(音乐视频节拍导演) is the node that owns that contradiction honestly. It takes your text lyrics, a Music Caption, and any beat facts you already know, and turns them into a video beat sheet - shot by shot, with timing, energy, camera and typography. It has no AUDIO input, it will never claim to have listened to your song, and it refuses to invent BPM or timing that you didn't provide.
That last point is the house rule and it's worth underlining because it's what makes the output usable: the beat sheet carries an evidence_boundary field that states exactly what it's working from. If you know the BPM, put it in known_bpm. If you know where the drop hits, put it in known_time_cues ("00:04.200 鼓点进入, 00:09.000 drop"). If you don't, it plans in qualitative section-relative rhythm and labels the timing as editorial planning, not detected evidence. It maps lyrics only when you supply them, and it maps them verbatim - no rewriting, no improvisation on your chorus.
The inputs
video_intent(required) - the MV concept and visual direction.lyrics/music_caption- optional text inputs (the natural source is the pack's Music 3 node'slyricsandmusic_captionoutputs, or the Music Creative Lab).duration_seconds,known_bpm(0 = unknown, up to 400),known_time_cues,shot_count(AUTO or 1–20).output_language,rewrite_mode,seed, plusapi_key/provider_config.
One LLM call. The model returns a compact JSON beat sheet where each beat event has start/end seconds, the lyric line or section, an energy value, a visual event, camera, typography, sound relation, and an evidence_source - so you always know whether a given timing came from your cue or from the planner's estimate.
What comes out
beat_sheet- the typedT8_MUSIC_VIDEO_BEAT_SHEETsocket.beat_sheet_json- the full structured sheet.h3_directionandseedance20_direction- concise, model-specific constraint summaries (capped at ~110–180 words each) that you feed into the H3 or Seedance 2.0 enhancer so the eventual generation respects the beat plan.
That split - a full table for you to read, plus two short direction strings for the models - is the pragmatic part: models don't want a 40-row table crammed into their prompt, they want the summarized intent.
Installing
In the comfyui-minimax-h3-prompt-enhancer-T8 pack. ComfyUI Manager: search "MiniMax H3 / Seedance 2.0 / Music 3 Prompt Enhancer (T8)", or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-prompt-enhancer-T8
Restart ComfyUI and Ctrl+F5 the browser. Cloud mode adds no Python dependencies. The one call rides the pack's shared providers - Seedance NZ by default, or a T8 LLM Provider Config wired into provider_config for the AI Workshop / OpenAI-compatible / local Qwen.
Honest expectations
This node plans; it doesn't render, hear, transcribe, or detect. The pack's README is explicit that a text model can't analyze your audio file, and the node's evidence boundary enforces it. So the quality of your beat sheet is directly proportional to the quality of the known_time_cues you feed it - a producer who drops real timecodes gets a much tighter sheet than someone who leaves it all to the model. And like the rest of the suite, it's a third-party layer by T8 (T8mars), not an official MiniMax tool - useful, but verify its beat marks against your actual track before you trust a camera change to land on the drop.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| video_intent | STRING | — | |
| duration_seconds | INT | 15 | — |
| known_bpm | INT | 00–400 | — |
| shot_count | COMBO | AUTO(根据时长与内容) | 21 options: AUTO(根据时长与内容), 1, 2, 3, 4, 5, +15 |
| output_language | COMBO | 中文 | 2 options: 中文, English |
| rewrite_mode | COMBO | balanced | 3 options: strict, balanced, creative |
| seed | INT | 00–18446744073709550000 | — |
| lyricsopt | STRING | — | |
| music_captionopt | STRING | — | |
| known_time_cuesopt | STRING | — | |
| api_keyopt | STRING | 可接 STRING。连接共享渠道配置后按共享配置选择 Seedance NZ、AI 工坊、OpenAI Compatible 或 Local Qwen。 | |
| provider_configopt | T8_LLM_PROVIDER_CONFIG | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| beat_sheet | T8_MUSIC_VIDEO_BEAT_SHEET | — |
| beat_sheet_json | STRING | — |
| h3_direction | STRING | — |
| seedance20_direction | STRING | — |