Nodes/ComfyUI-Pixaroma/H3 Timeline Pixaroma
ComfyUI Node

H3 Timeline Pixaroma

Direct one long H3 video as scenes, not one take

By pixaroma·Created 8 months ago·Updated 3 days ago· 480
H3 Timeline Pixaroma
  • model
  • clip
  • vae
  • audio_vae
  • audio
  • model
  • positive
  • latent
  • seconds
◄modeSing►
◄width480►
◄height864►

The problem isn't length. It's that nothing happens.

MiniMax H3 gives you fifteen seconds of a person singing into a camera, with real synced audio, from open weights. Lovely. Then you want forty-five, and find out length was never the interesting part - at second twelve the shot should change, the person should be wearing something else, and someone else should walk in.

H3 Timeline Pixaroma is about that, not about duration. It replaces MiniMax H3 Reference to Video plus H3 Long Video, and lets you describe one video as a stack of scenes, each with its own length, its own few words and, if it needs one, its own picture. One run, no cuts you didn't ask for; tested up to 60 seconds.

Want just the windowing on its own? Read H3 Long Video Pixaroma; this node is that plus a script.

How it works

Each scene is built as H3 conditioning using ComfyUI core's own Reference-to-Video code: your words go into the tested EP41 prompt for whichever mode you picked, and that scene's picture is attached as its reference. The clip is then sampled whole, in windows that follow your scenes rather than a fixed grid - while the sampler is inside scene 3's window it's reading scene 3's words and scene 3's picture.

A scene boundary lands in the ~1.6-second overlap between two windows, so the blend carries it: a normal scene change dissolves into the next look instead of jumping. Tick CUT and the weights split at the border instead: a hard shot change from that scene's own picture, audio still in time. Scene 1's conditioning is simply what the sampler starts with; the node swaps the rest in as it goes.

The one hard rule came out of measurement: scene 1 must have a picture. With no pictures anywhere, the windows don't agree with each other and you get double exposures. A picture is the anchor that makes the rest line up.

Inputs, outputs, and what you edit on the node

Wire in four model-side things:

  • model - your H3 model, after LoRAs.
  • clip - the H3 text encoder; it reads each scene's prompt and pictures.
  • vae and audio_vae - H3's video and audio VAEs. Both, yes.
  • mode - Sing (the picture sings your song), Talk (it speaks your voice) or Act (no audio; H3 invents the sound).
  • width / height - multiples of 32, defaulting to 480 × 864, portrait, which is what singers want.
  • audio (optional) - the song or voice. Longer is fine, it's cut to the video's length. Unused in Act.

Then the outputs, and this is where people get it wrong:

  • model → H3 Audio Sync, or straight to the sampler.
  • positive → the sampler, through Conditioning Zero Out into the negative slot.
  • latent → H3 Audio Sync's latent input, or the sampler.
  • seconds → the total length, all scenes added up. Wire it anywhere except the Load Audio feeding this node: the scenes decide the duration, not the audio.

The scene list itself lives on the node - rows of length (half-second steps, four seconds minimum, twelve scenes max), a line of words, a picture, New look vs Add person, BLEND vs CUT, and Keep. Plus one Window setting: auto, 10, 7 or 5 seconds, where 5 is what fits sizes like 960 × 1728 in memory. Pictures are filenames from ComfyUI's input folder; the node refuses anything outside it, so drag your photos in.

Install

Both H3 nodes ship in ComfyUI-Pixaroma, the pack from the Pixaroma YouTube channel (122K subscribers, free ComfyUI course, per-node help pages). MIT, one dependency: imageio-ffmpeg.

Windows Easy-Install builds include it. Otherwise ComfyUI Manager, search Pixaroma - expect it to offer 1.4.144, since the Registry flagged newer builds with no reason given, and these nodes are newer than that. For the current version:

cd ComfyUI/custom_nodes
git clone https://github.com/pixaroma/ComfyUI-Pixaroma.git

Restart, then Ctrl+Shift+R in the browser.

Where people get burned

You're on a stale pack and the node isn't there. H3 Timeline landed in v1.4.229, H3 Long Video the day before. Nothing in canvas search means you're on 1.4.144 - check your version in the Help window (Alt+H, bottom right).

A person slides or doubles. Keep a scene that introduces someone to about 13 seconds or less; past that it gets made in two parts and the person can drift between them. Same logic for arrival: write their entrance and what they do next in the same scene.

Short scenes get pushed. The node enforces a floor around 4.5 seconds, the shortest clip H3 makes, so a 2-second scene silently becomes a 4-second one and your timing shifts.

Issues go to Discord, not GitHub. GitLab and GitHub issues are closed; bugs land in #pixaroma-nodes.

Category👑 Pixaroma/🎵 Audio

Inputs (8)

NameTypeDefaultDescription
modelMODELYour MiniMax H3 model (after its LoRAs). The node sets it up to make the video scene by scene.
clipCLIPThe MiniMax H3 text encoder: it reads each scene's prompt and pictures.
vaeVAEThe MiniMax H3 video VAE.
audio_vaeVAEThe MiniMax H3 audio VAE.
modeCOMBOSingSing: the picture sings the audio (a song). Talk: the picture speaks the audio (a voice). Act: no audio, H3 makes the sound itself. Your scene words go into the tested prompt for that mode.
widthINT480128–2048Video width. H3 sizes are multiples of 32.
heightINT864128–2048Video height. H3 sizes are multiples of 32.
audiooptAUDIOThe song (Sing) or the voice (Talk), as long as the video or longer: it is cut to the video's length. Wire the same sound into H3 Audio Sync's track so the mouth follows it. Not used in Act.

Outputs (4)

NameTypeDescription
modelMODELYour model, set to make the video scene by scene. Wire it to H3 Audio Sync (or straight to the sampler).
positiveCONDITIONINGScene 1's conditioning (the node swaps in the other scenes while it samples). Wire it to the sampler, and through Conditioning Zero Out to its negative.
latentLATENTThe empty video + sound latent for the whole length. Wire it to H3 Audio Sync's latent (or the sampler).
secondsFLOATThe video's length in seconds (all scenes added up, on H3's frame grid). Not for the Load Audio that feeds this node: the scenes set the length.