Download
1 variant available
580 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9
(8)
Oct 14, 2026
MiniMax H3
What’s new in v4.1 (from v4.0)
🎻 Violinist plays only while the violin is heard (update 2026-10-14)
The score only says when a melody plays, not which instrument plays it. So an on-screen violinist kept bowing even when YuE2 gave the melody to the piano. v4.1 now checks the song’s audio for violin vibrato. While the strings are silent, H3 is told to keep the violin down with the bow off the strings. When they come in, it is told to raise the violin and start playing. This also works for viola and cello, and for a violinist playing next to a pianist. It runs automatically for instrumental songs, with nothing extra to install.
🧠 Bigger LLMs without timeouts (update 2026-10-14)
The prompt split has a new thinking switch (default off), which asks thinking models such as Qwen3.8 27B or Gemma 4 to answer right away. The timeout is now 600 s.
🔊 Even song loudness
Every song is brought to -16 LUFS (ITU-R BS.1770), with a -1 dB limiter, so piano songs are no longer much quieter than band songs.
🎵 Song workflow
🎵 Song only switch: make and save just the song and its score. The video side doesn’t run, so it’s quick.
(newest song in output/): use the song you just made without refreshing the list or restarting ComfyUI.
A pre-made song is no longer saved again as a copy on every run.
🥁 Drums that wait and come in
When the drums come in (auto or a second): after a guitar intro, the drummer waits with the sticks still and comes in with a fill.
Kick-only intros (right foot only), single crash hits before the drums start, and a drummer who waits for the whole scene when that scene has no drums.
Fill or no fill, read from the real drums: one crash swing, a short snare fill, or a full fill.
Kit layout for H3 (snare in front, hi-hat and crash on the left, floor tom and ride on the right; left-handed option).
Later scenes reuse the whole-song STRUM run more reliably.
Small fixes
The YuE2 note now links yue2_3b_bf16 (the file the picker uses). int8 stays as the lighter option.
The muted comparison save is renamed so the run log can’t pick it up by mistake.
Note
The drum and violin features only give H3 hints: when to wait, when to come in, where to hit. H3 decides how the scene is finally drawn, so it may not always follow them. The player may start a little early, keep playing through a rest, or hit the wrong drum. Results vary from seed to seed, so if a take doesn’t look right, try another seed. Shorter scenes and fewer camera changes also make the cues easier to follow.
Included custom nodes: PromptSplitter v2.14 · ABCTiming v2.39 · ABCScoreIO v1.27 · ABCInstrumentalize v1.4
(Install ComfyUI-Video-Saver separately from its Git URL; it is not bundled.)
v4.1 の変更点(v4.0 から)
🎻 バイオリンは鳴っている時だけ弾く(2026-10-14 更新)
楽譜からは「メロディがある」ことしか分からず、YuE2 がメロディをピアノで鳴らしていても、画面のバイオリン奏者は弾き続けていました。v4.1 では、曲の音からバイオリンのビブラートを調べます。弦が鳴っていない間は「バイオリンを下ろし、弓を弦から離して待つ」、入る所では「構えて弾き始める」と H3 に伝えます。ビオラ・チェロや、ピアノと一緒のバイオリン奏者にも効きます。インストの曲で自動で動き、追加のインストールは要りません。
🧠 大きい LLM でもタイムアウトしにくく(2026-10-14 更新)
プロンプト分割に thinking スイッチ(初期値 off)を追加しました。Qwen3.8 27B や Gemma 4 のような考えるモードのあるモデルに、すぐ答えてもらいます。タイムアウトは 600 秒にしました。
🔊 曲の音量をそろえる
どの曲も -16 LUFS(ITU-R BS.1770)にそろえ、ピークは -1 dB のリミッターで抑えます。ピアノの曲が、バンドの曲よりずっと小さく聞こえることがなくなりました。
🎵 曲まわり
🎵 曲だけ作る スイッチ:曲と楽譜だけを作って保存します。映像側は動かないので速いです。
(newest song in output/):作ったばかりの曲を、一覧の更新も再起動もなしで使えます。
作成済みの曲を使う時、毎回同じ曲のコピーを保存しないようにしました。
🥁 待って、入ってくるドラム
ドラムが入る秒数(auto または秒数):ギターのイントロの間はスティックを止めて待ち、入る時刻にフィルから叩き始めます。
キックだけのイントロ(右足だけ)、ドラムが入る前の単発のクラッシュ、ドラムのないシーンでは最後まで待つ、にも対応しました。
実際のドラムから、フィルのあり/なしを見分けます(クラッシュに1振り、スネアの短いフィル、通常のフィル)。
H3 にドラムセットの並びを教えます(スネアは正面、ハイハットとクラッシュは左、フロアタムとライドは右。左利き用もあります)。
後のシーンでも、曲全体の STRUM の結果を確実に使い回すようにしました。
小さな修正
YuE2 のメモのリンクを yue2_3b_bf16(ピッカーが使うファイル)にしました。int8 は軽い方として残しています。
ミュート中の比較用の保存の名前を変えて、実行の記録が取り違えないようにしました。
ご注意
ドラムやバイオリンの機能は、H3 に「いつ待つか・いつ入るか・どこを叩くか」のヒントを出すだけです。最後にどう描くかは H3 しだいなので、いつも思った通りになるとは限りません。少し早く弾き始めたり、休みの所でも弾き続けたり、違う太鼓を叩いたりすることもあります。結果は seed ごとに変わるので、うまくいかない時は seed を変えて何回か試してみてください。シーンを短めにしたり、カメラの切り替えを少なめにしたりすると、ヒントが伝わりやすくなります。
同梱のカスタムノード:PromptSplitter v2.14・ABCTiming v2.39・ABCScoreIO v1.27・ABCInstrumentalize v1.4
(ComfyUI-Video-Saver は同梱していません。Git URL から入れてください)
Show more
The MiniMax H3 Community License Agreement’s grant excludes the European Union, the United Kingdom, the Republic of Korea and the United States of America.
MiniMax H3
Score to Screen — One prompt → one song → a music video (YuE2 × MiniMax H3)
Write one prompt and pick your images. You get an original song made with YuE2 and a music video made with MiniMax H3. The singer lip-syncs, the band plays along with the music, and every scene change lands exactly on a bar line.
v6.1 Simple: 1–4 scenes that can continue one into the next (⛓) with the same main character in every scene (🧑), a low-memory join (💾 each scene saved to a file), the prompt LLM inside ComfyUI (no LM Studio needed), a 🎞 timeline editor that shows what was found in the song and lets you fix it by hand, 🔬 a frame-by-frame sync check of the finished video against the song, scene transitions, optional hand check of the prompts before H3
Older versions on this page: v6.0 Simple, v5.9 Simple, v4.1 Simple (1–4 scenes, LM Studio) and v3.9 Simple (2 scenes)
Each version comes in ONE download: the workflows (English + Japanese) and the custom nodes. Only a few switches; everything else is automatic, or set to the values that worked best.
New in v6.1 (2026-10-22): measure the sync. 🔬 After a run, open the 🎞 Timeline and press "🔬 Sync check": step through the finished MV or a scene's "H3 only" video one frame at a time (each frame is taken straight from the file and numbered), mark where the mouth really starts moving or the stick really comes down, and see how early or late it is against the song, both as H3 was told and as you see and hear it in the finished MV (🎚 A/V sync taken in). Marks are kept per video, so seeds, prompts and settings can be compared with numbers instead of a feeling. It only looks: nothing is changed and no AI is used. v6.0 added ⛓ scenes that continue, 🧑 one main character and 💾 a low-memory join; see the version history at the bottom.
About this workflow
This is a personal, experimental workflow. It started from wanting to make songs with YuE2 and have MiniMax H3 move in time with them, and from wondering whether a short, simple prompt could be expanded by a local model (such as Gemma 4) into prompts tuned for H3.
For the local LLM, I recommend a model that can understand images (a vision-capable model), but which model you use is entirely up to you.
Because it grew out of experiments, some features may seem odd and some things may not behave as expected. Please treat it as something to experiment with, not a finished tool. If that sounds interesting to you, give it a try!
このワークフローについて
これは個人的な実験として作っているワークフローです。YuE2 で曲を作り、その曲に H3 の動きを合わせたい。そして短く簡潔に書いたプロンプトを、Gemma 4 などのローカルで動かすモデルで H3 向けに最適化できないか試してみたい。そんな思いから始まりました。
ローカル LLM は画像を理解できるモデルをおすすめしますが、どのモデルを使うかはご自由に選んでください。
実験の積み重ねでできているので、変わった機能があったり、思った通りに動かないところもあります。完成品ではなく、あくまで実験目的での使用をおすすめします。こういったことに興味のある方は、ぜひ試してみてください。
⚠ THE CUSTOM NODES ARE NOT IN COMFYUI MANAGER
It is normal that Manager can't find them. They are inside the download: unzip it, then copy the 4 folders from custom_nodes/ into ComfyUI/custom_nodes/ (see QUICK START).
"Image Saver Save Video" comes from ComfyUI-Video-Saver (by diodiogod), NOT from ComfyUI-Image-Saver.
In Manager use "Install via Git URL": https://github.com/diodiogod/ComfyUI-Video-Saver
Searching "Image Saver" in Manager finds the image-only package, which has no video node. If it is installed, remove it (the node names overlap).
🎬 WHAT IT DOES
One prompt, two models: a local LLM splits your prompt into YuE2 style tags and lyrics, plus an H3 video prompt for each scene
🧠 LLM inside ComfyUI (NEW in v5): put a GGUF (the same files LM Studio uses) in ComfyUI/models/LLM/ and pick it. It runs on llama.cpp's official llama-server, downloaded automatically the first time, started only for the split and stopped right after, so YuE2 and H3 keep their VRAM. The default, Qwen3-VL-4B-Instruct Q4_K_M (about 3.3 GB, sees your images), downloads itself on the first run. Hugging Face models (transformers) and LM Studio (also on another PC) still work
🎞 Timeline (NEW in v5.5): the 🎞 Timeline button at the bottom left opens a video-editor style strip. Drop an image file on a scene clip, drag a clip's right edge for its seconds, drop a song file on the audio track and drag it sideways to choose where it starts, click ◆ for the transition, ▶ Play to check the flow with the stills and the song. It edits the same node settings, so nothing else changes
🔎 Analysis on the timeline (NEW in v5.7): under the waveform, what the last run found, in video seconds: 🎬 the real cuts, camera shots and sections, 🎤 when each singer sings, 🥁 every drum hit coloured by drum (▼ = the drums come in; from STRUM, Demucs or the score), 🎻 when the strings are heard, 🎹 piano key strikes. Players the audio can't check (guitar, bass) are marked "no audio check". It reloads after every run
💾 Kept with the song (NEW in v5.9): the analysis is saved in song seconds as <song>.s2s.json next to the song (copy it along with the song and its .abc to another PC). The same song again, any start and any scene lengths: the scenes are cut from it and STRUM / Demucs are skipped. A new render of the same score (another vocals seed) keeps its own analysis and hand edits. Parts not analysed are marked. Picking a pre-made song shows its analysis on the timeline at once; "🔎 Analyse this song" analyses just the song (no LLM, no H3) in ComfyUI's queue, never at the same time as a run; hand edits are saved with the song, come back when it is picked again and come off for another song
✎ Fix it by hand (NEW in v5.8): drag the analysis on the timeline. 🎤 singing and 🎻 strings spans: drag the ends (start / stop) or the middle (move), double-click an empty spot to add one, a span to delete it. 🥁 ▼: drag for when the drums come in. From the next run, the H3 cues (sing / wait with lips closed, bow up / down, drums in) follow your marks, only where the scenes had an analysis when you drew; the rest stays as analysed. Strings can be drawn in songs with vocals too, where there is no audio check. ↺ = back to the analysis. Mouse wheel = zoom (0.1 s ruler, finer drags), Space = play / stop (v5.8.1)
🔬 Sync check (NEW in v6.1): on the 🎞 Timeline, pick a run and a video (the finished MV or a scene's "H3 only" video) and step it frame by frame (← → one frame, Shift + ← → one second; the frame comes straight from the file, "frame 68 / 288"). 📍 Mark where singing, drums, strings or piano really start or stop (or one drum hit) and for whom (S1–S4). The error against that run's music analysis is shown in seconds and frames, as H3 was told and as the finished MV plays (A/V sync taken in), and the marks sit on their own lane under the analysis (the music moment each is measured against as a pink line). ⚠ on marks inside a crossfade or dip. Marks keep the video and the frame and stay after a restart; a video made again is another video
🎞 Scene transitions (NEW in v5.5): cut / crossfade / dip to black / dip to white at each scene change. The video length never changes, so the song and the lip sync stay in step. From v6.0 the crossfade keeps the scene before moving while it dissolves (it uses the frames H3 made past the cut)
✍ Prompt check (NEW in v5.4): auto = the prompts go straight to H3. manual = the run pauses after the prompt split and a window opens with one text box per scene: fix anything, press ▶ Continue, and H3 runs with your text
One song, several scenes: YuE2 writes a single song. H3 renders each scene (1–4) from its own image, and the scenes are joined while the song plays straight through (no audible seam)
⛓ Scenes that continue (NEW in v6.0): for each of scenes 2–4 choose own picture (a separate shot) or continue: the frame right after the cut of the scene before is anchored as H3's first frame (H3's own Add Guide), so positions, poses, the place and the light go on across the cut. Handoff: 1 frame, or 5 frames to carry the direction of the motion too. A continuing scene needs no picture (picture 1 is used as the look). On the 🎞 timeline the ⛓ under each cut toggles it (blue = continues), the clip shows "⛓ continues 1", and the panel below has Start and ⛓ handoff for the selected scene
🧑 One main character (NEW in v6.0): a picture of the main character (face, hairstyle and clothes clearly visible) goes to every scene as <Picture 2>, with a line to keep the same face, hairstyle and clothes. Pick it in its own group above the scene pictures (with a preview), or with the 🧑 button on the timeline. Best together with ⛓
💾 Low memory (NEW in v6.0): each scene is written to temp/s2s_scenes/ the moment it is decoded, and the final mp4 is joined from the files one frame at a time, with 🔍 super resolution 24 frames at a time. Only one scene's frames are in RAM at any point. Disk: up to about 1 GB per scene (1280×720, 15 s), cleared when ComfyUI starts
📺 Join report (NEW in v6.0): frames per scene, how each scene started (own picture, or ⛓ with the frames asked, available and really used) and the RAM / VRAM peak of the join and of each scene's decode
⏳ Prompts first (NEW in v5.3): every scene's prompt is read before any scene is drawn, so H3's text encoder and the H3 model are swapped once per run instead of once per scene. Same pictures, less waiting with more scenes
The score drives the picture: YuE2 also writes an ABC sheet-music plan. The workflow reads its tempo, time signature and chords, then turns them into timed cues in each scene's H3 prompt
Bar-accurate cuts: every scene change snaps to the start of a bar
Band performance: write who plays what ("the white-haired woman plays the drums") and each player gets cues
🥁 Drum sync: an on-screen drummer follows the song's real drums (STRUM if installed, then the Demucs drum stem, then the score)
A steady beat H3 can draw: one stick taps the hi-hat on every beat, the other comes down onto the snare on beats 2 and 4, the right foot plays the kick
One stick in each hand, drums that come in later (the drummer waits through a guitar intro), kick-only intros and single crash hits
Fill or no fill: a short fill, a big fill, or just one kick + crash (no made-up tom fill where STRUM heard none)
Kit layout: tells H3 where the snare, hi-hat, crash, toms and ride are, as seen from the drummer's seat (standard / left-handed / off)
The song is transcribed once; the later scenes reuse it, even after a ComfyUI restart
🎹 Piano sync: an on-screen pianist follows the real key strikes (STRUM + Basic Pitch, optional)
🎤 Waiting performers (NEW in v5.6): H3 tends to make anyone holding a microphone sing and anyone holding an instrument play. A performer who doesn't sing / play yet is told the posture and until when ("S1 keeps the lips closed and does not sing until 00:12.000"), and the LLM's words that make them start too early become that posture. The singing start can also be set by hand (vocal_in). The singer is found from "who sings", "vocalist", "singer", "lead vocals" and (v5.8) "S1 ... while singing" / "S1 sings ..."
🎻 Violin sync: an on-screen violinist (viola, cello) plays only while the strings are really heard, and keeps the violin down with the bow off the strings while they are silent. Automatic for instrumental songs
🔍 Super resolution (NEW in v5.2, optional): NVIDIA RTX Video Super Resolution enlarges and sharpens the finished video just before the song is put on. H3 is not run again, so movement, lip sync and timing don't change. From v6.0 it runs 24 frames at a time while the scenes are joined from their files. Off by default
🎚 Even loudness: every song is brought to -16 LUFS with a peak limiter
Singing on screen: auto / yes / no. A song can have vocals while nobody on screen lip-syncs
Instrumentals: write "Instrumental." The lyrics are removed, the melody moves to an instrument, and everyone's mouth stays closed
Skips the intro automatically: vocal onset detection (Demucs) starts the clip just before the singing
Use your own songs: load a song you made earlier (with its .abc score), or "(newest song in
output/)", and ▶ Start at any second (the chorus, for example)A/V sync: H3's motion lags the sound by about 0.2 s, so the final audio is shifted to match (adjustable)
Run log inside the workflow: 📺 Runs so far adds one line per run (video name, seeds, steps, memo), also saved as a CSV
Civitai-ready output: the MP4 is saved with metadata (all scene prompts, YuE2 style and lyrics, H3 + YuE2 model hashes)
⚠ The singing, drum, piano and violin cues are hints
These features only give H3 hints: when to wait, when to sing or come in, where to hit. H3 decides how the scene is finally drawn, so it may not always follow them. The player may start a little early, keep playing through a rest, or hit the wrong drum. Results vary from seed to seed, so if a take doesn't look right, try another seed. Shorter scenes and fewer camera changes also make the cues easier to follow.
歌・ドラム・ピアノ・バイオリンの機能は、H3 に「いつ待つか・いつ歌う/入るか・どこを叩くか」のヒントを出すだけです。最後にどう描くかは H3 しだいなので、いつも思った通りになるとは限りません。うまくいかない時は seed を変えて何回か試してみてください。
⚙️ HOW IT FLOWS
Prompt Splitter (LLM, inside ComfyUI): makes the YuE2 style and lyrics, plus one H3 prompt per scene
YuE2: writes the ABC score, then sings the song (skipped when you pick a pre-made song)
Loudness + vocal onset: evens out the volume, trims the song, cuts the scenes on bar lines
ABC Timing: adds tempo, chord, band, drum, piano and violin cues to each scene's H3 prompt
✍ Prompt check: straight on (auto), or a pause to fix the prompts by hand (manual)
H3 ref2va: reads every scene's prompt first, then renders each scene from its image (⛓ a continuing scene waits for the scene before and starts from its frames; 🧑 every scene gets the character picture)
💾 Each scene is saved to a file as soon as it is decoded. 🎞 The scenes are joined from the files frame by frame (with an optional transition and 🔍 super resolution), the song is laid over them, and the video is saved
🔬 Afterwards, if you like: the Sync check on the 🎞 Timeline measures how well the finished video follows the song
The internals are packed into subgraphs. Day to day, you only touch the scene columns (or the 🎞 Timeline), the 🧑 / ⛓ group above them, the 🎛 switches and, if you like, the 🧠 LLM settings.
🎛 THE SWITCHES
⚡ Turbo: fast drafts (off = 20 steps)
🎤 On-screen singing: auto / yes / no
🥁 Drum sync: auto / off (piano sync follows this switch too)
🎵 Song delay: seconds of silence at the start of the video
🎵 Song only: makes just the song; H3 and all video saving are skipped
🎬 Scene count: 1–4
✍ Prompt check: auto / manual (timeout_min: continue by itself after N minutes, 0 = wait)
🎞 Scene transition: cut / crossfade / dip to black / dip to white, seconds (0.5 s)
🔍 Super resolution: off / rtx (scale 1.5, quality ULTRA, strength 1.0)
🧑 Character picture: (none) / a picture (<Picture 2> in every scene)
⛓ Scene 2 / 3 / 4 start: own picture / continue, handoff 1 frame / 5 frames (also on the 🎞 Timeline)
🧠 LLM settings: gguf (default) / transformers / lm_studio, model, GPU layers, context size
Seeds (video, vocals, score) can be locked separately in the 🎲 Seed details group. One video seed is used for all scenes of a run, so one number brings back the whole video. Rarely used settings live in 🔧 Details:
bar snapping (keep fps at 24: H3 makes 24 fps video, and from v6.0 any other value stops before the run)
drum cue style (simple / detailed), when the drums come in (auto / start / a second in the song), kit layout, 🎤 when the singing comes in (auto / a second in the song), ✎ timeline marks (the singing / strings spans drawn on the timeline; filled in by the timeline)
A/V sync
song volume: even loudness (-16 LUFS, on by default) + optional volume curve
📦 REQUIREMENTS
Custom nodes (my own, included in the download):
ComfyUI-PromptSplitter v3.2: prompt split (lyrics in the language you ask for) with the LLM inside ComfyUI (GGUF / transformers / LM Studio), vocal onset (the separated vocals kept per song), song loudness. Run
pip install demucsin ComfyUI's PythonComfyUI-ABCTiming v2.45: score → rhythm, band, drum, piano and violin cues, waiting cues for the singer and players, the analysis for the timeline (kept with the song), and the spans you fix by hand
ComfyUI-ABCInstrumentalize v1.5: instrumental score and bar-snapped scene cuts (1–4 scenes, 24 fps check)
ComfyUI-ABCScoreIO v1.42: switches, scores, pre-made / newest song, run log, A/V sync, scene pictures, ⛓ scene continuity, 🧑 character picture, 💾 low-memory join from files with 📺 report, 🎞 transitions and timeline (with 🔎 analysis, 🔎 analyse-only, ✎ hand fixes kept with the song), ⏳ prompts first, ✍ prompt check, 🔍 super resolution, 🔬 sync check (frames read with PyAV, which comes with ComfyUI)
Other custom nodes:
ComfyUI-Video-Saver by diodiogod ("Image Saver Save Video", final save with Civitai metadata): https://github.com/diodiogod/ComfyUI-Video-Saver
Only for 🔍 super resolution = rtx: ComfyUI Nvidia VFX Nodes (official, in ComfyUI Manager): https://github.com/Comfy-Org/ComfyUI_Nvidia_VFX_Nodes. Needs an NVIDIA RTX GPU and CUDA 13 PyTorch (cu130 or newer)
Models:
diffusion_models: minimax_h3_ref2va_pruned_int8_convrot
loras: minimax_h3_ref2v_turbo_4step (⚡ Turbo)
text_encoders: qwen3vl_32b_minimax_h3_nvfp4_awq
vae: minimax_h3_video_vae_fp16, minimax_h3_audio_vae_fp32
checkpoints: yue2_3b_bf16 (default) or yue2_3b_int8_convrot (lighter)
LLM: models/LLM/ (any GGUF; put its mmproj file in the same folder so it can see your images). The default Qwen3-VL-4B-Instruct Q4_K_M downloads itself
LLM: no LM Studio needed any more. Nothing to pip install or compile: llama.cpp's llama-server is downloaded from GitHub the first time (CUDA build on NVIDIA, otherwise Vulkan). A vision model (Qwen3-VL, Gemma 4 …) with its mmproj is recommended so the LLM can see your images. Big MoE models can keep their experts on the CPU (extra_args, e.g. --n-cpu-moe 9). LM Studio on this or another PC still works: set backend to lm_studio.
Disk: free space for temp/ (up to about 1 GB per scene while a run is going; cleared when ComfyUI starts). The 🔬 marks are small files in output/score2screen_sync/.
Optional: STRUM, for more precise drum and piano sync. A setup guide is included. Without it, the workflow uses Demucs or the score.
🚀 QUICK START
Download and unzip. Inside:
workflows/,custom_nodes/and a README (English + Japanese)Copy the 4 folders inside
custom_nodes/intoComfyUI/custom_nodes/(not one folder deeper). Updating? Replace the old folders, and reload the page after restarting (Ctrl+F5)Install ComfyUI-Video-Saver via Git URL, and
pip install demucsin ComfyUI's Python. Restart ComfyUIDrag a workflow from
workflows/onto the canvas. Leave 🧠 LLM settings at the default (the first run downloads llama.cpp and the model once), or pick your own GGUF in models/LLMIn the scene 1 column write the scene AND the song (mood, genre, vocals or "Instrumental."). Later scenes: the scene only
Set the 🎬 scene count, then fill the columns left to right: image, seconds and text for scenes 1 → 4. Width / height are in ① Shared. Or open the 🎞 Timeline and drop your images onto the clips
Optional: a 🧑 character picture and ⛓ continue for the scenes that should go on from the one before (the group above the scene pictures, or the ⛓ under each cut on the Timeline)
Run. Want to read the prompts first? Set ✍ Prompt check to manual: the run pauses after the split so you can fix them. Check the 📺 previews afterwards: the scene cut, the detected start, the prompts H3 got, and Runs so far
Optional: open the 🎞 Timeline and press 🔬 Sync check. Step to where the singing or the drums really start and press 📍 Mark here to see how early or late H3 was
💡 TIPS
Prompts can be in any language the LLM reads (English, Japanese, Russian ...). Add "Lyrics in Russian." (or any language) to choose the lyric language; without it the lyrics follow the language of your description
For a band, always write who plays what
⛓ For a clean join, leave the continuing scene's picture at (none) (picture 1 is used as the look), or use a picture of the same people and place. A very different picture can pull against the frame handed over
⛓ alone can drift a little in the face over several scenes: add a 🧑 character picture with the face, hairstyle and clothes clearly visible
The 📺 join report tells you whether a 5-frame handoff really happened (it falls back to 1 frame when H3 made fewer frames past the cut)
Don't want someone (or a pet) to sing? Say so in the scene text ("the dog doesn't sing"): the LLM sometimes writes "... and singing" for everyone on screen
Guitar and bass have no audio check (the timeline says "no audio check (from the score)"): their cues come from the score. Drums, piano and violin are checked against the real song
Guitar intro before the drums? Leave "drums come in" on auto with drum sync on, or type the second in the song
Drummer images: a kit with a cymbal low beside the snare on the drummer's left works best (it is played as the hi-hat)
Violinist: H3 tends to start playing when the camera cuts to a close-up of the player. Put the close-up where the violin comes in
✍ Prompt check (manual) is also a quick way to compare LLMs: look at the prompts, then ✖ Cancel before H3 runs
A take looks wrong? Open the 🎞 Timeline first. If the 🔎 analysis is off (the singing, the strings or the drums at the wrong time), drag it right there (✎) and run again. If the analysis is right but H3 didn't follow it, try another seed, a picture in a waiting pose, or a shorter scene
🔬 Compare takes with numbers: mark the same moments (the first sung word, the first drum hit) on two runs, and the errors tell you which seed or setting followed the song better
🔬 To judge H3 itself, use the scene's "H3 only" video (no crossfade, frames past the cut included); to judge what a viewer gets, use the finished MV. A mark inside a crossfade gets ⚠: two scenes are mixed there
🔬 Every mark in the finished MV about the same amount late (say +0.1 s)? Then 🎚 A/V sync in 🔧 Details can go up by about that much. Videos made with v6.0 can be measured on their "H3 only" videos (the finished MV needs the scene borders v6.1 keeps)
Pre-made song: keep its .abc (and, from v5.9, its .s2s.json) next to it. Pick it, press "🔎 Analyse this song" once, fix the lanes by hand if needed, then run: the scenes use the saved analysis
Hand edits belong to their song: picking another song takes them off, picking the song again brings them back. ↺ clears them
Want to try a few songs first? Turn on 🎵 Song only (with 🎵 pre-made song on (none): with a song picked there, nothing new is made), then pick "(newest song in
output/)" and make the videoSinger starts too early or too late? Set 🎤 vocal_in (the second in the song where the singing starts), or press "🎤 Singing starts at the playhead" on the Timeline
Transitions: crossfade for a soft change, dip to black for a new chapter. Keep the seed fixed and only change the transition: it finishes in moments
Turbo LoRA ON for drafts, OFF for final renders (H3 follows detailed cues better with more steps)
Scene length: up to 15 s per scene by default; up to 24 s has worked. For a long song, 4 shorter scenes usually hold up better than 2 long ones
🔍 Super resolution and the join now work from the saved scene files 24 frames at a time, so long songs no longer need the whole video in RAM. The 📺 join report shows the RAM / VRAM peak, handy if you want to measure
Resolution: multiples of 32, short side up to 768 (1024×768 recommended)
Errors? Paste the ComfyUI console log and the workflow .json into Claude or ChatGPT and ask what is missing
🗂 OLDER: v4.1 / v3.9 / v2.34
v4.1 (1–4 scenes) and v3.9 (2 scenes) use LM Studio for the prompt split; get them from the older versions on this page. The older "every option" v2.34 Full / Legacy workflow also still works with these custom nodes.
Version history
v6.1: 🔬 sync check on the timeline: step the finished MV or a scene's "H3 only" video frame by frame, mark where singing or playing really starts or stops, and see the error against the song in seconds and frames (as H3 was told and in the finished MV, A/V sync taken in); marks kept per video; the join keeps each run's scene borders
v6.0: ⛓ scenes 2–4 can continue from the scene before (1 or 5 frames handed over, ⛓ under each cut on the timeline); 🧑 one main character picture for every scene (<Picture 2>); 💾 low memory: each scene saved to a file and the video joined from the files (super resolution chunk by chunk); crossfade keeps the scene before moving; 📺 join report (frames, real handoff, memory peaks); fps must be 24
v5.9: 💾 the analysis is kept with the song (<song>.s2s.json) and used again (no STRUM / Demucs for the same song); a pre-made song's analysis shows on the timeline at once; 🔎 analyse only the song (no LLM, no H3, in ComfyUI's queue); hand edits saved with the song; each recording of a score kept apart; "not analysed" / "older analysis" marked on the timeline
v5.8.1: 🎞 timeline wheel zoom (down to 0.1 s), Space = play / stop
v5.8: ✎ fix the analysis by hand on the timeline (🎤 singing and 🎻 strings spans, 🥁 drums in, only where the scenes had an analysis, in seconds of the song); the H3 cues follow it, ↺ back to the analysis; the singer is found from more wordings; the timeline panel resizes at any height
v5.7: 🔎 the last run's analysis on the timeline (singing, drum hits, strings, piano, real cuts); auto start shown where the last run started the song; only the newest song's analysis, each scene in its place, real cut lengths on the clips ("7.1s → 8.0s")
v5.6.1: fixes: the singing start set by hand works in short scenes, the LLM's other actions (waving, dancing) are kept when a singer is set to wait, "vocalist" / "singer" / "lead vocals" are recognised
v5.6: 🌐 lyrics in the language you ask for; 🎤 waiting performers are shown waiting (lips closed / hands still until their cue), the LLM's too-early words are fixed, singing start by hand (vocal_in)
v5.5: 🎞 timeline editor (drag & drop images and songs), 🎞 scene transitions, drum sync fixes (backbeat, no made-up fills, kick-only parts)
v5.4: ✍ prompt check (auto / manual): pause after the prompt split and fix each scene's prompt by hand in a window
v5.3: ⏳ every scene's prompt is read before any scene is drawn (one model swap per run); inputs laid out scene 1 → 4
v5.2: 🔍 optional RTX video super resolution on the finished video
v5.0: 🧠 the prompt LLM runs inside ComfyUI (GGUF via llama-server, transformers, or LM Studio); load / unload handled automatically
v4.1 / v3.9 (update 2026-10-14): 🎻 violinist plays only while the violin is heard; prompt split with thinking off and a 600 s timeout
v4.1: choose 1–4 scenes with all the v3.9 features
v3.9: one-zip download, even song loudness, song-only switch, newest-song pick, drums that wait / come in later, kick-only intros, fill or no fill, kit layout for H3
v4.0: choose 1–4 scenes (🎬 scene count switch)
v3.8: drum cues H3 can draw
v3.7: piano sync
v3.6: A/V sync
v3.4 / v3.5: run log in the workflow
v3.2: ▶ Start at for pre-made songs
v3.0: the new Simple line (4 switches)
v2.09: first public release
