Nodes/ComfyUI-ZoeyTool/Zoey - MiniMax H3 长视频 (循环·末帧续接)
ComfyUI Node

Zoey - MiniMax H3 长视频 (循环·末帧续接)

MiniMax H3 Stops at 15 Seconds — This Node Chains It Into a Long Take

By liangzoey·Created about a year ago·Updated 2 days ago· 5
Zoey - MiniMax H3 长视频 (循环·末帧续接)
  • model
  • vae
  • audio_vae
  • clip
  • first_frames
  • first_audio
  • negative
  • ref_image_0
  • ref_image_1
  • ref_image_2
  • ref_image_3
  • ref_image_4
  • ref_image_5
  • ref_image_6
  • ref_image_7
  • ref_image_8
  • ref_video_0
  • ref_video_audio_0
  • ref_video_1
  • ref_video_audio_1
  • ref_video_2
  • ref_video_audio_2
  • ref_audio_0
  • ref_audio_1
  • ref_audio_2
  • 视频帧
  • 音频
settings
segments2
prompt_0
prompt_1
prompt_2
prompt_3
prompt_4
prompt_5
prompt_6
prompt_7
prompt_8
prompt_9
prompt_10
prompt_11
prompt_12
prompt_13
prompt_14
prompt_15
prompt_16
prompt_17
prompt_18
prompt_19
prompt_20
prompt_21
prompt_22
prompt_23
prompt_24
prompt_25
prompt_26
prompt_27
prompt_28
prompt_29
prompt_30
prompt_31
prompt_32
prompt_33
prompt_34
prompt_35
prompt_36
prompt_37
prompt_38

MiniMax H3 is a 33B omni-modal model that shoots 4–15 second clips at up to 2K/24fps with native stereo audio - audio generated jointly with the picture, not bolted on afterward. That ceiling gets in your way the moment you want a 60-second shot. ZoeyMiniMaxH3LongVideo is the pack author's answer: drive it N times, hand each new segment the previous segment's last frame, stitch the frames together at the end.

It's a companion node, not a standalone one. It only works alongside the same pack's ZoeyMiniMaxH3ReferenceToVideo (「Zoey - MiniMax H3 参考转视频 (@)」), the node that actually loads the DiT, the Qwen3-VL text encoder and the two VAEs.

How the chaining actually works

The trick is that it doesn't re-run the whole graph per segment. Wire the main node's model, vae, audio_vae, clip and settings outputs in, and it re-enters the main node's own generation routine in-process, once per segment - no reloading, no second copy of a 33B model in VRAM.

Segment 1 is already done - it's the first_frames you fed in from the main node. This node generates segments 2 through N. Before each pass it takes the previous segment's last frame and injects it as an extra reference image, then appends a continuity line to your prompt (keep the same character, scene, wardrobe and lighting).

Be clear-eyed about what that is: reference conditioning, not latent-level blending or keyframe alignment. It's the same class of trick as taking a last frame into an i2v node, and it inherits the same weakness - motion and identity drift across a chain, with color and detail degrading a little each hop. The long-video crowd complains about exactly this on Wan continuations. Two or three segments is fine. Ten is a science experiment.

The inputs that matter

segments (default 2, max 40) is the total shot count. prompt_0prompt_38 are the prompts for segments 2 through 40 - the frontend shows and hides the boxes to match your segments value. Leave one blank and it reuses the previous segment's prompt, which gives you a lazy chained continuation.

Canvas size and per-segment length are derived from first_frames - height/width from the tensor shape, duration as frames / 24. You don't retype resolution or duration, and if your main node's first segment doesn't match what you want, fix it there first. Sampling parameters come in through the settings string (steps, cfg, sampler, scheduler, seed) straight from the main node; unwired, it falls back to 25 steps / cfg 4.0 / res_multistep / simple. The same seed is reused for every segment.

Beyond that it takes negative conditioning plus the full reference set - ref_image_0ref_image_8, ref_video_0ref_video_2 with their matching ref_video_audio_*, and ref_audio_0ref_audio_2 - and forwards all of them into every segment, so a character reference survives the whole take instead of just the first shot.

Outputs

Two: 视频帧 (IMAGE) and 音频 (AUDIO). Frames are concatenated with torch.cat, so feed them to VHS VideoCombine or a core video saver to get a file - the node is an output node, but it doesn't write mp4s itself. Audio is only returned if every segment produced audio; if any segment came back silent, the whole output is None and you get a picture-only result. Set segments to 1 and it's a plain passthrough of the main node's output, which is a handy sanity check.

Install

ComfyUI Manager, search the pack (comfyui-ZoeyTool / ZoeyTool), or:

cd ComfyUI/custom_nodes
git clone https://github.com/liangzoey/comfyui-ZoeyTool.git
cd comfyui-ZoeyTool
pip install -r requirements.txt

Restart. The requirements install torch, Pillow, numpy, opencv-python-headless, requests, transformers, comfyui-extra-nodes and rembg - nothing exotic. PyAV is listed as optional in the README and genuinely isn't in requirements.txt, so if a batch-video node complains about av, that's why.

The H3 model files live in the normal ComfyUI folders: the DiT under diffusion_models, the Qwen3-VL CLIP under text_encoders, the video VAE and (for reference audio) the audio VAE.

Where people get burned

  • The node may not exist in your menu at all. The pack imports comfy_extras.nodes_minimax_h3 in a try/except and only registers the H3 nodes if that succeeds. On a ComfyUI build without official H3 support you get no error - just an empty category.
  • Nothing gets saved for you. Wire the frames into a saver; the node emits a tensor and a waveform, not a file.
  • Pinned seed, unchanged inputs, same output. Like the rest of this pack, the H3 nodes define no IS_CHANGED, so ComfyUI's cache can hand you back the previous render without a warning.
  • The licence is geographic. The MiniMax H3 Community License excludes the US, EU, UK and South Korea - users there aren't licensed to run the local weights at all.
CategoryZoey Tool/MiniMax H3

Inputs (66)

NameTypeDefaultDescription
modelMODEL主节点「model」输出(复用已加载模型,不重复加载)
vaeVAE主节点「vae」输出
audio_vaeVAE主节点「audio_vae」输出(无音频可为空)
clipCLIP主节点「clip」输出(post-LoRA,直接复用)
settingsSTRING主节点「设置」输出:steps/cfg/sampler_name/scheduler/seed,自动同步采样参数
segmentsINT21–40总段数:第1段用主节点首帧,此节点续接 2..N。
first_framesoptIMAGE主节点「视频帧」输出:第1段 + 末帧续接的种子
first_audiooptAUDIO主节点「音频」输出(可选;无音频则输出纯视频)
negativeoptCONDITIONING
ref_image_0optIMAGE
ref_image_1optIMAGE
ref_image_2optIMAGE
ref_image_3optIMAGE
ref_image_4optIMAGE
ref_image_5optIMAGE
ref_image_6optIMAGE
ref_image_7optIMAGE
ref_image_8optIMAGE
ref_video_0optIMAGE
ref_video_audio_0optAUDIO
ref_video_1optIMAGE
ref_video_audio_1optAUDIO
ref_video_2optIMAGE
ref_video_audio_2optAUDIO
ref_audio_0optAUDIO
ref_audio_1optAUDIO
ref_audio_2optAUDIO
prompt_0optSTRING第 2 段提示词
prompt_1optSTRING第 3 段提示词
prompt_2optSTRING第 4 段提示词
prompt_3optSTRING第 5 段提示词
prompt_4optSTRING第 6 段提示词
prompt_5optSTRING第 7 段提示词
prompt_6optSTRING第 8 段提示词
prompt_7optSTRING第 9 段提示词
prompt_8optSTRING第 10 段提示词
prompt_9optSTRING第 11 段提示词
prompt_10optSTRING第 12 段提示词
prompt_11optSTRING第 13 段提示词
prompt_12optSTRING第 14 段提示词
prompt_13optSTRING第 15 段提示词
prompt_14optSTRING第 16 段提示词
prompt_15optSTRING第 17 段提示词
prompt_16optSTRING第 18 段提示词
prompt_17optSTRING第 19 段提示词
prompt_18optSTRING第 20 段提示词
prompt_19optSTRING第 21 段提示词
prompt_20optSTRING第 22 段提示词
prompt_21optSTRING第 23 段提示词
prompt_22optSTRING第 24 段提示词
prompt_23optSTRING第 25 段提示词
prompt_24optSTRING第 26 段提示词
prompt_25optSTRING第 27 段提示词
prompt_26optSTRING第 28 段提示词
prompt_27optSTRING第 29 段提示词
prompt_28optSTRING第 30 段提示词
prompt_29optSTRING第 31 段提示词
prompt_30optSTRING第 32 段提示词
prompt_31optSTRING第 33 段提示词
prompt_32optSTRING第 34 段提示词
prompt_33optSTRING第 35 段提示词
prompt_34optSTRING第 36 段提示词
prompt_35optSTRING第 37 段提示词
prompt_36optSTRING第 38 段提示词
prompt_37optSTRING第 39 段提示词
prompt_38optSTRING第 40 段提示词

Outputs (2)

NameTypeDescription
视频帧IMAGE
音频AUDIO