Nodes/ComfyUI-MiniMax-Creator/MiniMax H3 Timeline
ComfyUI Node

MiniMax H3 Timeline

The Timeline node is the Creator now — here's what that means for your old workflows

By roadmaus·Created 17 days ago·Updated about 18 hours ago· 58
MiniMax H3 Timeline
      timeline_data{ "version": 2, "prompt": "", "aspect": "16:9", "short_edge": 768, "output_prefix": "minimax/renders/H3", "models": {}, "segments": [ { "prompt": "", "assets": [], "loras": [], "duration_s": 6, "checkpoint": "auto" } ] }
      seed0
      steps20
      cfg1.0
      sampler_nameres_multistep
      schedulersimple
      shift_video12.00
      shift_audio3.00
      block_cacheoff
      spectrumfalse
      spectrum_blend0.50
      sagefalse
      attentiondefault
      chunk_ffnfalse
      fp16_accumulationfalse

      Here's the honest headline: if you loaded a workflow with a node called "MiniMax H3 Timeline" on it, you're using a deprecated name for the same node that's now called "MiniMax H3 Creator." Same body, same behavior, same queue. The pack renamed the flagship and kept the old id alive so nobody's canvas would turn into red boxes. Only the title differs.

      That sounds backwards until you read the pack's design. The Creator node's whole trick is that one node is a piece - a single shot - and when you click "Write the next shot" under the prompt, the same node becomes a strip of shots: a timeline. There is no mode to pick, and no separate node type for multi-shot work. The Timeline node id is the legacy label for that same machine, preserved because a node id that stops existing breaks saved workflows, while is_deprecated quietly removes it from the node search so nobody reaches for it fresh. Load it, run it, and it behaves exactly as a Creator does - the frontend mounts the same body on both ids.

      What the timeline actually does

      Everything on the Creator applies here - the @ attachments, the mode badge that routes to FL2VA or Ref2VA, the seed that runs the whole piece, the accelerator row. What's new is the shot lane. Each card on the strip is a whole generation with its own prompt, references and LoRAs, and the node's face becomes a lane strictly proportional to their durations.

      You get two ways to join them:

      • Chained renders each segment and joins them, with a seam that can continue from any earlier segment's last frame - one frame, or a 5/22/39- frame feathered blend that carries real motion and phase-locked sound across the cut.
      • One pass compiles the same cards into a single generation, because H3's prompt format is already a shot list. No seam at all, and music or dialogue carries across the whole piece.

      Each card also carries a padlock. Locked cards aren't rendered, so you can shoot a long strip one pass at a time - each pass is written as its own file under takes/ - keeping the takes you like and re-shooting only the card you're working on.

      The inputs that matter

      • timeline_data - the JSON blob that holds the whole strip: prompt, aspect, short edge, output prefix, and a segments array, each with its own prompt, assets, LoRAs, duration and checkpoint. Same shape as the Creator's creator_data; only the widget name differs, which is exactly why old workflows still load correctly.
      • seed - one number for every segment, chained or single, plus every refine and face pass inside them. The prompt is what changes between shots, not the noise.
      • steps / cfg / sampler_name / scheduler - 20 / 1.0 / res_multistep / simple by default. Reference-heavy prompts like beta or normal on the scheduler.
      • shift_video (12), shift_audio (3) - the checkpoints' own flow shift values; a wrong audio shift distorts the sound before the picture.
      • block_cache, spectrum, attention, chunk_ffn, fp16_accumulation
        • the speed row. Caches trade fidelity for speed; chunk_ffn is the one free lunch for low VRAM.

      It has no outputs, because it's an output node - the finished video is reported back onto the node itself via an expanded subgraph.

      Installing and running

      Same as the rest of the pack. Manager, search "MiniMax Creator", or:

      cd ComfyUI/custom_nodes
      git clone https://github.com/roadmaus/ComfyUI-MiniMax-Creator
      

      Restart ComfyUI; nothing to pip install, but you need a ComfyUI new enough to ship comfy_extras/nodes_minimax_h3.py. Weights go where ComfyUI already looks: FL2VA/Ref2VA in models/diffusion_models, text encoder in models/text_encoders, video and audio VAEs in models/vae, taeh3 preview decoder in models/vae_approx. Missing weights are refused before the queue starts, naming the field and folder.

      The one genuine trap to know about: duration. H3 frame counts must satisfy n % 17 == 5 at 24 fps, so there is no 6.00-second shot - the compiler lands on the nearest legal count. And if a long render dies with a HostBuffer.read_file_slice CUDA OOM, that's Dynamic VRAM streaming weights into a fight with a 33B model; restart ComfyUI with --disable-dynamic-vram and it tends to behave. Both are pack-level knowns, not things you did wrong.

      Bottom line: if you're starting fresh, reach for the Creator node and never think about this one. If you've got old timelines saved, they'll keep running as-is - which is precisely the point of keeping the name alive.

      CategoryMiniMax

      Inputs (15)

      NameTypeDefaultDescription
      timeline_dataSTRING{ "version": 2, "prompt": "", "aspect": "16:9", "short_edge": 768, "output_prefix": "minimax/renders/H3", "models": {}, "segments": [ { "prompt": "", "assets": [], "loras": [], "duration_s": 6, "checkpoint": "auto" } ] }
      seedINT00–18446744073709550000The seed for the whole piece: every segment, chained or single, and every refine and face pass inside them, runs on this number. What separates consecutive shots is their prompts and their seams, not their noise.
      stepsINT201–10000
      cfgFLOAT1.00–100
      sampler_nameCOMBOres_multistep44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
      schedulerCOMBOsimpleThe templates use 'simple'; for reference-heavy prompts they suggest 'beta' or 'normal' instead.
      shift_videoFLOAT12.000.01–100The video flow shift. 12 is the checkpoints' own value; a turbo LoRA's card may name another.
      shift_audioFLOAT3.000.01–100The audio flow shift. 3 is the checkpoints' own value. A wrong one distorts the soundtrack before it touches the picture.
      block_cacheCOMBOoffStep caching, one implementation at a time. safe/fast/aggressive are FirstBlockCache presets (needs ComfyUI-MiniMaxH3-FirstBlockCache); 'easy' is core's EasyCache; 'tea' is TeaCache (needs ComfyUI-MiniMaxH3-TeaCache). All trade fidelity for speed — A/B before trusting one on a final render.
      spectrumBOOLEANfalseSpectrum: forecast features across steps instead of evaluating every one. Needs ComfyUI-Spectrum-MiniMax-H3. Combines with block_cache; cannot be combined with EasyCache.
      spectrum_blendFLOAT0.500–1Spectrum's video spectral share. Higher is faster and further from a native render. Ignored unless 'spectrum' is on.
      sageBOOLEANfalseDeprecated — use 'attention'. A workflow saved with this on still runs sage attention.
      attentionCOMBOdefaultWhich attention H3 runs. 'default' is the checkpoint's own; 'sage' is quantized attention (needs ComfyUI-KJNodes and the sageattention package, NVIDIA only); 'kitchen' is core's own int8 kernel, with nothing to install. One at a time — a model has one attention. Both are faster and lower on peak VRAM, and both compose with the caches and with Spectrum.
      chunk_ffnBOOLEANfalseLow VRAM: run H3's feed-forward in chunks over the packed sequence (KJNodes' Chunk FFN). Lowers the peak a render has to fit in, and the frames are the same ones — activations are quantized per token, so chunking is a rearrangement rather than a trade. Needs ComfyUI-KJNodes. Composes with everything above.
      fp16_accumulationBOOLEANfalseFast math: let cuBLAS accumulate fp16 matmuls in fp16 while this model runs, and put the flag back afterwards (KJNodes' fp16 accumulation). It reaches fp16 matmuls only — the released H3 checkpoints run bf16, and their quantized layers go through comfy-kitchen's kernels rather than cuBLAS, so on those there is nothing for it to change. For a genuinely fp16 model it is faster where the card supports it, at some precision. Needs ComfyUI-KJNodes and torch 2.7 or newer, and raises rather than pretending on a torch without the flag.

      Outputs (0)

      No outputs