MiniMax H3 In-Node Long Video + Relay/EAV / 内循环长视频增强 (Advanced EXP/T8)
Prompt Relay timelines plus Enhance-A-Video
- model
- clip
- video_vae
- audio_vae
- prompt_relay_plan
- drive_audio
- final_audio
- first_frame
- last_frame
- persistent_identity_image
- ref_images
- ref_videos
- ref_video_audios
- ref_audios
- long_video_sampling_plan
- source_motion
- video
- video_path
- manifest_path
- completed_segments
- status
- report_json
The plain in-node long-video loop is a deterministic serial renderer, and for a lot of multi-segment stories that's not enough. Two problems show up in longer shoots: the prompt drifts between segments (a character's description wobbles, the scene forgets what happened), and the motion gets jittery or stale. This node is the "effects" version of the loop, built to solve exactly those two. It's the same append-only, resume-from-disk, one-final-video runner as its sibling - but it can also project one global Prompt Relay timeline into every segment, and/or spin up a fresh Enhance-A-Video audit runtime per segment. Both, if you want, and the source is explicit that when you combine them, there's a single Relay-then-FETA attention owner - one clean owner instead of two nodes fighting.
Prompt Relay is the pack's long-video continuity mechanism: instead of each segment getting its own prompt and forgetting the story, one global timeline is compiled and projected so characters, scene state and style persist across segment boundaries. Enhance-A-Video (EAV) is the motion-quality side, here in the pack's Stock20 variant - and that qualifier matters. EAV in this node is Stock20 only: the native 20-step route, not the Turbo LoRA path. The README's companion workflow is In_Node_Long_Video_Prompt_Relay_EAV_Stock20_Advanced, and it doesn't take a Turbo LoRA.
The inputs that matter
On top of the standard loop inputs (model/clip/VAEs, chain_id, duration, width/height, window, seeds, steps, shifts), the effects layer adds:
- prompt_relay_mode -
disabled(exact bypass),report_only(compile and project the timeline without any attention bias - safe, no output change),apply_exp(enable the projected route). Start withreport_onlyand read the report before committing - prompt_relay_plan (optional) - an existing Relay plan to reuse
- eav_mode -
disabled,report_only(audits CFI/g without modifying attention),apply_exp(enable target-video FETA gain) - eav_tau (−32 to 32, default 4), eav_start_video_progress / eav_end_video_progress (0→1), eav_max_workspace_mib (32), eav_g_hard_limit (1.5)
- query_chunk_rows (256) - Relay's chunking for long contexts
- minimum_free_vram_mib (512) - rechecked before every segment; a floor, not a guarantee
Outputs: video, video_path, manifest_path, completed_segments, status, 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 first (recent core: comfy_api.latest, comfy.weight_adapter, comfy.patcher_extension, comfy.ldm.minimax); requirements.txt is intentionally empty. Use the bundled In_Node_Long_Video_Prompt_Relay_EAV_Stock20_Advanced workflow.
Where people get burned
The pattern across this pack's EXP features repeats here: report_only before apply_exp. Compile the Relay timeline and audit the EAV motion first - both modes are designed to be non-destructive so you can inspect before enabling. The other big one is the Stock20 rule: this node's EAV runs the native 20-step route, so steps belongs around 20 here (that's the default), and if you're used to the 4-step Turbo world, don't shove a Turbo LoRA into this workflow expecting EAV to cooperate - the README is explicit that it doesn't. Finally, the attention-owner discipline: Relay+EAV together is designed as one owner; layering a third attention-patching node on top is asking for it. This is an EXP feature with an honest ceiling - expect "more consistent and smoother," not miracles on the first un-tuned run.
Inputs (59)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | Native MiniMax H3 Qwen3-VL CLIP. | |
| video_vae | VAE | — | |
| audio_vae | VAE | — | |
| chain_id | STRING | my_h3_in_node_effects_video | — |
| total_duration_seconds | FLOAT | 30.000.04–3600 | — |
| width | INT | 73632–16384 | — |
| height | INT | 41632–16384 | — |
| render_window_frames | INT | 124124–362 | — |
| context_frames | COMBO | 22 | 3 options: 5, 22, 39 |
| global_prompt | STRING | Used when Prompt Relay is disabled. With Relay, leave empty or copy the Plan global prompt exactly. | |
| segment_prompts_json | STRING | Prompt overrides must be empty when Prompt Relay owns the timeline. | |
| prompt_relay_mode | COMBO | disabled | disabled is exact bypass; report_only compiles/projects Relay without attention bias; apply_exp enables the projected route. |
| query_chunk_rows | INT | 25632–2048 | — |
| eav_mode | COMBO | disabled | Stock20 only. report_only audits CFI/g without modifying attention; apply_exp enables target-video FETA gain. |
| eav_tau | FLOAT | 4.00-32–32 | — |
| eav_start_video_progress | FLOAT | 0.000–0.99 | — |
| eav_end_video_progress | FLOAT | 1.000.01–1 | — |
| eav_max_workspace_mib | INT | 324–512 | — |
| eav_g_hard_limit | FLOAT | 1.501–3 | — |
| minimum_free_vram_mib | INT | 5120–65536 | Rechecked before every segment; this is a start floor, not a peak guarantee. |
| base_seed | INT | 1234567890–18446744073709550000 | — |
| seed_policy | COMBO | increment | 3 options: increment, fixed, hash_chain_segment |
| steps | INT | 201–1000 | — |
| shift_video | FLOAT | 12.000.01–100 | — |
| shift_audio | FLOAT | 3.000.01–100 | — |
| sampler_name | COMBO | dual_clock_euler | 45 options: dual_clock_euler, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 |
| scheduler | COMBO | native_flow | 11 options: native_flow, beta57, simple, sgm_uniform, karras, exponential, +5 |
| task_type | COMBO | auto | 7 options: auto, T2VA, I2VA, FL2VA, L2VA, Ref2VA, +1 |
| context_audio | COMBO | video_and_audio | 2 options: video_and_audio, video_only |
| audio_mode | COMBO | native | 4 options: lock_source, remix_source, reference_only, native |
| audio_denoise_strength | FLOAT | 0.350–1 | — |
| add_source_as_reference | BOOLEAN | true | — |
| prompt_primary_audio_ordinal | INT | 00–9 | — |
| strict_prompt_tags | BOOLEAN | true | — |
| ref_image_size | COMBO | match | 2 options: match, max |
| reference_video_policy | COMBO | official_2_to_15s | 2 options: official_2_to_15s, model_minimum |
| first_frame_reuse | COMBO | segment0_only | 2 options: segment0_only, persistent_identity_reference |
| persistent_identity_strategy | COMBO | single_reference | 2 options: single_reference, scene_plus_identity |
| persistent_identity_interval | INT | 11–32 | — |
| resume_existing | BOOLEAN | true | — |
| filename_prefix | STRING | H3_In_Node_Effects_Long_Video | — |
| audio_seam_policy | COMBO | cosine_bridge | 2 options: cosine_bridge, none |
| bridge_ms | FLOAT | 5.00–50 | — |
| bit_depth | COMBO | 8 | 2 options: 8, 10 |
| crf | INT | 180–51 | — |
| model_id | STRING | unknown | — |
| prompt_relay_planopt | H3_T8_PROMPT_RELAY_PLAN | — | |
| drive_audioopt | AUDIO | — | |
| final_audioopt | AUDIO | — | |
| first_frameopt | IMAGE | — | |
| last_frameopt | IMAGE | — | |
| persistent_identity_imageopt | IMAGE | — | |
| ref_imagesopt | COMFY_AUTOGROW_V3 | — | |
| ref_videosopt | COMFY_AUTOGROW_V3 | — | |
| ref_video_audiosopt | COMFY_AUTOGROW_V3 | — | |
| ref_audiosopt | COMFY_AUTOGROW_V3 | — | |
| long_video_sampling_planopt | H3_T8_LONG_VIDEO_SAMPLING_PLAN | Optional Tail/manual second-pass plan. Prompt Relay remains scoped; EAV audits pass 1 only for manual second-pass mode. | |
| source_motionopt | H3_T8_DANCE_MOTION | Dance RGB motion source. Read a different source interval per segment; generated continuity is separate. |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_path | STRING | — |
| manifest_path | STRING | — |
| completed_segments | INT | — |
| status | STRING | — |
| report_json | STRING | — |