Nodes/comfyui-minimax-h3-audio-T8/MiniMax H3 In-Node Long Video Loop / 节点内循环长视频 (Advanced EXP/T8)
ComfyUI Node

MiniMax H3 In-Node Long Video Loop / 节点内循环长视频 (Advanced EXP/T8)

H3 long video that renders every segment in a single execution

By T8mars·Created about a month ago·Updated a day ago· 1,031
MiniMax H3 In-Node Long Video Loop / 节点内循环长视频 (Advanced EXP/T8)
  • model
  • clip
  • video_vae
  • audio_vae
  • drive_audio
  • final_audio
  • first_frame
  • last_frame
  • persistent_identity_image
  • ref_images
  • ref_videos
  • ref_video_audios
  • ref_audios
  • long_video_sampling_plan
  • video
  • video_path
  • manifest_path
  • completed_segments
  • status
  • report_json
chain_idmy_h3_in_node_long_video
total_duration_seconds30.00
width736
height416
render_window_frames124
context_frames22
global_prompt
segment_prompts_json
base_seed123456789
seed_policyincrement
steps4
shift_video12.00
shift_audio3.00
sampler_namedual_clock_euler
schedulernative_flow
task_typeauto
context_audiovideo_and_audio
audio_modenative
audio_denoise_strength0.35
add_source_as_referencetrue
prompt_primary_audio_ordinal0
strict_prompt_tagstrue
ref_image_sizematch
reference_video_policyofficial_2_to_15s
first_frame_reusesegment0_only
persistent_identity_strategysingle_reference
persistent_identity_interval1
resume_existingtrue
filename_prefixH3_In_Node_Long_Video
audio_seam_policycosine_bridge
bridge_ms5.0
bit_depth8
crf18
model_idunknown

MiniMax H3 generates clips in bounded windows - the model's native length tops out around 15 seconds, and the pack's baseline window is 124 frames. Anything longer means stitching segments, and the old way of doing that in ComfyUI is a queue of separate runs with you babysitting each one. This node is the "fire and forget" alternative the README points new long-video users at: one execution generates every segment strictly in sequence, accepts each completed segment atomically, survives interruption by resuming from disk, and streams the accepted files into one final video. You queue it once, go make coffee, and come back to a finished clip.

The key design decisions are in the description, so read them carefully. Segments run strictly in sequence - deterministic, no parallel VRAM gambling. Each completed segment is atomically accepted before the next starts, which is how interruption recovery works: what's on disk is trusted and complete. And critically, this route intentionally has no per-segment human review gate. If you want to eyeball every segment before it's committed, the pack says plainly to use the existing Background/Accepted workflow instead. This node is for people who trust the process; the review path is for people who don't.

The inputs that matter

The schema is big because it's a full pipeline in one node. The ones you'll actually touch:

  • model, clip (the native H3 Qwen3-VL CLIP), video_vae, audio_vae - the usual four
  • chain_id - names this job; resume keys off it, so don't change it mid-run
  • total_duration_seconds (30) - how long the finished video is; segments are derived from this and the window
  • width / height (736×416) and render_window_frames (124 baseline) - canvas and per-segment length
  • global_prompt and segment_prompts_json - the story; per-segment overrides let you change prompt/seed per shot
  • base_seed + seed_policy (increment) - how seeds roll across segments
  • steps (4), shift_video (12), shift_audio (3), sampler_name (dual_clock_euler), scheduler (native_flow) - the sampling stack
  • audio_mode, audio_denoise_strength (0.35) - sound handling, including lock_source to preserve original audio
  • resume_existing (true) - resume only when the saved job contract matches; disable to force a fresh chain

Outputs: video, video_path, manifest_path, completed_segments (INT - how far you got, handy after a resume), status, and report_json.

Installing it

Part of the T8mars/comfyui-minimax-h3-audio-T8 pack - search "MiniMax H3 Audio T8" in ComfyUI Manager, install, restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8

Update ComfyUI itself first (recent core: comfy_api.latest, comfy.weight_adapter, comfy.patcher_extension, comfy.ldm.minimax); requirements.txt is intentionally empty. The canonical workflow is 04-long-video/In_Node_Long_Video_Loop - drag it in, replace the model and media, run.

Where people get burned

Two traps. First, the seed contract: base_seed + increment means a rerun doesn't give you the same frames unless the contract (prompts, LoRAs, sampling) is identical - which is also the condition for resume_existing to accept a resume. Change anything mid-run and the resume logic correctly refuses. Second, VRAM: the README's minimum_free_vram_mib-style floors exist for a reason; this node holds a lot in flight, so drop resolution/frame count before blaming the loop. And don't stack it with other nodes that own the sampler or MODEL forward path. FFmpeg on PATH matters too - the final mux and streaming into one video is where the "one file at the end" promise gets fulfilled.

CategoryT8/MiniMax H3/Long Video/Experimental

Inputs (48)

NameTypeDefaultDescription
modelMODEL
clipCLIPNative MiniMax H3 Qwen3-VL CLIP.
video_vaeVAEMiniMax H3 video VAE.
audio_vaeVAEMiniMax H3 audio VAE.
chain_idSTRINGmy_h3_in_node_long_video
total_duration_secondsFLOAT30.000.04–3600
widthINT73632–16384
heightINT41632–16384
render_window_framesINT124124–362Each segment is sampled independently with this fixed H3 window. 124 is the bounded-memory baseline.
context_framesCOMBO223 options: 5, 22, 39
global_promptSTRING
segment_prompts_jsonSTRINGOptional list/object. Each segment may override prompt, seed and note.
base_seedINT1234567890–18446744073709550000
seed_policyCOMBOincrement3 options: increment, fixed, hash_chain_segment
stepsINT41–1000
shift_videoFLOAT12.000.01–100
shift_audioFLOAT3.000.01–100
sampler_nameCOMBOdual_clock_euler45 options: dual_clock_euler, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39
schedulerCOMBOnative_flow11 options: native_flow, beta57, simple, sgm_uniform, karras, exponential, +5
task_typeCOMBOauto7 options: auto, T2VA, I2VA, FL2VA, L2VA, Ref2VA, +1
context_audioCOMBOvideo_and_audio2 options: video_and_audio, video_only
audio_modeCOMBOnative4 options: lock_source, remix_source, reference_only, native
audio_denoise_strengthFLOAT0.350–1
add_source_as_referenceBOOLEANtrue
prompt_primary_audio_ordinalINT00–9
strict_prompt_tagsBOOLEANtrue
ref_image_sizeCOMBOmatch2 options: match, max
reference_video_policyCOMBOofficial_2_to_15s2 options: official_2_to_15s, model_minimum
first_frame_reuseCOMBOsegment0_only2 options: segment0_only, persistent_identity_reference
persistent_identity_strategyCOMBOsingle_reference2 options: single_reference, scene_plus_identity
persistent_identity_intervalINT11–32
resume_existingBOOLEANtrueResume only when the saved job contract matches. Disable to require an empty chain_id.
filename_prefixSTRINGH3_In_Node_Long_Video
audio_seam_policyCOMBOcosine_bridge2 options: cosine_bridge, none
bridge_msFLOAT5.00–50
bit_depthCOMBO82 options: 8, 10
crfINT180–51
model_idSTRINGunknown
drive_audiooptAUDIO
final_audiooptAUDIO
first_frameoptIMAGE
last_frameoptIMAGE
persistent_identity_imageoptIMAGE
ref_imagesoptCOMFY_AUTOGROW_V3
ref_videosoptCOMFY_AUTOGROW_V3
ref_video_audiosoptCOMFY_AUTOGROW_V3
ref_audiosoptCOMFY_AUTOGROW_V3
long_video_sampling_planoptH3_T8_LONG_VIDEO_SAMPLING_PLANOptional Tail/manual second-pass plan. Disconnect to preserve the original loop sampler and cache contract.

Outputs (6)

NameTypeDescription
videoVIDEO
video_pathSTRING
manifest_pathSTRING
completed_segmentsINT
statusSTRING
report_jsonSTRING