Nodes/ComfyUI-MiniMaxH3-Easy/MiniMax H3 Easy Context Segments
ComfyUI Node

MiniMax H3 Easy Context Segments

The node that splits your long MiniMax H3 video into shots that remember each other

By nkxx188·Created 2 months ago·Updated 5 days ago· 830
MiniMax H3 Easy Context Segments
  • h3_bundle
  • media
  • media_1
  • media_2
  • media_3
  • media_4
  • media_5
  • media_6
  • media_7
  • media_8
  • media_9
  • media_10
  • media_11
  • media_12
  • media_13
  • media_14
  • media_15
  • media_16
  • media_17
  • media_18
  • media_19
  • media_20
  • media_21
  • media_22
  • media_23
  • media_24
  • media_25
  • media_26
  • media_27
  • media_28
  • media_29
  • media_30
  • media_31
  • media_32
  • media_33
  • media_34
  • media_35
  • media_36
  • media_37
  • media_38
  • media_39
  • media_40
  • media_41
  • media_42
  • media_43
  • media_44
  • media_45
  • model
  • h3_context
◄modecontext_segments►
◄audio_modegenerated►
◄prompt►
◄resolution480P►
◄aspect_ratio16:9►
◄width1344►
◄height768►
◄seconds5.0►
◄segment_seconds►
◄context_length5►
◄continuity_modelatent_guide►
◄advancedtrue►
◄fps24►
◄keyframe_rolefirst►
◄ref_image_size1k►
◄reference_mention_modeindex►
◄prompt_optimizer_settingsfalse►
◄prompt_optimizer_scene_guidenone►
◄context_prompt_optimizer_modewhole_sequence►
◄context_prompt_optimizer_concurrency3►
◄prompt_optimizer_resources►
◄prompt_optimizer_marker►
◄prompt_optimizer_prompt_connectedfalse►
◄media_type_1►
◄media_type_2►
◄media_type_3►
◄media_type_4►
◄media_type_5►
◄media_type_6►
◄media_type_7►
◄media_type_8►
◄media_type_9►
◄media_type_10►
◄media_type_11►
◄media_type_12►
◄media_type_13►
◄media_type_14►
◄media_type_15►
◄media_type_16►
◄media_type_17►
◄media_type_18►
◄media_type_19►
◄media_type_20►
◄media_type_21►
◄media_type_22►
◄media_type_23►
◄media_type_24►
◄media_type_25►
◄media_type_26►
◄media_type_27►
◄media_type_28►
◄media_type_29►
◄media_type_30►
◄media_type_31►
◄media_type_32►
◄media_type_33►
◄media_type_34►
◄media_type_35►
◄media_type_36►
◄media_type_37►
◄media_type_38►
◄media_type_39►
◄media_type_40►
◄media_type_41►
◄media_type_42►
◄media_type_43►
◄media_type_44►
◄media_type_45►

MiniMax H3 tops out at 4–15 second clips. That's fine for a shot, useless for a scene, and the naive fix - generate five clips and cut them together - gives you five clips that don't agree on anything: the character's face shifts, the lighting changes, and every cut feels like a jump. MiniMax H3 Easy Context Segments is the pack's answer to that. It doesn't generate one long video; it builds a plan for a chain of connected shots, where every segment keeps its own prompt, duration, and references while receiving continuity from the segment before it.

What it actually is

This node is a planner, not a sampler. It takes your h3_bundle (from the Easy Loader) and turns a single structured prompt into a multi-shot segment plan, then hands you two outputs: a model (pass-through from the bundle, so you can keep wiring LoRAs and patches) and an h3_context (MINIMAX_H3_CONTEXT), which you connect to Segment Sample to actually run the chain.

The workflow shape is:

Context Segments → Segment Sample → Segment Decode → first-pass video
                                          ↓
                                   Segment Refine → Segment Decode → refined video

The inputs you'll actually touch

  • prompt - separate shots with a standalone --- line. In the structured editor you type ~ to insert the divider. Each block becomes one segment, up to 30.
  • segment_seconds - durations per segment as comma-separated values, e.g. 5,5,5. This also tells the prompt optimizer how many prompts to produce if you feed it one undivided story.
  • continuity_mode - how a segment borrows from the previous one. Latent Guide passes the previous video latent straight through and is usually the best starting point; RGB Guide re-encodes the previous tail as a multi-frame visual guide; Soft/Hard AV Prefix carry video and audio prefixes (the AV modes exist because H3 generates audio natively, and only they lock a speaker's voice reliably).
  • context_length - how many frames of context each segment carries. The allowed values step in fixed grids: 5/22/39/56/73 for the latent and RGB guides, 39/90/141 for the AV modes.
  • resolution, aspect_ratio (or raw width/height), and fps (locked to 24) set the shared canvas every segment renders into.

Media is a shared library here (up to 27 images, 9 videos, 9 audio) - but only what you explicitly @-reference inside a segment's prompt gets sent to that segment's generation. References aren't inherited, so repeat @Image1 in every segment that needs the same asset. That's deliberate: it stops references from one shot leaking into another.

The audio_mode switch adds a Digital Human variant: connect exactly one audio item and it's sliced across the whole timeline and locked in as the final soundtrack. If you don't supply audio, it silently falls back to ordinary reference-to-video instead of failing.

Prompt optimization

Click the ✦ button (or flip prompt_optimizer_settings on) and the node can rewrite your plan through an OpenAI-compatible, Gemini, or Ollama endpoint - settings live in prompt_optimizer.json in the plugin folder. whole_sequence understands the full video in one request; per_segment rewrites one shot at a time with the originals as read-only context. It's genuinely useful for turning "a rainy street, a bar, an argument" into three standalone prompts - but it's optional, and the API keys are stored in plain text in that JSON, so don't publish it.

Gotchas

Two to know before you build a 10-minute epic. First, segment sampling and refining re-execute on every queue even when seed and inputs are unchanged - no caching will save you, so iterate on a short plan first. Second, the pipeline is only as good as its continuity mode: Latent Guide is fast and usually fine, but if a character's voice needs to stay consistent, use an AV Prefix mode. The README is blunt about it - RGB Guide carries visual boundaries, not voice timbre.

Installing

Update ComfyUI to a build with the official MiniMax H3 nodes, then grab the pack via ComfyUI Manager (search ComfyUI-MiniMaxH3-Easy, choose Nightly) or:

cd ComfyUI/custom_nodes
git clone https://github.com/nkxx188/ComfyUI-MiniMaxH3-Easy.git

Restart, select models in the Easy Loader, and import one of the bundled context-segment workflows to see the whole chain wired up.

CategoryMiniMax H3 Easy

Inputs (115)

NameTypeDefaultDescription
h3_bundleMINIMAX_H3_BUNDLE—
modeCOMBOcontext_segments1 options: context_segments
audio_modeCOMBOgenerated2 options: generated, digital_human
promptSTRING—
resolutionCOMBO480P12 options: 360P, 416P, 480P, 540P, 640P, 720P, +6
aspect_ratioCOMBO16:98 options: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, +2
widthINT134432–16384—
heightINT76832–16384—
secondsFLOAT5.00.2–900—
segment_secondsSTRING—
context_lengthINT55–141—
continuity_modeCOMBOlatent_guide4 options: latent_guide, guide, soft_av, hard_av
advancedBOOLEANtrue—
fpsFLOAT2424–24—
keyframe_roleCOMBOfirst2 options: first, last
ref_image_sizeCOMBO1k5 options: match, 1k, 1.5k, 2k, original
reference_mention_modeCOMBOindex2 options: filename, index
prompt_optimizer_settingsBOOLEANfalse—
prompt_optimizer_scene_guideCOMBOnone12 options: none, 3d_animation_short, brand_promo, coop_game_intro, handdrawn_live, minimalist_product_ad, +6
context_prompt_optimizer_modeCOMBOwhole_sequence2 options: whole_sequence, per_segment
context_prompt_optimizer_concurrencyINT31–20—
mediaopt*—
prompt_optimizer_resourcesoptSTRING—
prompt_optimizer_markeroptSTRING—
prompt_optimizer_prompt_connectedoptBOOLEANfalse—
media_1opt*—
media_type_1optSTRING—
media_2opt*—
media_type_2optSTRING—
media_3opt*—
media_type_3optSTRING—
media_4opt*—
media_type_4optSTRING—
media_5opt*—
media_type_5optSTRING—
media_6opt*—
media_type_6optSTRING—
media_7opt*—
media_type_7optSTRING—
media_8opt*—
media_type_8optSTRING—
media_9opt*—
media_type_9optSTRING—
media_10opt*—
media_type_10optSTRING—
media_11opt*—
media_type_11optSTRING—
media_12opt*—
media_type_12optSTRING—
media_13opt*—
media_type_13optSTRING—
media_14opt*—
media_type_14optSTRING—
media_15opt*—
media_type_15optSTRING—
media_16opt*—
media_type_16optSTRING—
media_17opt*—
media_type_17optSTRING—
media_18opt*—
media_type_18optSTRING—
media_19opt*—
media_type_19optSTRING—
media_20opt*—
media_type_20optSTRING—
media_21opt*—
media_type_21optSTRING—
media_22opt*—
media_type_22optSTRING—
media_23opt*—
media_type_23optSTRING—
media_24opt*—
media_type_24optSTRING—
media_25opt*—
media_type_25optSTRING—
media_26opt*—
media_type_26optSTRING—
media_27opt*—
media_type_27optSTRING—
media_28opt*—
media_type_28optSTRING—
media_29opt*—
media_type_29optSTRING—
media_30opt*—
media_type_30optSTRING—
media_31opt*—
media_type_31optSTRING—
media_32opt*—
media_type_32optSTRING—
media_33opt*—
media_type_33optSTRING—
media_34opt*—
media_type_34optSTRING—
media_35opt*—
media_type_35optSTRING—
media_36opt*—
media_type_36optSTRING—
media_37opt*—
media_type_37optSTRING—
media_38opt*—
media_type_38optSTRING—
media_39opt*—
media_type_39optSTRING—
media_40opt*—
media_type_40optSTRING—
media_41opt*—
media_type_41optSTRING—
media_42opt*—
media_type_42optSTRING—
media_43opt*—
media_type_43optSTRING—
media_44opt*—
media_type_44optSTRING—
media_45opt*—
media_type_45optSTRING—

Outputs (2)

NameTypeDescription
modelMODEL—
h3_contextMINIMAX_H3_CONTEXT—